Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh-91162: Implement splitting of *tuple[int, ...] over T, *Ts in typing.py #93318

Closed
wants to merge 4 commits into from

Conversation

mrahtz
Copy link
Contributor

@mrahtz mrahtz commented May 28, 2022

In #91162, we decided that it should be valid to do

T = TypeVar('T')
Ts = TypeVarTuple('Ts')

Alias = tuple[T, *Ts]

Alias[*tuple[int, ...]]

and that the result should be tuple[int, *tuple[int, ...]].

This PR does the first half of the work necessary to enable this: the changes necessary in typing.py. The second half will be the equivalent machinery in genericaliasobject.c, but I'll do that in a separate PR, since I guess different people will want to review it.

@AlexWaygood
Copy link
Member

(I think this probably does need a news entry, FWIW, since it wasn't in beta 1, and I assume we'll be backporting.)

@mrahtz
Copy link
Contributor Author

mrahtz commented May 28, 2022

I've just realised; TODO @mrahtz What happens if there's more than one unpacked arbitrary-length tuple in the args list?

@mrahtz
Copy link
Contributor Author

mrahtz commented May 28, 2022

I've just realised; TODO @mrahtz What happens if there's more than one unpacked arbitrary-length tuple in the args list?

Thanks past me! Added a test for this situation.

@mrahtz
Copy link
Contributor Author

mrahtz commented May 29, 2022

Closing in favour of Serhiy's: #93330

@mrahtz mrahtz closed this May 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants