(self, parameters)
return _ConcatenateGenericAlias(self, parameters)
Used in conjunction with ``ParamSpec`` and ``Callable`` to represent a
    higher order function which adds, removes or transforms parameters of a
    callable.

    For example::

       Callable[Concatenate[int, P], int]

    See PEP 612 for detailed information.
Used in conjunction with ``ParamSpec`` and ``Callable`` to represent a
    higher order function which adds, removes or transforms parameters of a
    callable.
Used in conjunction with ParamSpec and Callable to represent a higher order function which adds removes or transforms parameters of a callable .
def Concatenate(self, parameters):
    """Used in conjunction with ``ParamSpec`` and ``Callable`` to represent a
    higher order function which adds, removes or transforms parameters of a
    callable.

    For example::

       Callable[Concatenate[int, P], int]

    See PEP 612 for detailed information.
    """
    if parameters == ():
        raise TypeError("Cannot take a Concatenate of no types.")
    if not isinstance(parameters, tuple):
        parameters = (parameters,)
    if not isinstance(parameters[-1], ParamSpec):
        raise TypeError("The last parameter to Concatenate should be a "
                        "ParamSpec variable.")
    msg = "Concatenate[arg, ...]: each arg must be a type."
    parameters = tuple(_type_check(p, msg) for p in parameters)
    return _ConcatenateGenericAlias(self, parameters)
def Concatenate ( self , parameters ) : if parameters == ( ) : raise TypeError ( "Cannot take a Concatenate of no types." ) if not isinstance ( parameters , tuple ) : parameters = ( parameters , ) if not isinstance ( parameters [ - 1 ] , ParamSpec ) : raise TypeError ( "The last parameter to Concatenate should be a " "ParamSpec variable." ) msg = "Concatenate[arg, ...]: each arg must be a type." parameters = tuple ( _type_check ( p , msg ) for p in parameters ) return _ConcatenateGenericAlias ( self , parameters )