(obj)
return obj.__module__ == 'typing' and any(obj.__name__ == name for name in names)
Checks if obj matches either a list of types, ``...``, ``ParamSpec`` or
    ``_ConcatenateGenericAlias`` from typing.py
Checks if obj matches either a list of types, ``...``, ``ParamSpec`` or
    ``_ConcatenateGenericAlias`` from typing.py
Checks if obj matches either a list of types ... ParamSpec or _ConcatenateGenericAlias from typing . py
def _is_param_expr(obj):
    """Checks if obj matches either a list of types, ``...``, ``ParamSpec`` or
    ``_ConcatenateGenericAlias`` from typing.py
    """
    if obj is Ellipsis:
        return True
    if isinstance(obj, list):
        return True
    obj = type(obj)
    names = ('ParamSpec', '_ConcatenateGenericAlias')
    return obj.__module__ == 'typing' and any(obj.__name__ == name for name in names)
def _is_param_expr ( obj ) : if obj is Ellipsis : return True if isinstance ( obj , list ) : return True obj = type ( obj ) names = ( 'ParamSpec' , '_ConcatenateGenericAlias' ) return obj . __module__ == 'typing' and any ( obj . __name__ == name for name in names )