Skip to content

TypeVarTuple and ParamSpec don't work together #99344

Closed

Description

@LeeeeT

Bug report

The following code gives me an error:

from typing import Generic, TypeVarTuple, ParamSpec


Ts = TypeVarTuple("Ts")

P = ParamSpec("P")


class Foo(Generic[*Ts, P]):
    pass


Foo[int, str, [bytes]]
TypeError: Too many arguments for <class 'Foo'>; actual 3, expected 2

I don't see any reasons why it doesn't work with ParamSpec. I believe it should assign int, str to Ts and [bytes] to P.

Environment

  • CPython versions tested on: 3.11
  • Operating system and architecture: Linux x86_64

Activity

  1. added
    type-bugAn unexpected behavior, bug, or error
    on Nov 10, 2022
  2. JelleZijlstra commented on Nov 10, 2022

    @JelleZijlstra
    Member
  3. serhiy-storchaka commented on Nov 11, 2022

    @serhiy-storchaka
    Member

    Yes, such case is just not supported in the code, and it needs a nontrivial rewriting. I have found also several other similar bugs. I am working on the solution, PRs are almost ready.

  4. added a commit that references this issue on Nov 12, 2022
  5. mrahtz commented on Nov 12, 2022

    @mrahtz
    Contributor

    Thank you for taking care of this, Serhiy!

  6. added a commit that references this issue on Nov 29, 2022
  7. added 3 commits that reference this issue on Nov 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

3.11only security fixes3.12only security fixesstdlibStandard Library Python modules in the Lib/ directorytopic-typingtype-bugAn unexpected behavior, bug, or error

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions