typing --- Support for type hints — Introspection helpers

Return a dictionary containing type hints for a function, method, module, class object, or other callable object.

This is often the same as annotationlib.get_annotations, but this function makes the following changes to the annotations dictionary

Forward references encoded as string literals or ForwardRef objects are handled by evaluating them in globalns, localns, and (where applicable) obj's type parameter namespace. If globalns or localns is not given, appropriate namespace dictionaries are inferred from obj. None is replaced with types.NoneType. If no_type_check has been applied to obj, an empty dictionary is returned. If obj is a class C, the function returns a dictionary that merges annotations from C's base classes with those on C directly. This is done by traversing C.mro and iteratively combining annotations of each base class. Annotations on classes appearing earlier in the method resolution order always take precedence over annotations on classes appearing later in the method resolution order. The function recursively replaces all occurrences of Annotated[T, ...], Required[T], NotRequired[T], and ReadOnly[T] with T, unless include_extras is set to True (see Annotated for more information).

Get the unsubscripted version of a type: for a typing object of the form X[Y, Z, ...] return X.

If X is a typing-module alias for a builtin or collections class, it will be normalized to the original class. If X is an instance of ParamSpecArgs or ParamSpecKwargs, return the underlying ParamSpec. Return None for unsupported objects.

Get type arguments with all substitutions performed: for a typing object of the form X[Y, Z, ...] return (Y, Z, ...).

If X is a union or Literal contained in another generic type, the order of (Y, Z, ...) may be different from the order of the original arguments [Y, Z, ...] due to type caching. Return () for unsupported objects.

Return the set of members defined in a Protocol.

Raise TypeError for arguments that are not Protocols.

Determine if a type is a Protocol.

This function only returns true for Protocol classes, not for generic aliases of them

Check if a type is a TypedDict.

This function only returns true for TypedDict classes, not for generic aliases of them

Class used for internal typing representation of string forward references. …