Skip to content

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