From f11a1dfdce65b260fdc9faeca472f5c1508ab25b Mon Sep 17 00:00:00 2001 From: John Seong <39040639+sandole@users.noreply.github.com> Date: Thu, 23 Apr 2026 10:46:04 +0800 Subject: [PATCH] gh-142965: Fix Concatenate documentation to reflect valid use cases (GH-143316) The documentation previously stated that Concatenate is only valid when used as the first argument to Callable, but according to PEP 612, it can also be used when instantiating user-defined generic classes with ParamSpec parameters. (cherry picked from commit 75ff1afcb6a1bb2b3d54899e9b222a61798fa491) Co-authored-by: John Seong <39040639+sandole@users.noreply.github.com> --- Doc/library/typing.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index 250c861f872c96..8569e2e4491f00 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -1166,7 +1166,8 @@ These can be used as types in annotations. They all support subscription using or transforms parameters of another callable. Usage is in the form ``Concatenate[Arg1Type, Arg2Type, ..., ParamSpecVariable]``. ``Concatenate`` - is currently only valid when used as the first argument to a :ref:`Callable `. + is valid when used in :ref:`Callable ` type hints + and when instantiating user-defined generic classes with :class:`ParamSpec` parameters. The last parameter to ``Concatenate`` must be a :class:`ParamSpec` or ellipsis (``...``).