add bound syntax for type variable tuples and parameter specifications
Open
Nobody has claimed this yet.
interpreter-core
topic-typing
type-feature
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 35.9k
- PR merge metrics
- PR metrics pending
Description
Feature or enhancement
Proposal:
# typical forms
class A[T: int, *Ts: int, **P: [int]]: ...
A[
str, # error
int, # ok, matching Ts bound
str, # error, not matching Ts bound
[str], # error, not matching P bound
]
A[
int, # ok
int, # ok, matching Ts bound
bool, # ok, matching Ts bound
[int], # ok, matching P bound
]
# tvt unpacked form
class B[*Ts: *tuple[int, str]]: ...
B[
int, # ok
int, # error, not subtype of str
int, # error, too many types
]
Has this already been discussed elsewhere?
I have already discussed this feature proposal on Discourse
Links to previous discussion of this feature:
Linked PRs
- gh-148946
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No implementation files or tests are named. Start by reading the linked Discourse discussion and PR gh-148946, then trace how the proposal's bounded type-variable tuple and parameter-specification examples should behave. Done means the documented examples accept valid arguments and reject invalid bounds and arity.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100