typing API Reference

Full documentation for typing (Standard Library / Native)

typing.ABCMeta
Python Library Documentation: class ABCMeta in module abc

class ABCMeta(builtins.type)
 |  ABCMeta(name, bases, namespace, /, **kwargs)
 |
 |  Metaclass for defining Abstract Base Classes (ABCs).
 |
 |  Use this metaclass to create an ABC.  An ABC can be subclassed
 |  directly, and then acts as a mix-in class.  You can also register
 |  unrelated concrete classes (even built-in classes) and unrelated
 |  ABCs as 'virtual subclasses' -- these and their descendants will
 |  be considered subclasses of the registering ABC by the built-in
 |  issubclass() function, but the registering ABC won't show up in
 |  their MRO (Method Resolution Order) nor will method
 |  implementations defined by the registering ABC be callable (not
 |  even via super()).
 |
 |  Method resolution order:
 |      ABCMeta
 |      builtins.type
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __instancecheck__(cls, instance)
 |      Override for isinstance(instance, cls).
 |
 |  __subclasscheck__(cls, subclass)
 |      Override for issubclass(subclass, cls).
 |
 |  register(cls, subclass)
 |      Register a virtual subclass of an ABC.
 |
 |      Returns the subclass, to allow usage as a class decorator.
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(mcls, name, bases, namespace, /, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __annotations__ = {}
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from builtins.type:
 |
 |  __call__(self, /, *args, **kwargs)
 |      Call self as a function.
 |
 |  __delattr__(self, name, /)
 |      Implement delattr(self, name).
 |
 |  __dir__(self, /)
 |      Specialized __dir__ implementation for types.
 |
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |
 |  __init__(self, /, *args, **kwargs)
 |      Initialize self.  See help(type(self)) for accurate signature.
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __setattr__(self, name, value, /)
 |      Implement setattr(self, name, value).
 |
 |  __sizeof__(self, /)
 |      Return memory consumption of the type object.
 |
 |  __subclasses__(self, /)
 |      Return a list of immediate subclasses.
 |
 |  mro(self, /)
 |      Return a type's method resolution order.
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from builtins.type:
 |
 |  __prepare__(...)
 |      __prepare__() -> dict
 |      used to create the namespace for the class statement
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from builtins.type:
 |
 |  __abstractmethods__
 |
 |  __dict__
 |
 |  __text_signature__
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes inherited from builtins.type:
 |
 |  __base__ = <class 'type'>
 |      type(object) -> the object's type
 |      type(name, bases, dict, **kwds) -> a new type
 |
 |
 |  __bases__ = (<class 'type'>,)
 |
 |  __basicsize__ = 920
 |
 |  __dictoffset__ = 264
 |
 |  __flags__ = 2156420608
 |
 |  __itemsize__ = 40
 |
 |  __mro__ = (<class 'abc.ABCMeta'>, <class 'type'>, <class 'object'>)
 |
 |  __type_params__ = ()
 |
 |  __weakrefoffset__ = 368
typing.AbstractSet
Python Library Documentation: _SpecialGenericAlias in module typing

AbstractSet = typing.AbstractSet
    A generic version of collections.abc.Set.
typing.Annotated
Python Library Documentation: class Annotated in module typing

class Annotated(builtins.object)
 |  Annotated(*args, **kwargs)
 |
 |  Add context-specific metadata to a type.
 |
 |  Example: Annotated[int, runtime_check.Unsigned] indicates to the
 |  hypothetical runtime_check module that this type is an unsigned int.
 |  Every other consumer of this type can ignore this metadata and treat
 |  this type as int.
 |
 |  The first argument to Annotated must be a valid type.
 |
 |  Details:
 |
 |  - It's an error to call `Annotated` with less than two arguments.
 |  - Access the metadata via the ``__metadata__`` attribute::
 |
 |      assert Annotated[int, '$'].__metadata__ == ('$',)
 |
 |  - Nested Annotated types are flattened::
 |
 |      assert Annotated[Annotated[T, Ann1, Ann2], Ann3] == Annotated[T, Ann1, Ann2, Ann3]
 |
 |  - Instantiating an annotated type is equivalent to instantiating the
 |  underlying type::
 |
 |      assert Annotated[C, Ann1](5) == C(5)
 |
 |  - Annotated can be used as a generic type alias::
 |
 |      type Optimized[T] = Annotated[T, runtime.Optimize()]
 |      # type checker will treat Optimized[int]
 |      # as equivalent to Annotated[int, runtime.Optimize()]
 |
 |      type OptimizedList[T] = Annotated[list[T], runtime.Optimize()]
 |      # type checker will treat OptimizedList[int]
 |      # as equivalent to Annotated[list[int], runtime.Optimize()]
 |
 |  - Annotated cannot be used with an unpacked TypeVarTuple::
 |
 |      type Variadic[*Ts] = Annotated[*Ts, Ann1]  # NOT valid
 |
 |    This would be equivalent to::
 |
 |      Annotated[T1, T2, T3, ..., Ann1]
 |
 |    where T1, T2 etc. are TypeVars, which would be invalid, because
 |    only one type should be passed to Annotated.
 |
 |  Class methods defined here:
 |
 |  __class_getitem__(params)
 |
 |  __init_subclass__(*args, **kwargs)
 |      This method is called when a class is subclassed.
 |
 |      The default implementation does nothing. It may be
 |      overridden to extend subclasses.
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(cls, *args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
typing.Any
Python Library Documentation: class Any in module typing

class Any(builtins.object)
 |  Any(*args, **kwargs)
 |
 |  Special type indicating an unconstrained type.
 |
 |  - Any is compatible with every type.
 |  - Any assumed to have all methods.
 |  - All values assumed to be instances of Any.
 |
 |  Note that all the above statements are true from the point of view of
 |  static type checkers. At runtime, Any should not be used with instance
 |  checks.
 |
 |  Static methods defined here:
 |
 |  __new__(cls, *args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __dict__
 |      dictionary for instance variables
 |
 |  __weakref__
 |      list of weak references to the object
typing.AnyStr
Python Library Documentation: TypeVar in module typing object

AnyStr = class TypeVar(builtins.object)
 |  Type variable.
 |
 |  The preferred way to construct a type variable is via the dedicated
 |  syntax for generic functions, classes, and type aliases::
 |
 |      class Sequence[T]:  # T is a TypeVar
 |          ...
 |
 |  This syntax can also be used to create bound and constrained type
 |  variables::
 |
 |      # S is a TypeVar bound to str
 |      class StrSequence[S: str]:
 |          ...
 |
 |      # A is a TypeVar constrained to str or bytes
 |      class StrOrBytesSequence[A: (str, bytes)]:
 |          ...
 |
 |  However, if desired, reusable type variables can also be constructed
 |  manually, like so::
 |
 |     T = TypeVar('T')  # Can be anything
 |     S = TypeVar('S', bound=str)  # Can be any subtype of str
 |     A = TypeVar('A', str, bytes)  # Must be exactly str or bytes
 |
 |  Type variables exist primarily for the benefit of static type
 |  checkers.  They serve as the parameters for generic types as well
 |  as for generic function and type alias definitions.
 |
 |  The variance of type variables is inferred by type checkers when they
 |  are created through the type parameter syntax and when
 |  ``infer_variance=True`` is passed. Manually created type variables may
 |  be explicitly marked covariant or contravariant by passing
 |  ``covariant=True`` or ``contravariant=True``. By default, manually
 |  created type variables are invariant. See PEP 484 and PEP 695 for more
 |  details.
 |
 |  Methods defined here:
 |
 |  __mro_entries__(...)
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __bound__
 |
 |  __constraints__
 |
 |  __contravariant__
 |
 |  __covariant__
 |
 |  __infer_variance__
typing.AsyncContextManager
Python Library Documentation: _SpecialGenericAlias in module typing

AsyncContextManager = typing.AsyncContextManager
    A generic version of contextlib.AbstractAsyncContextManager.
typing.AsyncGenerator
Python Library Documentation: _SpecialGenericAlias in module typing

AsyncGenerator = typing.AsyncGenerator
    A generic version of collections.abc.AsyncGenerator.
typing.AsyncIterable
Python Library Documentation: _SpecialGenericAlias in module typing

AsyncIterable = typing.AsyncIterable
    A generic version of collections.abc.AsyncIterable.
typing.AsyncIterator
Python Library Documentation: _SpecialGenericAlias in module typing

AsyncIterator = typing.AsyncIterator
    A generic version of collections.abc.AsyncIterator.
typing.Awaitable
Python Library Documentation: _SpecialGenericAlias in module typing

Awaitable = typing.Awaitable
    A generic version of collections.abc.Awaitable.
typing.BinaryIO
Python Library Documentation: class BinaryIO in module typing

class BinaryIO(IO)
 |  Typed version of the return of open() in binary mode.
 |
 |  Method resolution order:
 |      BinaryIO
 |      IO
 |      Generic
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __enter__(self) -> 'BinaryIO'
 |
 |  write(self, s: Union[bytes, bytearray]) -> int
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __orig_bases__ = (typing.IO[bytes],)
 |
 |  __parameters__ = ()
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from IO:
 |
 |  __exit__(self, type, value, traceback) -> None
 |
 |  close(self) -> None
 |
 |  fileno(self) -> int
 |
 |  flush(self) -> None
 |
 |  isatty(self) -> bool
 |
 |  read(self, n: int = -1) -> ~AnyStr
 |
 |  readable(self) -> bool
 |
 |  readline(self, limit: int = -1) -> ~AnyStr
 |
 |  readlines(self, hint: int = -1) -> List[~AnyStr]
 |
 |  seek(self, offset: int, whence: int = 0) -> int
 |
 |  seekable(self) -> bool
 |
 |  tell(self) -> int
 |
 |  truncate(self, size: int = None) -> int
 |
 |  writable(self) -> bool
 |
 |  writelines(self, lines: List[~AnyStr]) -> None
 |
 |  ----------------------------------------------------------------------
 |  Readonly properties inherited from IO:
 |
 |  closed
 |
 |  mode
 |
 |  name
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Generic:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
 |
 |  __init_subclass__(...)
 |      Function to initialize subclasses.
typing.ByteString
Python Library Documentation: _DeprecatedGenericAlias in module typing

ByteString = typing.ByteString
    A generic version of collections.abc.ByteString.
typing.CT_co
Python Library Documentation: TypeVar in module typing object

CT_co = class TypeVar(builtins.object)
 |  Type variable.
 |
 |  The preferred way to construct a type variable is via the dedicated
 |  syntax for generic functions, classes, and type aliases::
 |
 |      class Sequence[T]:  # T is a TypeVar
 |          ...
 |
 |  This syntax can also be used to create bound and constrained type
 |  variables::
 |
 |      # S is a TypeVar bound to str
 |      class StrSequence[S: str]:
 |          ...
 |
 |      # A is a TypeVar constrained to str or bytes
 |      class StrOrBytesSequence[A: (str, bytes)]:
 |          ...
 |
 |  However, if desired, reusable type variables can also be constructed
 |  manually, like so::
 |
 |     T = TypeVar('T')  # Can be anything
 |     S = TypeVar('S', bound=str)  # Can be any subtype of str
 |     A = TypeVar('A', str, bytes)  # Must be exactly str or bytes
 |
 |  Type variables exist primarily for the benefit of static type
 |  checkers.  They serve as the parameters for generic types as well
 |  as for generic function and type alias definitions.
 |
 |  The variance of type variables is inferred by type checkers when they
 |  are created through the type parameter syntax and when
 |  ``infer_variance=True`` is passed. Manually created type variables may
 |  be explicitly marked covariant or contravariant by passing
 |  ``covariant=True`` or ``contravariant=True``. By default, manually
 |  created type variables are invariant. See PEP 484 and PEP 695 for more
 |  details.
 |
 |  Methods defined here:
 |
 |  __mro_entries__(...)
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __bound__
 |
 |  __constraints__
 |
 |  __contravariant__
 |
 |  __covariant__
 |
 |  __infer_variance__
typing.Callable
Python Library Documentation: _CallableType in module typing

Callable = typing.Callable
    Deprecated alias to collections.abc.Callable.

    Callable[[int], str] signifies a function that takes a single
    parameter of type int and returns a str.

    The subscription syntax must always be used with exactly two
    values: the argument list and the return type.
    The argument list must be a list of types, a ParamSpec,
    Concatenate or ellipsis. The return type must be a single type.

    There is no syntax to indicate optional or keyword arguments;
    such function types are rarely used as callback types.
typing.ChainMap
Python Library Documentation: _SpecialGenericAlias in module typing

ChainMap = typing.ChainMap
    A generic version of collections.ChainMap.
typing.ClassVar
Python Library Documentation: _SpecialForm in module typing

ClassVar = typing.ClassVar
    Special type construct to mark class variables.

    An annotation wrapped in ClassVar indicates that a given
    attribute is intended to be used as a class variable and
    should not be set on instances of that class.

    Usage::

        class Starship:
            stats: ClassVar[dict[str, int]] = {} # class variable
            damage: int = 10                     # instance variable

    ClassVar accepts only types and cannot be further subscribed.

    Note that ClassVar is not a class itself, and should not
    be used with isinstance() or issubclass().
typing.Collection
Python Library Documentation: _SpecialGenericAlias in module typing

Collection = typing.Collection
    A generic version of collections.abc.Collection.
typing.Concatenate
Python Library Documentation: _SpecialForm in module typing

Concatenate = typing.Concatenate
    Special form for annotating higher-order functions.

    ``Concatenate`` can be used in conjunction with ``ParamSpec`` and
    ``Callable`` to represent a higher-order function which adds, removes or
    transforms the parameters of a callable.

    For example::

        Callable[Concatenate[int, P], int]

    See PEP 612 for detailed information.
typing.Container
Python Library Documentation: _SpecialGenericAlias in module typing

Container = typing.Container
    A generic version of collections.abc.Container.
typing.ContextManager
Python Library Documentation: _SpecialGenericAlias in module typing

ContextManager = typing.ContextManager
    A generic version of contextlib.AbstractContextManager.
typing.Coroutine
Python Library Documentation: _SpecialGenericAlias in module typing

Coroutine = typing.Coroutine
    A generic version of collections.abc.Coroutine.
typing.Counter
Python Library Documentation: _SpecialGenericAlias in module typing

Counter = typing.Counter
    A generic version of collections.Counter.
typing.DefaultDict
Python Library Documentation: _SpecialGenericAlias in module typing

DefaultDict = typing.DefaultDict
    A generic version of collections.defaultdict.
typing.Deque
Python Library Documentation: _SpecialGenericAlias in module typing

Deque = typing.Deque
    A generic version of collections.deque.
typing.Dict
Python Library Documentation: _SpecialGenericAlias in module typing

Dict = typing.Dict
    A generic version of dict.
typing.EXCLUDED_ATTRIBUTES
Python Library Documentation: frozenset object

class frozenset(object)
 |  frozenset() -> empty frozenset object
 |  frozenset(iterable) -> frozenset object
 |
 |  Build an immutable unordered collection of unique elements.
 |
 |  Methods defined here:
 |
 |  __and__(self, value, /)
 |      Return self&value.
 |
 |  __contains__(...)
 |      x.__contains__(y) <==> y in x.
 |
 |  __eq__(self, value, /)
 |      Return self==value.
 |
 |  __ge__(self, value, /)
 |      Return self>=value.
 |
 |  __gt__(self, value, /)
 |      Return self>value.
 |
 |  __hash__(self, /)
 |      Return hash(self).
 |
 |  __iter__(self, /)
 |      Implement iter(self).
 |
 |  __le__(self, value, /)
 |      Return self<=value.
 |
 |  __len__(self, /)
 |      Return len(self).
 |
 |  __lt__(self, value, /)
 |      Return self<value.
 |
 |  __ne__(self, value, /)
 |      Return self!=value.
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __rand__(self, value, /)
 |      Return value&self.
 |
 |  __reduce__(...)
 |      Return state information for pickling.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __rsub__(self, value, /)
 |      Return value-self.
 |
 |  __rxor__(self, value, /)
 |      Return value^self.
 |
 |  __sizeof__(...)
 |      S.__sizeof__() -> size of S in memory, in bytes
 |
 |  __sub__(self, value, /)
 |      Return self-value.
 |
 |  __xor__(self, value, /)
 |      Return self^value.
 |
 |  copy(...)
 |      Return a shallow copy of a set.
 |
 |  difference(...)
 |      Return the difference of two or more sets as a new set.
 |
 |      (i.e. all elements that are in this set but not the others.)
 |
 |  intersection(...)
 |      Return the intersection of two sets as a new set.
 |
 |      (i.e. all elements that are in both sets.)
 |
 |  isdisjoint(...)
 |      Return True if two sets have a null intersection.
 |
 |  issubset(self, other, /)
 |      Test whether every element in the set is in other.
 |
 |  issuperset(self, other, /)
 |      Test whether every element in other is in the set.
 |
 |  symmetric_difference(...)
 |      Return the symmetric difference of two sets as a new set.
 |
 |      (i.e. all elements that are in exactly one of the sets.)
 |
 |  union(...)
 |      Return the union of sets as a new set.
 |
 |      (i.e. all elements that are in either set.)
 |
 |  ----------------------------------------------------------------------
 |  Class methods defined here:
 |
 |  __class_getitem__(...)
 |      See PEP 585
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
typing.Final
Python Library Documentation: _SpecialForm in module typing

Final = typing.Final
    Special typing construct to indicate final names to type checkers.

    A final name cannot be re-assigned or overridden in a subclass.

    For example::

        MAX_SIZE: Final = 9000
        MAX_SIZE += 1  # Error reported by type checker

        class Connection:
            TIMEOUT: Final[int] = 10

        class FastConnector(Connection):
            TIMEOUT = 1  # Error reported by type checker

    There is no runtime checking of these properties.
typing.ForwardRef
Python Library Documentation: class ForwardRef in module typing

class ForwardRef(_Final)
 |  ForwardRef(arg, is_argument=True, module=None, *, is_class=False)
 |
 |  Internal wrapper to hold a forward reference.
 |
 |  Method resolution order:
 |      ForwardRef
 |      _Final
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __eq__(self, other)
 |      Return self==value.
 |
 |  __hash__(self)
 |      Return hash(self).
 |
 |  __init__(self, arg, is_argument=True, module=None, *, is_class=False)
 |      Initialize self.  See help(type(self)) for accurate signature.
 |
 |  __or__(self, other)
 |      Return self|value.
 |
 |  __repr__(self)
 |      Return repr(self).
 |
 |  __ror__(self, other)
 |      Return value|self.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __forward_arg__
 |
 |  __forward_code__
 |
 |  __forward_evaluated__
 |
 |  __forward_is_argument__
 |
 |  __forward_is_class__
 |
 |  __forward_module__
 |
 |  __forward_value__
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from _Final:
 |
 |  __init_subclass__(*args, **kwds)
 |      This method is called when a class is subclassed.
 |
 |      The default implementation does nothing. It may be
 |      overridden to extend subclasses.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from _Final:
 |
 |  __weakref__
 |      list of weak references to the object
typing.FrozenSet
Python Library Documentation: _SpecialGenericAlias in module typing

FrozenSet = typing.FrozenSet
    A generic version of frozenset.
typing.Generator
Python Library Documentation: _SpecialGenericAlias in module typing

Generator = typing.Generator
    A generic version of collections.abc.Generator.
typing.Generic
Python Library Documentation: class Generic in module typing

class Generic(builtins.object)
 |  Abstract base class for generic types.
 |
 |  On Python 3.12 and newer, generic classes implicitly inherit from
 |  Generic when they declare a parameter list after the class's name::
 |
 |      class Mapping[KT, VT]:
 |          def __getitem__(self, key: KT) -> VT:
 |              ...
 |          # Etc.
 |
 |  On older versions of Python, however, generic classes have to
 |  explicitly inherit from Generic.
 |
 |  After a class has been declared to be generic, it can then be used as
 |  follows::
 |
 |      def lookup_name[KT, VT](mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:
 |          try:
 |              return mapping[key]
 |          except KeyError:
 |              return default
 |
 |  Class methods defined here:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
 |
 |  __init_subclass__(...)
 |      Function to initialize subclasses.
typing.GenericAlias
Python Library Documentation: class GenericAlias in module types

class GenericAlias(builtins.object)
 |  Represent a PEP 585 generic type
 |
 |  E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
 |
 |  Methods defined here:
 |
 |  __call__(self, /, *args, **kwargs)
 |      Call self as a function.
 |
 |  __dir__(...)
 |      Default dir() implementation.
 |
 |  __eq__(self, value, /)
 |      Return self==value.
 |
 |  __ge__(self, value, /)
 |      Return self>=value.
 |
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |
 |  __getitem__(self, key, /)
 |      Return self[key].
 |
 |  __gt__(self, value, /)
 |      Return self>value.
 |
 |  __hash__(self, /)
 |      Return hash(self).
 |
 |  __instancecheck__(...)
 |      Check if an object is an instance.
 |
 |  __iter__(self, /)
 |      Implement iter(self).
 |
 |  __le__(self, value, /)
 |      Return self<=value.
 |
 |  __lt__(self, value, /)
 |      Return self<value.
 |
 |  __mro_entries__(...)
 |
 |  __ne__(self, value, /)
 |      Return self!=value.
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(...)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __subclasscheck__(...)
 |      Check if a class is a subclass.
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __args__
 |
 |  __origin__
 |
 |  __parameters__
 |      Type variables in the GenericAlias.
 |
 |  __typing_unpacked_tuple_args__
 |
 |  __unpacked__
typing.Hashable
Python Library Documentation: _SpecialGenericAlias in module typing

Hashable = typing.Hashable
    A generic version of collections.abc.Hashable.
typing.IO
Python Library Documentation: class IO in module typing

class IO(Generic)
 |  Generic base class for TextIO and BinaryIO.
 |
 |  This is an abstract, generic version of the return of open().
 |
 |  NOTE: This does not distinguish between the different possible
 |  classes (text vs. binary, read vs. write vs. read/write,
 |  append-only, unbuffered).  The TextIO and BinaryIO subclasses
 |  below capture the distinctions between text vs. binary, which is
 |  pervasive in the interface; however we currently do not offer a
 |  way to track the other distinctions in the type system.
 |
 |  Method resolution order:
 |      IO
 |      Generic
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __enter__(self) -> 'IO[AnyStr]'
 |
 |  __exit__(self, type, value, traceback) -> None
 |
 |  close(self) -> None
 |
 |  fileno(self) -> int
 |
 |  flush(self) -> None
 |
 |  isatty(self) -> bool
 |
 |  read(self, n: int = -1) -> ~AnyStr
 |
 |  readable(self) -> bool
 |
 |  readline(self, limit: int = -1) -> ~AnyStr
 |
 |  readlines(self, hint: int = -1) -> List[~AnyStr]
 |
 |  seek(self, offset: int, whence: int = 0) -> int
 |
 |  seekable(self) -> bool
 |
 |  tell(self) -> int
 |
 |  truncate(self, size: int = None) -> int
 |
 |  writable(self) -> bool
 |
 |  write(self, s: ~AnyStr) -> int
 |
 |  writelines(self, lines: List[~AnyStr]) -> None
 |
 |  ----------------------------------------------------------------------
 |  Readonly properties defined here:
 |
 |  closed
 |
 |  mode
 |
 |  name
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __orig_bases__ = (typing.Generic[~AnyStr],)
 |
 |  __parameters__ = (~AnyStr,)
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Generic:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
 |
 |  __init_subclass__(...)
 |      Function to initialize subclasses.
typing.ItemsView
Python Library Documentation: _SpecialGenericAlias in module typing

ItemsView = typing.ItemsView
    A generic version of collections.abc.ItemsView.
typing.Iterable
Python Library Documentation: _SpecialGenericAlias in module typing

Iterable = typing.Iterable
    A generic version of collections.abc.Iterable.
typing.Iterator
Python Library Documentation: _SpecialGenericAlias in module typing

Iterator = typing.Iterator
    A generic version of collections.abc.Iterator.
typing.KT
Python Library Documentation: TypeVar in module typing object

KT = class TypeVar(builtins.object)
 |  Type variable.
 |
 |  The preferred way to construct a type variable is via the dedicated
 |  syntax for generic functions, classes, and type aliases::
 |
 |      class Sequence[T]:  # T is a TypeVar
 |          ...
 |
 |  This syntax can also be used to create bound and constrained type
 |  variables::
 |
 |      # S is a TypeVar bound to str
 |      class StrSequence[S: str]:
 |          ...
 |
 |      # A is a TypeVar constrained to str or bytes
 |      class StrOrBytesSequence[A: (str, bytes)]:
 |          ...
 |
 |  However, if desired, reusable type variables can also be constructed
 |  manually, like so::
 |
 |     T = TypeVar('T')  # Can be anything
 |     S = TypeVar('S', bound=str)  # Can be any subtype of str
 |     A = TypeVar('A', str, bytes)  # Must be exactly str or bytes
 |
 |  Type variables exist primarily for the benefit of static type
 |  checkers.  They serve as the parameters for generic types as well
 |  as for generic function and type alias definitions.
 |
 |  The variance of type variables is inferred by type checkers when they
 |  are created through the type parameter syntax and when
 |  ``infer_variance=True`` is passed. Manually created type variables may
 |  be explicitly marked covariant or contravariant by passing
 |  ``covariant=True`` or ``contravariant=True``. By default, manually
 |  created type variables are invariant. See PEP 484 and PEP 695 for more
 |  details.
 |
 |  Methods defined here:
 |
 |  __mro_entries__(...)
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __bound__
 |
 |  __constraints__
 |
 |  __contravariant__
 |
 |  __covariant__
 |
 |  __infer_variance__
typing.KeysView
Python Library Documentation: _SpecialGenericAlias in module typing

KeysView = typing.KeysView
    A generic version of collections.abc.KeysView.
typing.List
Python Library Documentation: _SpecialGenericAlias in module typing

List = typing.List
    A generic version of list.
typing.Literal
Python Library Documentation: _LiteralSpecialForm in module typing

Literal = typing.Literal
    Special typing form to define literal types (a.k.a. value types).

    This form can be used to indicate to type checkers that the corresponding
    variable or function parameter has a value equivalent to the provided
    literal (or one of several literals)::

        def validate_simple(data: Any) -> Literal[True]:  # always returns True
            ...

        MODE = Literal['r', 'rb', 'w', 'wb']
        def open_helper(file: str, mode: MODE) -> str:
            ...

        open_helper('/some/path', 'r')  # Passes type check
        open_helper('/other/path', 'typo')  # Error in type checker

    Literal[...] cannot be subclassed. At runtime, an arbitrary value
    is allowed as type argument to Literal[...], but type checkers may
    impose restrictions.
typing.LiteralString
Python Library Documentation: _SpecialForm in module typing

LiteralString = typing.LiteralString
    Represents an arbitrary literal string.

    Example::

        from typing import LiteralString

        def run_query(sql: LiteralString) -> None:
            ...

        def caller(arbitrary_string: str, literal_string: LiteralString) -> None:
            run_query("SELECT * FROM students")  # OK
            run_query(literal_string)  # OK
            run_query("SELECT * FROM " + literal_string)  # OK
            run_query(arbitrary_string)  # type checker error
            run_query(  # type checker error
                f"SELECT * FROM students WHERE name = {arbitrary_string}"
            )

    Only string literals and other LiteralStrings are compatible
    with LiteralString. This provides a tool to help prevent
    security issues such as SQL injection.
typing.Mapping
Python Library Documentation: _SpecialGenericAlias in module typing

Mapping = typing.Mapping
    A generic version of collections.abc.Mapping.
typing.MappingView
Python Library Documentation: _SpecialGenericAlias in module typing

MappingView = typing.MappingView
    A generic version of collections.abc.MappingView.
typing.Match
Python Library Documentation: _SpecialGenericAlias in module typing

Match = typing.Match
    A generic version of re.Match.
typing.MethodDescriptorType
Python Library Documentation: class method_descriptor in module builtins

class method_descriptor(object)
 |  Methods defined here:
 |
 |  __call__(self, /, *args, **kwargs)
 |      Call self as a function.
 |
 |  __get__(self, instance, owner=None, /)
 |      Return an attribute of instance, which is of type owner.
 |
 |  __reduce__(...)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __objclass__
 |
 |  __text_signature__
typing.MethodWrapperType
Python Library Documentation: class method-wrapper in module builtins

class method-wrapper(object)
 |  Methods defined here:
 |
 |  __call__(self, /, *args, **kwargs)
 |      Call self as a function.
 |
 |  __eq__(self, value, /)
 |      Return self==value.
 |
 |  __ge__(self, value, /)
 |      Return self>=value.
 |
 |  __gt__(self, value, /)
 |      Return self>value.
 |
 |  __hash__(self, /)
 |      Return hash(self).
 |
 |  __le__(self, value, /)
 |      Return self<=value.
 |
 |  __lt__(self, value, /)
 |      Return self<value.
 |
 |  __ne__(self, value, /)
 |      Return self!=value.
 |
 |  __reduce__(...)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __objclass__
 |
 |  __self__
 |
 |  __text_signature__
typing.MutableMapping
Python Library Documentation: _SpecialGenericAlias in module typing

MutableMapping = typing.MutableMapping
    A generic version of collections.abc.MutableMapping.
typing.MutableSequence
Python Library Documentation: _SpecialGenericAlias in module typing

MutableSequence = typing.MutableSequence
    A generic version of collections.abc.MutableSequence.
typing.MutableSet
Python Library Documentation: _SpecialGenericAlias in module typing

MutableSet = typing.MutableSet
    A generic version of collections.abc.MutableSet.
typing.NamedTuple
Python Library Documentation: function NamedTuple in module typing

NamedTuple(typename, fields=None, /, **kwargs)
    Typed version of namedtuple.

    Usage::

        class Employee(NamedTuple):
            name: str
            id: int

    This is equivalent to::

        Employee = collections.namedtuple('Employee', ['name', 'id'])

    The resulting class has an extra __annotations__ attribute, giving a
    dict that maps field names to types.  (The field names are also in
    the _fields attribute, which is part of the namedtuple API.)
    An alternative equivalent functional syntax is also accepted::

        Employee = NamedTuple('Employee', [('name', str), ('id', int)])
typing.NamedTupleMeta
Python Library Documentation: class NamedTupleMeta in module typing

class NamedTupleMeta(builtins.type)
 |  NamedTupleMeta(typename, bases, ns)
 |
 |  Method resolution order:
 |      NamedTupleMeta
 |      builtins.type
 |      builtins.object
 |
 |  Static methods defined here:
 |
 |  __new__(cls, typename, bases, ns)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __annotations__ = {}
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from builtins.type:
 |
 |  __call__(self, /, *args, **kwargs)
 |      Call self as a function.
 |
 |  __delattr__(self, name, /)
 |      Implement delattr(self, name).
 |
 |  __dir__(self, /)
 |      Specialized __dir__ implementation for types.
 |
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |
 |  __init__(self, /, *args, **kwargs)
 |      Initialize self.  See help(type(self)) for accurate signature.
 |
 |  __instancecheck__(self, instance, /)
 |      Check if an object is an instance.
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __setattr__(self, name, value, /)
 |      Implement setattr(self, name, value).
 |
 |  __sizeof__(self, /)
 |      Return memory consumption of the type object.
 |
 |  __subclasscheck__(self, subclass, /)
 |      Check if a class is a subclass.
 |
 |  __subclasses__(self, /)
 |      Return a list of immediate subclasses.
 |
 |  mro(self, /)
 |      Return a type's method resolution order.
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from builtins.type:
 |
 |  __prepare__(...)
 |      __prepare__() -> dict
 |      used to create the namespace for the class statement
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from builtins.type:
 |
 |  __abstractmethods__
 |
 |  __dict__
 |
 |  __text_signature__
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes inherited from builtins.type:
 |
 |  __base__ = <class 'type'>
 |      type(object) -> the object's type
 |      type(name, bases, dict, **kwds) -> a new type
 |
 |
 |  __bases__ = (<class 'type'>,)
 |
 |  __basicsize__ = 920
 |
 |  __dictoffset__ = 264
 |
 |  __flags__ = 2156420608
 |
 |  __itemsize__ = 40
 |
 |  __mro__ = (<class 'typing.NamedTupleMeta'>, <class 'type'>, <class 'ob...
 |
 |  __type_params__ = ()
 |
 |  __weakrefoffset__ = 368
typing.Never
Python Library Documentation: _SpecialForm in module typing

Never = typing.Never
    The bottom type, a type that has no members.

    This can be used to define a function that should never be
    called, or a function that never returns::

        from typing import Never

        def never_call_me(arg: Never) -> None:
            pass

        def int_or_str(arg: int | str) -> None:
            never_call_me(arg)  # type checker error
            match arg:
                case int():
                    print("It's an int")
                case str():
                    print("It's a str")
                case _:
                    never_call_me(arg)  # OK, arg is of type Never
typing.NewType
Python Library Documentation: class NewType in module typing

class NewType(builtins.object)
 |  NewType(name, tp)
 |
 |  NewType creates simple unique types with almost zero runtime overhead.
 |
 |  NewType(name, tp) is considered a subtype of tp
 |  by static type checkers. At runtime, NewType(name, tp) returns
 |  a dummy callable that simply returns its argument.
 |
 |  Usage::
 |
 |      UserId = NewType('UserId', int)
 |
 |      def name_by_id(user_id: UserId) -> str:
 |          ...
 |
 |      UserId('user')          # Fails type check
 |
 |      name_by_id(42)          # Fails type check
 |      name_by_id(UserId(42))  # OK
 |
 |      num = UserId(5) + 1     # type: int
 |
 |  Methods defined here:
 |
 |  __init__(self, name, tp)
 |      Initialize self.  See help(type(self)) for accurate signature.
 |
 |  __mro_entries__(self, bases)
 |
 |  __or__(self, other)
 |      Return self|value.
 |
 |  __reduce__(self)
 |      Helper for pickle.
 |
 |  __repr__(self)
 |      Return repr(self).
 |
 |  __ror__(self, other)
 |      Return value|self.
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __call__ = _idfunc(x, /)
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __dict__
 |      dictionary for instance variables
 |
 |  __weakref__
 |      list of weak references to the object
typing.NoReturn
Python Library Documentation: _SpecialForm in module typing

NoReturn = typing.NoReturn
    Special type indicating functions that never return.

    Example::

        from typing import NoReturn

        def stop() -> NoReturn:
            raise Exception('no way')

    NoReturn can also be used as a bottom type, a type that
    has no values. Starting in Python 3.11, the Never type should
    be used for this concept instead. Type checkers should treat the two
    equivalently.
typing.NotRequired
Python Library Documentation: _SpecialForm in module typing

NotRequired = typing.NotRequired
    Special typing construct to mark a TypedDict key as potentially missing.

    For example::

        class Movie(TypedDict):
            title: str
            year: NotRequired[int]

        m = Movie(
            title='The Matrix',  # typechecker error if key is omitted
            year=1999,
        )
typing.Optional
Python Library Documentation: _SpecialForm in module typing

Optional = typing.Optional
    Optional[X] is equivalent to Union[X, None].
typing.OrderedDict
Python Library Documentation: _SpecialGenericAlias in module typing

OrderedDict = typing.OrderedDict
    A generic version of collections.OrderedDict.
typing.ParamSpec
Python Library Documentation: class ParamSpec in module typing

class ParamSpec(builtins.object)
 |  Parameter specification variable.
 |
 |  The preferred way to construct a parameter specification is via the
 |  dedicated syntax for generic functions, classes, and type aliases,
 |  where the use of '**' creates a parameter specification::
 |
 |      type IntFunc[**P] = Callable[P, int]
 |
 |  For compatibility with Python 3.11 and earlier, ParamSpec objects
 |  can also be created as follows::
 |
 |      P = ParamSpec('P')
 |
 |  Parameter specification variables exist primarily for the benefit of
 |  static type checkers.  They are used to forward the parameter types of
 |  one callable to another callable, a pattern commonly found in
 |  higher-order functions and decorators.  They are only valid when used
 |  in ``Concatenate``, or as the first argument to ``Callable``, or as
 |  parameters for user-defined Generics. See class Generic for more
 |  information on generic types.
 |
 |  An example for annotating a decorator::
 |
 |      def add_logging[**P, T](f: Callable[P, T]) -> Callable[P, T]:
 |          '''A type-safe decorator to add logging to a function.'''
 |          def inner(*args: P.args, **kwargs: P.kwargs) -> T:
 |              logging.info(f'{f.__name__} was called')
 |              return f(*args, **kwargs)
 |          return inner
 |
 |      @add_logging
 |      def add_two(x: float, y: float) -> float:
 |          '''Add two numbers together.'''
 |          return x + y
 |
 |  Parameter specification variables can be introspected. e.g.::
 |
 |      >>> P = ParamSpec("P")
 |      >>> P.__name__
 |      'P'
 |
 |  Note that only parameter specification variables defined in the global
 |  scope can be pickled.
 |
 |  Methods defined here:
 |
 |  __mro_entries__(...)
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __typing_prepare_subst__(self, /, alias, args)
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __bound__
 |
 |  __contravariant__
 |
 |  __covariant__
 |
 |  __infer_variance__
 |
 |  args
 |      Represents positional arguments.
 |
 |  kwargs
 |      Represents keyword arguments.
typing.ParamSpecArgs
Python Library Documentation: class ParamSpecArgs in module typing

class ParamSpecArgs(builtins.object)
 |  The args for a ParamSpec object.
 |
 |  Given a ParamSpec object P, P.args is an instance of ParamSpecArgs.
 |
 |  ParamSpecArgs objects have a reference back to their ParamSpec::
 |
 |      >>> P = ParamSpec("P")
 |      >>> P.args.__origin__ is P
 |      True
 |
 |  This type is meant for runtime introspection and has no special meaning
 |  to static type checkers.
 |
 |  Methods defined here:
 |
 |  __eq__(self, value, /)
 |      Return self==value.
 |
 |  __ge__(self, value, /)
 |      Return self>=value.
 |
 |  __gt__(self, value, /)
 |      Return self>value.
 |
 |  __le__(self, value, /)
 |      Return self<=value.
 |
 |  __lt__(self, value, /)
 |      Return self<value.
 |
 |  __mro_entries__(...)
 |
 |  __ne__(self, value, /)
 |      Return self!=value.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __origin__
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __hash__ = None
typing.ParamSpecKwargs
Python Library Documentation: class ParamSpecKwargs in module typing

class ParamSpecKwargs(builtins.object)
 |  The kwargs for a ParamSpec object.
 |
 |  Given a ParamSpec object P, P.kwargs is an instance of ParamSpecKwargs.
 |
 |  ParamSpecKwargs objects have a reference back to their ParamSpec::
 |
 |      >>> P = ParamSpec("P")
 |      >>> P.kwargs.__origin__ is P
 |      True
 |
 |  This type is meant for runtime introspection and has no special meaning
 |  to static type checkers.
 |
 |  Methods defined here:
 |
 |  __eq__(self, value, /)
 |      Return self==value.
 |
 |  __ge__(self, value, /)
 |      Return self>=value.
 |
 |  __gt__(self, value, /)
 |      Return self>value.
 |
 |  __le__(self, value, /)
 |      Return self<=value.
 |
 |  __lt__(self, value, /)
 |      Return self<value.
 |
 |  __mro_entries__(...)
 |
 |  __ne__(self, value, /)
 |      Return self!=value.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __origin__
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __hash__ = None
typing.Pattern
Python Library Documentation: _SpecialGenericAlias in module typing

Pattern = typing.Pattern
    A generic version of re.Pattern.
typing.Protocol
Python Library Documentation: class Protocol in module typing

class Protocol(Generic)
 |  Base class for protocol classes.
 |
 |  Protocol classes are defined as::
 |
 |      class Proto(Protocol):
 |          def meth(self) -> int:
 |              ...
 |
 |  Such classes are primarily used with static type checkers that recognize
 |  structural subtyping (static duck-typing).
 |
 |  For example::
 |
 |      class C:
 |          def meth(self) -> int:
 |              return 0
 |
 |      def func(x: Proto) -> int:
 |          return x.meth()
 |
 |      func(C())  # Passes static type check
 |
 |  See PEP 544 for details. Protocol classes decorated with
 |  @typing.runtime_checkable act as simple-minded runtime protocols that check
 |  only the presence of given attributes, ignoring their type signatures.
 |  Protocol classes can be generic, they are defined as::
 |
 |      class GenProto[T](Protocol):
 |          def meth(self) -> T:
 |              ...
 |
 |  Method resolution order:
 |      Protocol
 |      Generic
 |      builtins.object
 |
 |  Class methods defined here:
 |
 |  __init_subclass__(*args, **kwargs)
 |      Function to initialize subclasses.
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __abstractmethods__ = frozenset()
 |
 |  __parameters__ = ()
 |
 |  __protocol_attrs__ = set()
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Generic:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
typing.Required
Python Library Documentation: _SpecialForm in module typing

Required = typing.Required
    Special typing construct to mark a TypedDict key as required.

    This is mainly useful for total=False TypedDicts.

    For example::

        class Movie(TypedDict, total=False):
            title: Required[str]
            year: int

        m = Movie(
            title='The Matrix',  # typechecker error if key is omitted
            year=1999,
        )

    There is no runtime checking that a required key is actually provided
    when instantiating a related TypedDict.
typing.Reversible
Python Library Documentation: _SpecialGenericAlias in module typing

Reversible = typing.Reversible
    A generic version of collections.abc.Reversible.
typing.Self
Python Library Documentation: _SpecialForm in module typing

Self = typing.Self
    Used to spell the type of "self" in classes.

    Example::

        from typing import Self

        class Foo:
            def return_self(self) -> Self:
                ...
                return self

    This is especially useful for:
        - classmethods that are used as alternative constructors
        - annotating an `__enter__` method which returns self
typing.Sequence
Python Library Documentation: _SpecialGenericAlias in module typing

Sequence = typing.Sequence
    A generic version of collections.abc.Sequence.
typing.Set
Python Library Documentation: _SpecialGenericAlias in module typing

Set = typing.Set
    A generic version of set.
typing.Sized
Python Library Documentation: _SpecialGenericAlias in module typing

Sized = typing.Sized
    A generic version of collections.abc.Sized.
typing.SupportsAbs
Python Library Documentation: class SupportsAbs in module typing

class SupportsAbs(Protocol)
 |  SupportsAbs(*args, **kwargs)
 |
 |  An ABC with one abstract method __abs__ that is covariant in its return type.
 |
 |  Method resolution order:
 |      SupportsAbs
 |      Protocol
 |      Generic
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __abs__(self) -> T
 |
 |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
 |
 |  ----------------------------------------------------------------------
 |  Class methods defined here:
 |
 |  __subclasshook__ = _proto_hook(other) from typing
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __abstractmethods__ = frozenset({'__abs__'})
 |
 |  __annotations__ = {}
 |
 |  __non_callable_proto_members__ = set()
 |
 |  __orig_bases__ = (<class 'typing.Protocol'>, typing.Generic[T])
 |
 |  __parameters__ = (T,)
 |
 |  __protocol_attrs__ = {'__abs__'}
 |
 |  __type_params__ = (T,)
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Protocol:
 |
 |  __init_subclass__(*args, **kwargs)
 |      Function to initialize subclasses.
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Generic:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
typing.SupportsBytes
Python Library Documentation: class SupportsBytes in module typing

class SupportsBytes(Protocol)
 |  SupportsBytes(*args, **kwargs)
 |
 |  An ABC with one abstract method __bytes__.
 |
 |  Method resolution order:
 |      SupportsBytes
 |      Protocol
 |      Generic
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __bytes__(self) -> bytes
 |
 |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
 |
 |  ----------------------------------------------------------------------
 |  Class methods defined here:
 |
 |  __subclasshook__ = _proto_hook(other) from typing
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __abstractmethods__ = frozenset({'__bytes__'})
 |
 |  __annotations__ = {}
 |
 |  __non_callable_proto_members__ = set()
 |
 |  __parameters__ = ()
 |
 |  __protocol_attrs__ = {'__bytes__'}
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Protocol:
 |
 |  __init_subclass__(*args, **kwargs)
 |      Function to initialize subclasses.
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Generic:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
typing.SupportsComplex
Python Library Documentation: class SupportsComplex in module typing

class SupportsComplex(Protocol)
 |  SupportsComplex(*args, **kwargs)
 |
 |  An ABC with one abstract method __complex__.
 |
 |  Method resolution order:
 |      SupportsComplex
 |      Protocol
 |      Generic
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __complex__(self) -> complex
 |
 |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
 |
 |  ----------------------------------------------------------------------
 |  Class methods defined here:
 |
 |  __subclasshook__ = _proto_hook(other) from typing
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __abstractmethods__ = frozenset({'__complex__'})
 |
 |  __annotations__ = {}
 |
 |  __non_callable_proto_members__ = set()
 |
 |  __parameters__ = ()
 |
 |  __protocol_attrs__ = {'__complex__'}
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Protocol:
 |
 |  __init_subclass__(*args, **kwargs)
 |      Function to initialize subclasses.
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Generic:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
typing.SupportsFloat
Python Library Documentation: class SupportsFloat in module typing

class SupportsFloat(Protocol)
 |  SupportsFloat(*args, **kwargs)
 |
 |  An ABC with one abstract method __float__.
 |
 |  Method resolution order:
 |      SupportsFloat
 |      Protocol
 |      Generic
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __float__(self) -> float
 |
 |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
 |
 |  ----------------------------------------------------------------------
 |  Class methods defined here:
 |
 |  __subclasshook__ = _proto_hook(other) from typing
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __abstractmethods__ = frozenset({'__float__'})
 |
 |  __annotations__ = {}
 |
 |  __non_callable_proto_members__ = set()
 |
 |  __parameters__ = ()
 |
 |  __protocol_attrs__ = {'__float__'}
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Protocol:
 |
 |  __init_subclass__(*args, **kwargs)
 |      Function to initialize subclasses.
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Generic:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
typing.SupportsIndex
Python Library Documentation: class SupportsIndex in module typing

class SupportsIndex(Protocol)
 |  SupportsIndex(*args, **kwargs)
 |
 |  An ABC with one abstract method __index__.
 |
 |  Method resolution order:
 |      SupportsIndex
 |      Protocol
 |      Generic
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __index__(self) -> int
 |
 |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
 |
 |  ----------------------------------------------------------------------
 |  Class methods defined here:
 |
 |  __subclasshook__ = _proto_hook(other) from typing
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __abstractmethods__ = frozenset({'__index__'})
 |
 |  __annotations__ = {}
 |
 |  __non_callable_proto_members__ = set()
 |
 |  __parameters__ = ()
 |
 |  __protocol_attrs__ = {'__index__'}
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Protocol:
 |
 |  __init_subclass__(*args, **kwargs)
 |      Function to initialize subclasses.
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Generic:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
typing.SupportsInt
Python Library Documentation: class SupportsInt in module typing

class SupportsInt(Protocol)
 |  SupportsInt(*args, **kwargs)
 |
 |  An ABC with one abstract method __int__.
 |
 |  Method resolution order:
 |      SupportsInt
 |      Protocol
 |      Generic
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
 |
 |  __int__(self) -> int
 |
 |  ----------------------------------------------------------------------
 |  Class methods defined here:
 |
 |  __subclasshook__ = _proto_hook(other) from typing
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __abstractmethods__ = frozenset({'__int__'})
 |
 |  __annotations__ = {}
 |
 |  __non_callable_proto_members__ = set()
 |
 |  __parameters__ = ()
 |
 |  __protocol_attrs__ = {'__int__'}
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Protocol:
 |
 |  __init_subclass__(*args, **kwargs)
 |      Function to initialize subclasses.
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Generic:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
typing.SupportsRound
Python Library Documentation: class SupportsRound in module typing

class SupportsRound(Protocol)
 |  SupportsRound(*args, **kwargs)
 |
 |  An ABC with one abstract method __round__ that is covariant in its return type.
 |
 |  Method resolution order:
 |      SupportsRound
 |      Protocol
 |      Generic
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
 |
 |  __round__(self, ndigits: int = 0) -> T
 |
 |  ----------------------------------------------------------------------
 |  Class methods defined here:
 |
 |  __subclasshook__ = _proto_hook(other) from typing
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __abstractmethods__ = frozenset({'__round__'})
 |
 |  __annotations__ = {}
 |
 |  __non_callable_proto_members__ = set()
 |
 |  __orig_bases__ = (<class 'typing.Protocol'>, typing.Generic[T])
 |
 |  __parameters__ = (T,)
 |
 |  __protocol_attrs__ = {'__round__'}
 |
 |  __type_params__ = (T,)
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Protocol:
 |
 |  __init_subclass__(*args, **kwargs)
 |      Function to initialize subclasses.
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Generic:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
typing.T
Python Library Documentation: TypeVar in module typing object

T = class TypeVar(builtins.object)
 |  Type variable.
 |
 |  The preferred way to construct a type variable is via the dedicated
 |  syntax for generic functions, classes, and type aliases::
 |
 |      class Sequence[T]:  # T is a TypeVar
 |          ...
 |
 |  This syntax can also be used to create bound and constrained type
 |  variables::
 |
 |      # S is a TypeVar bound to str
 |      class StrSequence[S: str]:
 |          ...
 |
 |      # A is a TypeVar constrained to str or bytes
 |      class StrOrBytesSequence[A: (str, bytes)]:
 |          ...
 |
 |  However, if desired, reusable type variables can also be constructed
 |  manually, like so::
 |
 |     T = TypeVar('T')  # Can be anything
 |     S = TypeVar('S', bound=str)  # Can be any subtype of str
 |     A = TypeVar('A', str, bytes)  # Must be exactly str or bytes
 |
 |  Type variables exist primarily for the benefit of static type
 |  checkers.  They serve as the parameters for generic types as well
 |  as for generic function and type alias definitions.
 |
 |  The variance of type variables is inferred by type checkers when they
 |  are created through the type parameter syntax and when
 |  ``infer_variance=True`` is passed. Manually created type variables may
 |  be explicitly marked covariant or contravariant by passing
 |  ``covariant=True`` or ``contravariant=True``. By default, manually
 |  created type variables are invariant. See PEP 484 and PEP 695 for more
 |  details.
 |
 |  Methods defined here:
 |
 |  __mro_entries__(...)
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __bound__
 |
 |  __constraints__
 |
 |  __contravariant__
 |
 |  __covariant__
 |
 |  __infer_variance__
typing.TYPE_CHECKING
Python Library Documentation: bool object

class bool(int)
 |  bool(x) -> bool
 |
 |  Returns True when the argument x is true, False otherwise.
 |  The builtins True and False are the only two instances of the class bool.
 |  The class bool is a subclass of the class int, and cannot be subclassed.
 |
 |  Method resolution order:
 |      bool
 |      int
 |      object
 |
 |  Methods defined here:
 |
 |  __and__(self, value, /)
 |      Return self&value.
 |
 |  __invert__(self, /)
 |      ~self
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __rand__(self, value, /)
 |      Return value&self.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __rxor__(self, value, /)
 |      Return value^self.
 |
 |  __xor__(self, value, /)
 |      Return self^value.
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from int:
 |
 |  __abs__(self, /)
 |      abs(self)
 |
 |  __add__(self, value, /)
 |      Return self+value.
 |
 |  __bool__(self, /)
 |      True if self else False
 |
 |  __ceil__(...)
 |      Ceiling of an Integral returns itself.
 |
 |  __divmod__(self, value, /)
 |      Return divmod(self, value).
 |
 |  __eq__(self, value, /)
 |      Return self==value.
 |
 |  __float__(self, /)
 |      float(self)
 |
 |  __floor__(...)
 |      Flooring an Integral returns itself.
 |
 |  __floordiv__(self, value, /)
 |      Return self//value.
 |
 |  __format__(self, format_spec, /)
 |      Convert to a string according to format_spec.
 |
 |  __ge__(self, value, /)
 |      Return self>=value.
 |
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |
 |  __getnewargs__(self, /)
 |
 |  __gt__(self, value, /)
 |      Return self>value.
 |
 |  __hash__(self, /)
 |      Return hash(self).
 |
 |  __index__(self, /)
 |      Return self converted to an integer, if self is suitable for use as an index into a list.
 |
 |  __int__(self, /)
 |      int(self)
 |
 |  __le__(self, value, /)
 |      Return self<=value.
 |
 |  __lshift__(self, value, /)
 |      Return self<<value.
 |
 |  __lt__(self, value, /)
 |      Return self<value.
 |
 |  __mod__(self, value, /)
 |      Return self%value.
 |
 |  __mul__(self, value, /)
 |      Return self*value.
 |
 |  __ne__(self, value, /)
 |      Return self!=value.
 |
 |  __neg__(self, /)
 |      -self
 |
 |  __pos__(self, /)
 |      +self
 |
 |  __pow__(self, value, mod=None, /)
 |      Return pow(self, value, mod).
 |
 |  __radd__(self, value, /)
 |      Return value+self.
 |
 |  __rdivmod__(self, value, /)
 |      Return divmod(value, self).
 |
 |  __rfloordiv__(self, value, /)
 |      Return value//self.
 |
 |  __rlshift__(self, value, /)
 |      Return value<<self.
 |
 |  __rmod__(self, value, /)
 |      Return value%self.
 |
 |  __rmul__(self, value, /)
 |      Return value*self.
 |
 |  __round__(...)
 |      Rounding an Integral returns itself.
 |
 |      Rounding with an ndigits argument also returns an integer.
 |
 |  __rpow__(self, value, mod=None, /)
 |      Return pow(value, self, mod).
 |
 |  __rrshift__(self, value, /)
 |      Return value>>self.
 |
 |  __rshift__(self, value, /)
 |      Return self>>value.
 |
 |  __rsub__(self, value, /)
 |      Return value-self.
 |
 |  __rtruediv__(self, value, /)
 |      Return value/self.
 |
 |  __sizeof__(self, /)
 |      Returns size in memory, in bytes.
 |
 |  __sub__(self, value, /)
 |      Return self-value.
 |
 |  __truediv__(self, value, /)
 |      Return self/value.
 |
 |  __trunc__(...)
 |      Truncating an Integral returns itself.
 |
 |  as_integer_ratio(self, /)
 |      Return a pair of integers, whose ratio is equal to the original int.
 |
 |      The ratio is in lowest terms and has a positive denominator.
 |
 |      >>> (10).as_integer_ratio()
 |      (10, 1)
 |      >>> (-10).as_integer_ratio()
 |      (-10, 1)
 |      >>> (0).as_integer_ratio()
 |      (0, 1)
 |
 |  bit_count(self, /)
 |      Number of ones in the binary representation of the absolute value of self.
 |
 |      Also known as the population count.
 |
 |      >>> bin(13)
 |      '0b1101'
 |      >>> (13).bit_count()
 |      3
 |
 |  bit_length(self, /)
 |      Number of bits necessary to represent self in binary.
 |
 |      >>> bin(37)
 |      '0b100101'
 |      >>> (37).bit_length()
 |      6
 |
 |  conjugate(...)
 |      Returns self, the complex conjugate of any int.
 |
 |  is_integer(self, /)
 |      Returns True. Exists for duck type compatibility with float.is_integer.
 |
 |  to_bytes(self, /, length=1, byteorder='big', *, signed=False)
 |      Return an array of bytes representing an integer.
 |
 |      length
 |        Length of bytes object to use.  An OverflowError is raised if the
 |        integer is not representable with the given number of bytes.  Default
 |        is length 1.
 |      byteorder
 |        The byte order used to represent the integer.  If byteorder is 'big',
 |        the most significant byte is at the beginning of the byte array.  If
 |        byteorder is 'little', the most significant byte is at the end of the
 |        byte array.  To request the native byte order of the host system, use
 |        `sys.byteorder' as the byte order value.  Default is to use 'big'.
 |      signed
 |        Determines whether two's complement is used to represent the integer.
 |        If signed is False and a negative integer is given, an OverflowError
 |        is raised.
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from int:
 |
 |  from_bytes(bytes, byteorder='big', *, signed=False)
 |      Return the integer represented by the given array of bytes.
 |
 |      bytes
 |        Holds the array of bytes to convert.  The argument must either
 |        support the buffer protocol or be an iterable object producing bytes.
 |        Bytes and bytearray are examples of built-in objects that support the
 |        buffer protocol.
 |      byteorder
 |        The byte order used to represent the integer.  If byteorder is 'big',
 |        the most significant byte is at the beginning of the byte array.  If
 |        byteorder is 'little', the most significant byte is at the end of the
 |        byte array.  To request the native byte order of the host system, use
 |        `sys.byteorder' as the byte order value.  Default is to use 'big'.
 |      signed
 |        Indicates whether two's complement is used to represent the integer.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from int:
 |
 |  denominator
 |      the denominator of a rational number in lowest terms
 |
 |  imag
 |      the imaginary part of a complex number
 |
 |  numerator
 |      the numerator of a rational number in lowest terms
 |
 |  real
 |      the real part of a complex number
typing.T_co
Python Library Documentation: TypeVar in module typing object

T_co = class TypeVar(builtins.object)
 |  Type variable.
 |
 |  The preferred way to construct a type variable is via the dedicated
 |  syntax for generic functions, classes, and type aliases::
 |
 |      class Sequence[T]:  # T is a TypeVar
 |          ...
 |
 |  This syntax can also be used to create bound and constrained type
 |  variables::
 |
 |      # S is a TypeVar bound to str
 |      class StrSequence[S: str]:
 |          ...
 |
 |      # A is a TypeVar constrained to str or bytes
 |      class StrOrBytesSequence[A: (str, bytes)]:
 |          ...
 |
 |  However, if desired, reusable type variables can also be constructed
 |  manually, like so::
 |
 |     T = TypeVar('T')  # Can be anything
 |     S = TypeVar('S', bound=str)  # Can be any subtype of str
 |     A = TypeVar('A', str, bytes)  # Must be exactly str or bytes
 |
 |  Type variables exist primarily for the benefit of static type
 |  checkers.  They serve as the parameters for generic types as well
 |  as for generic function and type alias definitions.
 |
 |  The variance of type variables is inferred by type checkers when they
 |  are created through the type parameter syntax and when
 |  ``infer_variance=True`` is passed. Manually created type variables may
 |  be explicitly marked covariant or contravariant by passing
 |  ``covariant=True`` or ``contravariant=True``. By default, manually
 |  created type variables are invariant. See PEP 484 and PEP 695 for more
 |  details.
 |
 |  Methods defined here:
 |
 |  __mro_entries__(...)
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __bound__
 |
 |  __constraints__
 |
 |  __contravariant__
 |
 |  __covariant__
 |
 |  __infer_variance__
typing.T_contra
Python Library Documentation: TypeVar in module typing object

T_contra = class TypeVar(builtins.object)
 |  Type variable.
 |
 |  The preferred way to construct a type variable is via the dedicated
 |  syntax for generic functions, classes, and type aliases::
 |
 |      class Sequence[T]:  # T is a TypeVar
 |          ...
 |
 |  This syntax can also be used to create bound and constrained type
 |  variables::
 |
 |      # S is a TypeVar bound to str
 |      class StrSequence[S: str]:
 |          ...
 |
 |      # A is a TypeVar constrained to str or bytes
 |      class StrOrBytesSequence[A: (str, bytes)]:
 |          ...
 |
 |  However, if desired, reusable type variables can also be constructed
 |  manually, like so::
 |
 |     T = TypeVar('T')  # Can be anything
 |     S = TypeVar('S', bound=str)  # Can be any subtype of str
 |     A = TypeVar('A', str, bytes)  # Must be exactly str or bytes
 |
 |  Type variables exist primarily for the benefit of static type
 |  checkers.  They serve as the parameters for generic types as well
 |  as for generic function and type alias definitions.
 |
 |  The variance of type variables is inferred by type checkers when they
 |  are created through the type parameter syntax and when
 |  ``infer_variance=True`` is passed. Manually created type variables may
 |  be explicitly marked covariant or contravariant by passing
 |  ``covariant=True`` or ``contravariant=True``. By default, manually
 |  created type variables are invariant. See PEP 484 and PEP 695 for more
 |  details.
 |
 |  Methods defined here:
 |
 |  __mro_entries__(...)
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __bound__
 |
 |  __constraints__
 |
 |  __contravariant__
 |
 |  __covariant__
 |
 |  __infer_variance__
typing.Text
Python Library Documentation: class str in module builtins

class str(object)
 |  str(object='') -> str
 |  str(bytes_or_buffer[, encoding[, errors]]) -> str
 |
 |  Create a new string object from the given object. If encoding or
 |  errors is specified, then the object must expose a data buffer
 |  that will be decoded using the given encoding and error handler.
 |  Otherwise, returns the result of object.__str__() (if defined)
 |  or repr(object).
 |  encoding defaults to sys.getdefaultencoding().
 |  errors defaults to 'strict'.
 |
 |  Methods defined here:
 |
 |  __add__(self, value, /)
 |      Return self+value.
 |
 |  __contains__(self, key, /)
 |      Return bool(key in self).
 |
 |  __eq__(self, value, /)
 |      Return self==value.
 |
 |  __format__(self, format_spec, /)
 |      Return a formatted version of the string as described by format_spec.
 |
 |  __ge__(self, value, /)
 |      Return self>=value.
 |
 |  __getitem__(self, key, /)
 |      Return self[key].
 |
 |  __getnewargs__(...)
 |
 |  __gt__(self, value, /)
 |      Return self>value.
 |
 |  __hash__(self, /)
 |      Return hash(self).
 |
 |  __iter__(self, /)
 |      Implement iter(self).
 |
 |  __le__(self, value, /)
 |      Return self<=value.
 |
 |  __len__(self, /)
 |      Return len(self).
 |
 |  __lt__(self, value, /)
 |      Return self<value.
 |
 |  __mod__(self, value, /)
 |      Return self%value.
 |
 |  __mul__(self, value, /)
 |      Return self*value.
 |
 |  __ne__(self, value, /)
 |      Return self!=value.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __rmod__(self, value, /)
 |      Return value%self.
 |
 |  __rmul__(self, value, /)
 |      Return value*self.
 |
 |  __sizeof__(self, /)
 |      Return the size of the string in memory, in bytes.
 |
 |  __str__(self, /)
 |      Return str(self).
 |
 |  capitalize(self, /)
 |      Return a capitalized version of the string.
 |
 |      More specifically, make the first character have upper case and the rest lower
 |      case.
 |
 |  casefold(self, /)
 |      Return a version of the string suitable for caseless comparisons.
 |
 |  center(self, width, fillchar=' ', /)
 |      Return a centered string of length width.
 |
 |      Padding is done using the specified fill character (default is a space).
 |
 |  count(...)
 |      S.count(sub[, start[, end]]) -> int
 |
 |      Return the number of non-overlapping occurrences of substring sub in
 |      string S[start:end].  Optional arguments start and end are
 |      interpreted as in slice notation.
 |
 |  encode(self, /, encoding='utf-8', errors='strict')
 |      Encode the string using the codec registered for encoding.
 |
 |      encoding
 |        The encoding in which to encode the string.
 |      errors
 |        The error handling scheme to use for encoding errors.
 |        The default is 'strict' meaning that encoding errors raise a
 |        UnicodeEncodeError.  Other possible values are 'ignore', 'replace' and
 |        'xmlcharrefreplace' as well as any other name registered with
 |        codecs.register_error that can handle UnicodeEncodeErrors.
 |
 |  endswith(...)
 |      S.endswith(suffix[, start[, end]]) -> bool
 |
 |      Return True if S ends with the specified suffix, False otherwise.
 |      With optional start, test S beginning at that position.
 |      With optional end, stop comparing S at that position.
 |      suffix can also be a tuple of strings to try.
 |
 |  expandtabs(self, /, tabsize=8)
 |      Return a copy where all tab characters are expanded using spaces.
 |
 |      If tabsize is not given, a tab size of 8 characters is assumed.
 |
 |  find(...)
 |      S.find(sub[, start[, end]]) -> int
 |
 |      Return the lowest index in S where substring sub is found,
 |      such that sub is contained within S[start:end].  Optional
 |      arguments start and end are interpreted as in slice notation.
 |
 |      Return -1 on failure.
 |
 |  format(...)
 |      S.format(*args, **kwargs) -> str
 |
 |      Return a formatted version of S, using substitutions from args and kwargs.
 |      The substitutions are identified by braces ('{' and '}').
 |
 |  format_map(...)
 |      S.format_map(mapping) -> str
 |
 |      Return a formatted version of S, using substitutions from mapping.
 |      The substitutions are identified by braces ('{' and '}').
 |
 |  index(...)
 |      S.index(sub[, start[, end]]) -> int
 |
 |      Return the lowest index in S where substring sub is found,
 |      such that sub is contained within S[start:end].  Optional
 |      arguments start and end are interpreted as in slice notation.
 |
 |      Raises ValueError when the substring is not found.
 |
 |  isalnum(self, /)
 |      Return True if the string is an alpha-numeric string, False otherwise.
 |
 |      A string is alpha-numeric if all characters in the string are alpha-numeric and
 |      there is at least one character in the string.
 |
 |  isalpha(self, /)
 |      Return True if the string is an alphabetic string, False otherwise.
 |
 |      A string is alphabetic if all characters in the string are alphabetic and there
 |      is at least one character in the string.
 |
 |  isascii(self, /)
 |      Return True if all characters in the string are ASCII, False otherwise.
 |
 |      ASCII characters have code points in the range U+0000-U+007F.
 |      Empty string is ASCII too.
 |
 |  isdecimal(self, /)
 |      Return True if the string is a decimal string, False otherwise.
 |
 |      A string is a decimal string if all characters in the string are decimal and
 |      there is at least one character in the string.
 |
 |  isdigit(self, /)
 |      Return True if the string is a digit string, False otherwise.
 |
 |      A string is a digit string if all characters in the string are digits and there
 |      is at least one character in the string.
 |
 |  isidentifier(self, /)
 |      Return True if the string is a valid Python identifier, False otherwise.
 |
 |      Call keyword.iskeyword(s) to test whether string s is a reserved identifier,
 |      such as "def" or "class".
 |
 |  islower(self, /)
 |      Return True if the string is a lowercase string, False otherwise.
 |
 |      A string is lowercase if all cased characters in the string are lowercase and
 |      there is at least one cased character in the string.
 |
 |  isnumeric(self, /)
 |      Return True if the string is a numeric string, False otherwise.
 |
 |      A string is numeric if all characters in the string are numeric and there is at
 |      least one character in the string.
 |
 |  isprintable(self, /)
 |      Return True if the string is printable, False otherwise.
 |
 |      A string is printable if all of its characters are considered printable in
 |      repr() or if it is empty.
 |
 |  isspace(self, /)
 |      Return True if the string is a whitespace string, False otherwise.
 |
 |      A string is whitespace if all characters in the string are whitespace and there
 |      is at least one character in the string.
 |
 |  istitle(self, /)
 |      Return True if the string is a title-cased string, False otherwise.
 |
 |      In a title-cased string, upper- and title-case characters may only
 |      follow uncased characters and lowercase characters only cased ones.
 |
 |  isupper(self, /)
 |      Return True if the string is an uppercase string, False otherwise.
 |
 |      A string is uppercase if all cased characters in the string are uppercase and
 |      there is at least one cased character in the string.
 |
 |  join(self, iterable, /)
 |      Concatenate any number of strings.
 |
 |      The string whose method is called is inserted in between each given string.
 |      The result is returned as a new string.
 |
 |      Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
 |
 |  ljust(self, width, fillchar=' ', /)
 |      Return a left-justified string of length width.
 |
 |      Padding is done using the specified fill character (default is a space).
 |
 |  lower(self, /)
 |      Return a copy of the string converted to lowercase.
 |
 |  lstrip(self, chars=None, /)
 |      Return a copy of the string with leading whitespace removed.
 |
 |      If chars is given and not None, remove characters in chars instead.
 |
 |  partition(self, sep, /)
 |      Partition the string into three parts using the given separator.
 |
 |      This will search for the separator in the string.  If the separator is found,
 |      returns a 3-tuple containing the part before the separator, the separator
 |      itself, and the part after it.
 |
 |      If the separator is not found, returns a 3-tuple containing the original string
 |      and two empty strings.
 |
 |  removeprefix(self, prefix, /)
 |      Return a str with the given prefix string removed if present.
 |
 |      If the string starts with the prefix string, return string[len(prefix):].
 |      Otherwise, return a copy of the original string.
 |
 |  removesuffix(self, suffix, /)
 |      Return a str with the given suffix string removed if present.
 |
 |      If the string ends with the suffix string and that suffix is not empty,
 |      return string[:-len(suffix)]. Otherwise, return a copy of the original
 |      string.
 |
 |  replace(self, old, new, count=-1, /)
 |      Return a copy with all occurrences of substring old replaced by new.
 |
 |        count
 |          Maximum number of occurrences to replace.
 |          -1 (the default value) means replace all occurrences.
 |
 |      If the optional argument count is given, only the first count occurrences are
 |      replaced.
 |
 |  rfind(...)
 |      S.rfind(sub[, start[, end]]) -> int
 |
 |      Return the highest index in S where substring sub is found,
 |      such that sub is contained within S[start:end].  Optional
 |      arguments start and end are interpreted as in slice notation.
 |
 |      Return -1 on failure.
 |
 |  rindex(...)
 |      S.rindex(sub[, start[, end]]) -> int
 |
 |      Return the highest index in S where substring sub is found,
 |      such that sub is contained within S[start:end].  Optional
 |      arguments start and end are interpreted as in slice notation.
 |
 |      Raises ValueError when the substring is not found.
 |
 |  rjust(self, width, fillchar=' ', /)
 |      Return a right-justified string of length width.
 |
 |      Padding is done using the specified fill character (default is a space).
 |
 |  rpartition(self, sep, /)
 |      Partition the string into three parts using the given separator.
 |
 |      This will search for the separator in the string, starting at the end. If
 |      the separator is found, returns a 3-tuple containing the part before the
 |      separator, the separator itself, and the part after it.
 |
 |      If the separator is not found, returns a 3-tuple containing two empty strings
 |      and the original string.
 |
 |  rsplit(self, /, sep=None, maxsplit=-1)
 |      Return a list of the substrings in the string, using sep as the separator string.
 |
 |        sep
 |          The separator used to split the string.
 |
 |          When set to None (the default value), will split on any whitespace
 |          character (including \n \r \t \f and spaces) and will discard
 |          empty strings from the result.
 |        maxsplit
 |          Maximum number of splits.
 |          -1 (the default value) means no limit.
 |
 |      Splitting starts at the end of the string and works to the front.
 |
 |  rstrip(self, chars=None, /)
 |      Return a copy of the string with trailing whitespace removed.
 |
 |      If chars is given and not None, remove characters in chars instead.
 |
 |  split(self, /, sep=None, maxsplit=-1)
 |      Return a list of the substrings in the string, using sep as the separator string.
 |
 |        sep
 |          The separator used to split the string.
 |
 |          When set to None (the default value), will split on any whitespace
 |          character (including \n \r \t \f and spaces) and will discard
 |          empty strings from the result.
 |        maxsplit
 |          Maximum number of splits.
 |          -1 (the default value) means no limit.
 |
 |      Splitting starts at the front of the string and works to the end.
 |
 |      Note, str.split() is mainly useful for data that has been intentionally
 |      delimited.  With natural text that includes punctuation, consider using
 |      the regular expression module.
 |
 |  splitlines(self, /, keepends=False)
 |      Return a list of the lines in the string, breaking at line boundaries.
 |
 |      Line breaks are not included in the resulting list unless keepends is given and
 |      true.
 |
 |  startswith(...)
 |      S.startswith(prefix[, start[, end]]) -> bool
 |
 |      Return True if S starts with the specified prefix, False otherwise.
 |      With optional start, test S beginning at that position.
 |      With optional end, stop comparing S at that position.
 |      prefix can also be a tuple of strings to try.
 |
 |  strip(self, chars=None, /)
 |      Return a copy of the string with leading and trailing whitespace removed.
 |
 |      If chars is given and not None, remove characters in chars instead.
 |
 |  swapcase(self, /)
 |      Convert uppercase characters to lowercase and lowercase characters to uppercase.
 |
 |  title(self, /)
 |      Return a version of the string where each word is titlecased.
 |
 |      More specifically, words start with uppercased characters and all remaining
 |      cased characters have lower case.
 |
 |  translate(self, table, /)
 |      Replace each character in the string using the given translation table.
 |
 |        table
 |          Translation table, which must be a mapping of Unicode ordinals to
 |          Unicode ordinals, strings, or None.
 |
 |      The table must implement lookup/indexing via __getitem__, for instance a
 |      dictionary or list.  If this operation raises LookupError, the character is
 |      left untouched.  Characters mapped to None are deleted.
 |
 |  upper(self, /)
 |      Return a copy of the string converted to uppercase.
 |
 |  zfill(self, width, /)
 |      Pad a numeric string with zeros on the left, to fill a field of the given width.
 |
 |      The string is never truncated.
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  maketrans(...)
 |      Return a translation table usable for str.translate().
 |
 |      If there is only one argument, it must be a dictionary mapping Unicode
 |      ordinals (integers) or characters to Unicode ordinals, strings or None.
 |      Character keys will be then converted to ordinals.
 |      If there are two arguments, they must be strings of equal length, and
 |      in the resulting dictionary, each character in x will be mapped to the
 |      character at the same position in y. If there is a third argument, it
 |      must be a string, whose characters will be mapped to None in the result.
typing.TextIO
Python Library Documentation: class TextIO in module typing

class TextIO(IO)
 |  Typed version of the return of open() in text mode.
 |
 |  Method resolution order:
 |      TextIO
 |      IO
 |      Generic
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __enter__(self) -> 'TextIO'
 |
 |  ----------------------------------------------------------------------
 |  Readonly properties defined here:
 |
 |  buffer
 |
 |  encoding
 |
 |  errors
 |
 |  line_buffering
 |
 |  newlines
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  __annotations__ = {}
 |
 |  __orig_bases__ = (typing.IO[str],)
 |
 |  __parameters__ = ()
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from IO:
 |
 |  __exit__(self, type, value, traceback) -> None
 |
 |  close(self) -> None
 |
 |  fileno(self) -> int
 |
 |  flush(self) -> None
 |
 |  isatty(self) -> bool
 |
 |  read(self, n: int = -1) -> ~AnyStr
 |
 |  readable(self) -> bool
 |
 |  readline(self, limit: int = -1) -> ~AnyStr
 |
 |  readlines(self, hint: int = -1) -> List[~AnyStr]
 |
 |  seek(self, offset: int, whence: int = 0) -> int
 |
 |  seekable(self) -> bool
 |
 |  tell(self) -> int
 |
 |  truncate(self, size: int = None) -> int
 |
 |  writable(self) -> bool
 |
 |  write(self, s: ~AnyStr) -> int
 |
 |  writelines(self, lines: List[~AnyStr]) -> None
 |
 |  ----------------------------------------------------------------------
 |  Readonly properties inherited from IO:
 |
 |  closed
 |
 |  mode
 |
 |  name
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from Generic:
 |
 |  __class_getitem__(...)
 |      Parameterizes a generic class.
 |
 |      At least, parameterizing a generic class is the *main* thing this
 |      method does. For example, for some generic class `Foo`, this is called
 |      when we do `Foo[int]` - there, with `cls=Foo` and `params=int`.
 |
 |      However, note that this method is also called when defining generic
 |      classes in the first place with `class Foo[T]: ...`.
 |
 |  __init_subclass__(...)
 |      Function to initialize subclasses.
typing.Tuple
Python Library Documentation: _TupleType in module typing

Tuple = typing.Tuple
    Deprecated alias to builtins.tuple.

    Tuple[X, Y] is the cross-product type of X and Y.

    Example: Tuple[T1, T2] is a tuple of two elements corresponding
    to type variables T1 and T2.  Tuple[int, float, str] is a tuple
    of an int, a float and a string.

    To specify a variable-length tuple of homogeneous type, use Tuple[T, ...].
typing.Type
Python Library Documentation: _SpecialGenericAlias in module typing

Type = typing.Type
    Deprecated alias to builtins.type.

    builtins.type or typing.Type can be used to annotate class objects.
    For example, suppose we have the following classes::

        class User: ...  # Abstract base for User classes
        class BasicUser(User): ...
        class ProUser(User): ...
        class TeamUser(User): ...

    And a function that takes a class argument that's a subclass of
    User and returns an instance of the corresponding class::

        def new_user[U](user_class: Type[U]) -> U:
            user = user_class()
            # (Here we could write the user object to a database)
            return user

        joe = new_user(BasicUser)

    At this point the type checker knows that joe has type BasicUser.
typing.TypeAlias
Python Library Documentation: _SpecialForm in module typing

TypeAlias = typing.TypeAlias
    Special form for marking type aliases.

    Use TypeAlias to indicate that an assignment should
    be recognized as a proper type alias definition by type
    checkers.

    For example::

        Predicate: TypeAlias = Callable[..., bool]

    It's invalid when used anywhere except as in the example above.
typing.TypeAliasType
Python Library Documentation: class TypeAliasType in module typing

class TypeAliasType(builtins.object)
 |  Type alias.
 |
 |  Type aliases are created through the type statement::
 |
 |      type Alias = int
 |
 |  In this example, Alias and int will be treated equivalently by static
 |  type checkers.
 |
 |  At runtime, Alias is an instance of TypeAliasType. The __name__
 |  attribute holds the name of the type alias. The value of the type alias
 |  is stored in the __value__ attribute. It is evaluated lazily, so the
 |  value is computed only if the attribute is accessed.
 |
 |  Type aliases can also be generic::
 |
 |      type ListOrSet[T] = list[T] | set[T]
 |
 |  In this case, the type parameters of the alias are stored in the
 |  __type_params__ attribute.
 |
 |  See PEP 695 for more information.
 |
 |  Methods defined here:
 |
 |  __getitem__(self, key, /)
 |      Return self[key].
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __parameters__
 |
 |  __type_params__
 |
 |  __value__
typing.TypeGuard
Python Library Documentation: _SpecialForm in module typing

TypeGuard = typing.TypeGuard
    Special typing construct for marking user-defined type guard functions.

    ``TypeGuard`` can be used to annotate the return type of a user-defined
    type guard function.  ``TypeGuard`` only accepts a single type argument.
    At runtime, functions marked this way should return a boolean.

    ``TypeGuard`` aims to benefit *type narrowing* -- a technique used by static
    type checkers to determine a more precise type of an expression within a
    program's code flow.  Usually type narrowing is done by analyzing
    conditional code flow and applying the narrowing to a block of code.  The
    conditional expression here is sometimes referred to as a "type guard".

    Sometimes it would be convenient to use a user-defined boolean function
    as a type guard.  Such a function should use ``TypeGuard[...]`` as its
    return type to alert static type checkers to this intention.

    Using  ``-> TypeGuard`` tells the static type checker that for a given
    function:

    1. The return value is a boolean.
    2. If the return value is ``True``, the type of its argument
       is the type inside ``TypeGuard``.

    For example::

         def is_str_list(val: list[object]) -> TypeGuard[list[str]]:
             '''Determines whether all objects in the list are strings'''
             return all(isinstance(x, str) for x in val)

         def func1(val: list[object]):
             if is_str_list(val):
                 # Type of ``val`` is narrowed to ``list[str]``.
                 print(" ".join(val))
             else:
                 # Type of ``val`` remains as ``list[object]``.
                 print("Not a list of strings!")

    Strict type narrowing is not enforced -- ``TypeB`` need not be a narrower
    form of ``TypeA`` (it can even be a wider form) and this may lead to
    type-unsafe results.  The main reason is to allow for things like
    narrowing ``list[object]`` to ``list[str]`` even though the latter is not
    a subtype of the former, since ``list`` is invariant.  The responsibility of
    writing type-safe type guards is left to the user.

    ``TypeGuard`` also works with type variables.  For more information, see
    PEP 647 (User-Defined Type Guards).
typing.TypeVar
Python Library Documentation: class TypeVar in module typing

class TypeVar(builtins.object)
 |  Type variable.
 |
 |  The preferred way to construct a type variable is via the dedicated
 |  syntax for generic functions, classes, and type aliases::
 |
 |      class Sequence[T]:  # T is a TypeVar
 |          ...
 |
 |  This syntax can also be used to create bound and constrained type
 |  variables::
 |
 |      # S is a TypeVar bound to str
 |      class StrSequence[S: str]:
 |          ...
 |
 |      # A is a TypeVar constrained to str or bytes
 |      class StrOrBytesSequence[A: (str, bytes)]:
 |          ...
 |
 |  However, if desired, reusable type variables can also be constructed
 |  manually, like so::
 |
 |     T = TypeVar('T')  # Can be anything
 |     S = TypeVar('S', bound=str)  # Can be any subtype of str
 |     A = TypeVar('A', str, bytes)  # Must be exactly str or bytes
 |
 |  Type variables exist primarily for the benefit of static type
 |  checkers.  They serve as the parameters for generic types as well
 |  as for generic function and type alias definitions.
 |
 |  The variance of type variables is inferred by type checkers when they
 |  are created through the type parameter syntax and when
 |  ``infer_variance=True`` is passed. Manually created type variables may
 |  be explicitly marked covariant or contravariant by passing
 |  ``covariant=True`` or ``contravariant=True``. By default, manually
 |  created type variables are invariant. See PEP 484 and PEP 695 for more
 |  details.
 |
 |  Methods defined here:
 |
 |  __mro_entries__(...)
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __bound__
 |
 |  __constraints__
 |
 |  __contravariant__
 |
 |  __covariant__
 |
 |  __infer_variance__
typing.TypeVarTuple
Python Library Documentation: class TypeVarTuple in module typing

class TypeVarTuple(builtins.object)
 |  Type variable tuple. A specialized form of type variable that enables
 |  variadic generics.
 |
 |  The preferred way to construct a type variable tuple is via the
 |  dedicated syntax for generic functions, classes, and type aliases,
 |  where a single '*' indicates a type variable tuple::
 |
 |      def move_first_element_to_last[T, *Ts](tup: tuple[T, *Ts]) -> tuple[*Ts, T]:
 |          return (*tup[1:], tup[0])
 |
 |  For compatibility with Python 3.11 and earlier, TypeVarTuple objects
 |  can also be created as follows::
 |
 |      Ts = TypeVarTuple('Ts')  # Can be given any name
 |
 |  Just as a TypeVar (type variable) is a placeholder for a single type,
 |  a TypeVarTuple is a placeholder for an *arbitrary* number of types. For
 |  example, if we define a generic class using a TypeVarTuple::
 |
 |      class C[*Ts]: ...
 |
 |  Then we can parameterize that class with an arbitrary number of type
 |  arguments::
 |
 |      C[int]       # Fine
 |      C[int, str]  # Also fine
 |      C[()]        # Even this is fine
 |
 |  For more details, see PEP 646.
 |
 |  Note that only TypeVarTuples defined in the global scope can be
 |  pickled.
 |
 |  Methods defined here:
 |
 |  __iter__(self, /)
 |      Implement iter(self).
 |
 |  __mro_entries__(...)
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __typing_prepare_subst__(self, /, alias, args)
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
typing.TypedDict
Python Library Documentation: function TypedDict in module typing

TypedDict(typename, fields=None, /, *, total=True, **kwargs)
    A simple typed namespace. At runtime it is equivalent to a plain dict.

    TypedDict creates a dictionary type such that a type checker will expect all
    instances to have a certain set of keys, where each key is
    associated with a value of a consistent type. This expectation
    is not checked at runtime.

    Usage::

        >>> class Point2D(TypedDict):
        ...     x: int
        ...     y: int
        ...     label: str
        ...
        >>> a: Point2D = {'x': 1, 'y': 2, 'label': 'good'}  # OK
        >>> b: Point2D = {'z': 3, 'label': 'bad'}           # Fails type check
        >>> Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first')
        True

    The type info can be accessed via the Point2D.__annotations__ dict, and
    the Point2D.__required_keys__ and Point2D.__optional_keys__ frozensets.
    TypedDict supports an additional equivalent form::

        Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str})

    By default, all keys must be present in a TypedDict. It is possible
    to override this by specifying totality::

        class Point2D(TypedDict, total=False):
            x: int
            y: int

    This means that a Point2D TypedDict can have any of the keys omitted. A type
    checker is only expected to support a literal False or True as the value of
    the total argument. True is the default, and makes all items defined in the
    class body be required.

    The Required and NotRequired special forms can also be used to mark
    individual keys as being required or not required::

        class Point2D(TypedDict):
            x: int               # the "x" key must always be present (Required is the default)
            y: NotRequired[int]  # the "y" key can be omitted

    See PEP 655 for more details on Required and NotRequired.
typing.Union
Python Library Documentation: _SpecialForm in module typing

Union = typing.Union
    Union type; Union[X, Y] means either X or Y.

    On Python 3.10 and higher, the | operator
    can also be used to denote unions;
    X | Y means the same thing to the type checker as Union[X, Y].

    To define a union, use e.g. Union[int, str]. Details:
    - The arguments must be types and there must be at least one.
    - None as an argument is a special case and is replaced by
      type(None).
    - Unions of unions are flattened, e.g.::

        assert Union[Union[int, str], float] == Union[int, str, float]

    - Unions of a single argument vanish, e.g.::

        assert Union[int] == int  # The constructor actually returns int

    - Redundant arguments are skipped, e.g.::

        assert Union[int, str, int] == Union[int, str]

    - When comparing unions, the argument order is ignored, e.g.::

        assert Union[int, str] == Union[str, int]

    - You cannot subclass or instantiate a union.
    - You can use Optional[X] as a shorthand for Union[X, None].
typing.Unpack
Python Library Documentation: _SpecialForm in module typing

Unpack = typing.Unpack
    Type unpack operator.

    The type unpack operator takes the child types from some container type,
    such as `tuple[int, str]` or a `TypeVarTuple`, and 'pulls them out'.

    For example::

        # For some generic class `Foo`:
        Foo[Unpack[tuple[int, str]]]  # Equivalent to Foo[int, str]

        Ts = TypeVarTuple('Ts')
        # Specifies that `Bar` is generic in an arbitrary number of types.
        # (Think of `Ts` as a tuple of an arbitrary number of individual
        #  `TypeVar`s, which the `Unpack` is 'pulling out' directly into the
        #  `Generic[]`.)
        class Bar(Generic[Unpack[Ts]]): ...
        Bar[int]  # Valid
        Bar[int, str]  # Also valid

    From Python 3.11, this can also be done using the `*` operator::

        Foo[*tuple[int, str]]
        class Bar(Generic[*Ts]): ...

    And from Python 3.12, it can be done using built-in syntax for generics::

        Foo[*tuple[int, str]]
        class Bar[*Ts]: ...

    The operator can also be used along with a `TypedDict` to annotate
    `**kwargs` in a function signature::

        class Movie(TypedDict):
            name: str
            year: int

        # This function expects two keyword arguments - *name* of type `str` and
        # *year* of type `int`.
        def foo(**kwargs: Unpack[Movie]): ...

    Note that there is only some runtime checking of this operator. Not
    everything the runtime allows may be accepted by static type checkers.

    For more information, see PEPs 646 and 692.
typing.VT
Python Library Documentation: TypeVar in module typing object

VT = class TypeVar(builtins.object)
 |  Type variable.
 |
 |  The preferred way to construct a type variable is via the dedicated
 |  syntax for generic functions, classes, and type aliases::
 |
 |      class Sequence[T]:  # T is a TypeVar
 |          ...
 |
 |  This syntax can also be used to create bound and constrained type
 |  variables::
 |
 |      # S is a TypeVar bound to str
 |      class StrSequence[S: str]:
 |          ...
 |
 |      # A is a TypeVar constrained to str or bytes
 |      class StrOrBytesSequence[A: (str, bytes)]:
 |          ...
 |
 |  However, if desired, reusable type variables can also be constructed
 |  manually, like so::
 |
 |     T = TypeVar('T')  # Can be anything
 |     S = TypeVar('S', bound=str)  # Can be any subtype of str
 |     A = TypeVar('A', str, bytes)  # Must be exactly str or bytes
 |
 |  Type variables exist primarily for the benefit of static type
 |  checkers.  They serve as the parameters for generic types as well
 |  as for generic function and type alias definitions.
 |
 |  The variance of type variables is inferred by type checkers when they
 |  are created through the type parameter syntax and when
 |  ``infer_variance=True`` is passed. Manually created type variables may
 |  be explicitly marked covariant or contravariant by passing
 |  ``covariant=True`` or ``contravariant=True``. By default, manually
 |  created type variables are invariant. See PEP 484 and PEP 695 for more
 |  details.
 |
 |  Methods defined here:
 |
 |  __mro_entries__(...)
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __bound__
 |
 |  __constraints__
 |
 |  __contravariant__
 |
 |  __covariant__
 |
 |  __infer_variance__
typing.VT_co
Python Library Documentation: TypeVar in module typing object

VT_co = class TypeVar(builtins.object)
 |  Type variable.
 |
 |  The preferred way to construct a type variable is via the dedicated
 |  syntax for generic functions, classes, and type aliases::
 |
 |      class Sequence[T]:  # T is a TypeVar
 |          ...
 |
 |  This syntax can also be used to create bound and constrained type
 |  variables::
 |
 |      # S is a TypeVar bound to str
 |      class StrSequence[S: str]:
 |          ...
 |
 |      # A is a TypeVar constrained to str or bytes
 |      class StrOrBytesSequence[A: (str, bytes)]:
 |          ...
 |
 |  However, if desired, reusable type variables can also be constructed
 |  manually, like so::
 |
 |     T = TypeVar('T')  # Can be anything
 |     S = TypeVar('S', bound=str)  # Can be any subtype of str
 |     A = TypeVar('A', str, bytes)  # Must be exactly str or bytes
 |
 |  Type variables exist primarily for the benefit of static type
 |  checkers.  They serve as the parameters for generic types as well
 |  as for generic function and type alias definitions.
 |
 |  The variance of type variables is inferred by type checkers when they
 |  are created through the type parameter syntax and when
 |  ``infer_variance=True`` is passed. Manually created type variables may
 |  be explicitly marked covariant or contravariant by passing
 |  ``covariant=True`` or ``contravariant=True``. By default, manually
 |  created type variables are invariant. See PEP 484 and PEP 695 for more
 |  details.
 |
 |  Methods defined here:
 |
 |  __mro_entries__(...)
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __bound__
 |
 |  __constraints__
 |
 |  __contravariant__
 |
 |  __covariant__
 |
 |  __infer_variance__
typing.V_co
Python Library Documentation: TypeVar in module typing object

V_co = class TypeVar(builtins.object)
 |  Type variable.
 |
 |  The preferred way to construct a type variable is via the dedicated
 |  syntax for generic functions, classes, and type aliases::
 |
 |      class Sequence[T]:  # T is a TypeVar
 |          ...
 |
 |  This syntax can also be used to create bound and constrained type
 |  variables::
 |
 |      # S is a TypeVar bound to str
 |      class StrSequence[S: str]:
 |          ...
 |
 |      # A is a TypeVar constrained to str or bytes
 |      class StrOrBytesSequence[A: (str, bytes)]:
 |          ...
 |
 |  However, if desired, reusable type variables can also be constructed
 |  manually, like so::
 |
 |     T = TypeVar('T')  # Can be anything
 |     S = TypeVar('S', bound=str)  # Can be any subtype of str
 |     A = TypeVar('A', str, bytes)  # Must be exactly str or bytes
 |
 |  Type variables exist primarily for the benefit of static type
 |  checkers.  They serve as the parameters for generic types as well
 |  as for generic function and type alias definitions.
 |
 |  The variance of type variables is inferred by type checkers when they
 |  are created through the type parameter syntax and when
 |  ``infer_variance=True`` is passed. Manually created type variables may
 |  be explicitly marked covariant or contravariant by passing
 |  ``covariant=True`` or ``contravariant=True``. By default, manually
 |  created type variables are invariant. See PEP 484 and PEP 695 for more
 |  details.
 |
 |  Methods defined here:
 |
 |  __mro_entries__(...)
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(self, /)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  __typing_subst__(self, /, arg)
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __bound__
 |
 |  __constraints__
 |
 |  __contravariant__
 |
 |  __covariant__
 |
 |  __infer_variance__
typing.ValuesView
Python Library Documentation: _SpecialGenericAlias in module typing

ValuesView = typing.ValuesView
    A generic version of collections.abc.ValuesView.
typing.WrapperDescriptorType
Python Library Documentation: class wrapper_descriptor in module builtins

class wrapper_descriptor(object)
 |  Methods defined here:
 |
 |  __call__(self, /, *args, **kwargs)
 |      Call self as a function.
 |
 |  __get__(self, instance, owner=None, /)
 |      Return an attribute of instance, which is of type owner.
 |
 |  __reduce__(...)
 |      Helper for pickle.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __objclass__
 |
 |  __text_signature__
typing.abstractmethod
Python Library Documentation: function abstractmethod in module abc

abstractmethod(funcobj)
    A decorator indicating abstract methods.

    Requires that the metaclass is ABCMeta or derived from it.  A
    class that has a metaclass derived from ABCMeta cannot be
    instantiated unless all of its abstract methods are overridden.
    The abstract methods can be called using any of the normal
    'super' call mechanisms.  abstractmethod() may be used to declare
    abstract methods for properties and descriptors.

    Usage:

        class C(metaclass=ABCMeta):
            @abstractmethod
            def my_abstract_method(self, arg1, arg2, argN):
                ...
typing.assert_never
Python Library Documentation: function assert_never in module typing

assert_never(arg: Never, /) -> Never
    Statically assert that a line of code is unreachable.

    Example::

        def int_or_str(arg: int | str) -> None:
            match arg:
                case int():
                    print("It's an int")
                case str():
                    print("It's a str")
                case _:
                    assert_never(arg)

    If a type checker finds that a call to assert_never() is
    reachable, it will emit an error.

    At runtime, this throws an exception when called.
typing.assert_type
Python Library Documentation: function assert_type in module typing

assert_type(val, typ, /)
    Ask a static type checker to confirm that the value is of the given type.

    At runtime this does nothing: it returns the first argument unchanged with no
    checks or side effects, no matter the actual type of the argument.

    When a static type checker encounters a call to assert_type(), it
    emits an error if the value is not of the specified type::

        def greet(name: str) -> None:
            assert_type(name, str)  # OK
            assert_type(name, int)  # type checker error
typing.cast
Python Library Documentation: function cast in module typing

cast(typ, val)
    Cast a value to a type.

    This returns the value unchanged.  To the type checker this
    signals that the return value has the designated type, but at
    runtime we intentionally don't check anything (we want this
    to be as fast as possible).
typing.clear_overloads
Python Library Documentation: function clear_overloads in module typing

clear_overloads()
    Clear all overloads in the registry.
typing.collections
Python Library Documentation: package collections

NAME
    collections

MODULE REFERENCE
    https://docs.python.org/3.12/library/collections.html

    The following documentation is automatically generated from the Python
    source files.  It may be incomplete, incorrect or include features that
    are considered implementation detail and may vary between Python
    implementations.  When in doubt, consult the module reference at the
    location listed above.

DESCRIPTION
    This module implements specialized container datatypes providing
    alternatives to Python's general purpose built-in containers, dict,
    list, set, and tuple.

    * namedtuple   factory function for creating tuple subclasses with named fields
    * deque        list-like container with fast appends and pops on either end
    * ChainMap     dict-like class for creating a single view of multiple mappings
    * Counter      dict subclass for counting hashable objects
    * OrderedDict  dict subclass that remembers the order entries were added
    * defaultdict  dict subclass that calls a factory function to supply missing values
    * UserDict     wrapper around dictionary objects for easier dict subclassing
    * UserList     wrapper around list objects for easier list subclassing
    * UserString   wrapper around string objects for easier string subclassing

PACKAGE CONTENTS
    abc

SUBMODULES
    _collections_abc

CLASSES
    builtins.dict(builtins.object)
        Counter
        OrderedDict
        defaultdict
    builtins.object
        deque
    collections.abc.MutableMapping(collections.abc.Mapping)
        ChainMap
        UserDict
    collections.abc.MutableSequence(collections.abc.Sequence)
        UserList
    collections.abc.Sequence(collections.abc.Reversible, collections.abc.Collection)
        UserString

    class ChainMap(collections.abc.MutableMapping)
     |  ChainMap(*maps)
     |
     |  A ChainMap groups multiple dicts (or other mappings) together
     |  to create a single, updateable view.
     |
     |  The underlying mappings are stored in a list.  That list is public and can
     |  be accessed or updated using the *maps* attribute.  There is no other
     |  state.
     |
     |  Lookups search the underlying mappings successively until a key is found.
     |  In contrast, writes, updates, and deletions only operate on the first
     |  mapping.
     |
     |  Method resolution order:
     |      ChainMap
     |      collections.abc.MutableMapping
     |      collections.abc.Mapping
     |      collections.abc.Collection
     |      collections.abc.Sized
     |      collections.abc.Iterable
     |      collections.abc.Container
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __bool__(self)
     |
     |  __contains__(self, key)
     |
     |  __copy__ = copy(self)
     |
     |  __delitem__(self, key)
     |
     |  __getitem__(self, key)
     |
     |  __init__(self, *maps)
     |      Initialize a ChainMap by setting *maps* to the given mappings.
     |      If no mappings are provided, a single empty dictionary is used.
     |
     |  __ior__(self, other)
     |
     |  __iter__(self)
     |
     |  __len__(self)
     |
     |  __missing__(self, key)
     |
     |  __or__(self, other)
     |      Return self|value.
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __ror__(self, other)
     |      Return value|self.
     |
     |  __setitem__(self, key, value)
     |
     |  clear(self)
     |      Clear maps[0], leaving maps[1:] intact.
     |
     |  copy(self)
     |      New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]
     |
     |  get(self, key, default=None)
     |      D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.
     |
     |  new_child(self, m=None, **kwargs)
     |      New ChainMap with a new map followed by all previous maps.
     |      If no map is provided, an empty dict is used.
     |      Keyword arguments update the map or new empty dict.
     |
     |  pop(self, key, *args)
     |      Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].
     |
     |  popitem(self)
     |      Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  fromkeys(iterable, *args)
     |      Create a ChainMap with a single dict created from the iterable.
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties defined here:
     |
     |  parents
     |      New ChainMap from maps[1:].
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from collections.abc.MutableMapping:
     |
     |  setdefault(self, key, default=None)
     |      D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
     |
     |  update(self, other=(), /, **kwds)
     |      D.update([E, ]**F) -> None.  Update D from mapping/iterable E and F.
     |      If E present and has a .keys() method, does:     for k in E: D[k] = E[k]
     |      If E present and lacks .keys() method, does:     for (k, v) in E: D[k] = v
     |      In either case, this is followed by: for k, v in F.items(): D[k] = v
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from collections.abc.Mapping:
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  items(self)
     |      D.items() -> a set-like object providing a view on D's items
     |
     |  keys(self)
     |      D.keys() -> a set-like object providing a view on D's keys
     |
     |  values(self)
     |      D.values() -> an object providing a view on D's values
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from collections.abc.Mapping:
     |
     |  __hash__ = None
     |
     |  __reversed__ = None
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from collections.abc.Collection:
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from collections.abc.Iterable:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).

    class Counter(builtins.dict)
     |  Counter(iterable=None, /, **kwds)
     |
     |  Dict subclass for counting hashable items.  Sometimes called a bag
     |  or multiset.  Elements are stored as dictionary keys and their counts
     |  are stored as dictionary values.
     |
     |  >>> c = Counter('abcdeabcdabcaba')  # count elements from a string
     |
     |  >>> c.most_common(3)                # three most common elements
     |  [('a', 5), ('b', 4), ('c', 3)]
     |  >>> sorted(c)                       # list all unique elements
     |  ['a', 'b', 'c', 'd', 'e']
     |  >>> ''.join(sorted(c.elements()))   # list elements with repetitions
     |  'aaaaabbbbcccdde'
     |  >>> sum(c.values())                 # total of all counts
     |  15
     |
     |  >>> c['a']                          # count of letter 'a'
     |  5
     |  >>> for elem in 'shazam':           # update counts from an iterable
     |  ...     c[elem] += 1                # by adding 1 to each element's count
     |  >>> c['a']                          # now there are seven 'a'
     |  7
     |  >>> del c['b']                      # remove all 'b'
     |  >>> c['b']                          # now there are zero 'b'
     |  0
     |
     |  >>> d = Counter('simsalabim')       # make another counter
     |  >>> c.update(d)                     # add in the second counter
     |  >>> c['a']                          # now there are nine 'a'
     |  9
     |
     |  >>> c.clear()                       # empty the counter
     |  >>> c
     |  Counter()
     |
     |  Note:  If a count is set to zero or reduced to zero, it will remain
     |  in the counter until the entry is deleted or the counter is cleared:
     |
     |  >>> c = Counter('aaabbc')
     |  >>> c['b'] -= 2                     # reduce the count of 'b' by two
     |  >>> c.most_common()                 # 'b' is still in, but its count is zero
     |  [('a', 3), ('c', 1), ('b', 0)]
     |
     |  Method resolution order:
     |      Counter
     |      builtins.dict
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __add__(self, other)
     |      Add counts from two counters.
     |
     |      >>> Counter('abbb') + Counter('bcc')
     |      Counter({'b': 4, 'c': 2, 'a': 1})
     |
     |  __and__(self, other)
     |      Intersection is the minimum of corresponding counts.
     |
     |      >>> Counter('abbb') & Counter('bcc')
     |      Counter({'b': 1})
     |
     |  __delitem__(self, elem)
     |      Like dict.__delitem__() but does not raise KeyError for missing values.
     |
     |  __eq__(self, other)
     |      True if all counts agree. Missing counts are treated as zero.
     |
     |  __ge__(self, other)
     |      True if all counts in self are a superset of those in other.
     |
     |  __gt__(self, other)
     |      True if all counts in self are a proper superset of those in other.
     |
     |  __iadd__(self, other)
     |      Inplace add from another counter, keeping only positive counts.
     |
     |      >>> c = Counter('abbb')
     |      >>> c += Counter('bcc')
     |      >>> c
     |      Counter({'b': 4, 'c': 2, 'a': 1})
     |
     |  __iand__(self, other)
     |      Inplace intersection is the minimum of corresponding counts.
     |
     |      >>> c = Counter('abbb')
     |      >>> c &= Counter('bcc')
     |      >>> c
     |      Counter({'b': 1})
     |
     |  __init__(self, iterable=None, /, **kwds)
     |      Create a new, empty Counter object.  And if given, count elements
     |      from an input iterable.  Or, initialize the count from another mapping
     |      of elements to their counts.
     |
     |      >>> c = Counter()                           # a new, empty counter
     |      >>> c = Counter('gallahad')                 # a new counter from an iterable
     |      >>> c = Counter({'a': 4, 'b': 2})           # a new counter from a mapping
     |      >>> c = Counter(a=4, b=2)                   # a new counter from keyword args
     |
     |  __ior__(self, other)
     |      Inplace union is the maximum of value from either counter.
     |
     |      >>> c = Counter('abbb')
     |      >>> c |= Counter('bcc')
     |      >>> c
     |      Counter({'b': 3, 'c': 2, 'a': 1})
     |
     |  __isub__(self, other)
     |      Inplace subtract counter, but keep only results with positive counts.
     |
     |      >>> c = Counter('abbbc')
     |      >>> c -= Counter('bccd')
     |      >>> c
     |      Counter({'b': 2, 'a': 1})
     |
     |  __le__(self, other)
     |      True if all counts in self are a subset of those in other.
     |
     |  __lt__(self, other)
     |      True if all counts in self are a proper subset of those in other.
     |
     |  __missing__(self, key)
     |      The count of elements not in the Counter is zero.
     |
     |  __ne__(self, other)
     |      True if any counts disagree. Missing counts are treated as zero.
     |
     |  __neg__(self)
     |      Subtracts from an empty counter.  Strips positive and zero counts,
     |      and flips the sign on negative counts.
     |
     |  __or__(self, other)
     |      Union is the maximum of value in either of the input counters.
     |
     |      >>> Counter('abbb') | Counter('bcc')
     |      Counter({'b': 3, 'c': 2, 'a': 1})
     |
     |  __pos__(self)
     |      Adds an empty counter, effectively stripping negative and zero counts
     |
     |  __reduce__(self)
     |      Helper for pickle.
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __sub__(self, other)
     |      Subtract count, but keep only results with positive counts.
     |
     |      >>> Counter('abbbc') - Counter('bccd')
     |      Counter({'b': 2, 'a': 1})
     |
     |  copy(self)
     |      Return a shallow copy.
     |
     |  elements(self)
     |      Iterator over elements repeating each as many times as its count.
     |
     |      >>> c = Counter('ABCABC')
     |      >>> sorted(c.elements())
     |      ['A', 'A', 'B', 'B', 'C', 'C']
     |
     |      Knuth's example for prime factors of 1836:  2**2 * 3**3 * 17**1
     |
     |      >>> import math
     |      >>> prime_factors = Counter({2: 2, 3: 3, 17: 1})
     |      >>> math.prod(prime_factors.elements())
     |      1836
     |
     |      Note, if an element's count has been set to zero or is a negative
     |      number, elements() will ignore it.
     |
     |  most_common(self, n=None)
     |      List the n most common elements and their counts from the most
     |      common to the least.  If n is None, then list all element counts.
     |
     |      >>> Counter('abracadabra').most_common(3)
     |      [('a', 5), ('b', 2), ('r', 2)]
     |
     |  subtract(self, iterable=None, /, **kwds)
     |      Like dict.update() but subtracts counts instead of replacing them.
     |      Counts can be reduced below zero.  Both the inputs and outputs are
     |      allowed to contain zero and negative counts.
     |
     |      Source can be an iterable, a dictionary, or another Counter instance.
     |
     |      >>> c = Counter('which')
     |      >>> c.subtract('witch')             # subtract elements from another iterable
     |      >>> c.subtract(Counter('watch'))    # subtract elements from another counter
     |      >>> c['h']                          # 2 in which, minus 1 in witch, minus 1 in watch
     |      0
     |      >>> c['w']                          # 1 in which, minus 1 in witch, minus 1 in watch
     |      -1
     |
     |  total(self)
     |      Sum of the counts
     |
     |  update(self, iterable=None, /, **kwds)
     |      Like dict.update() but add counts instead of replacing them.
     |
     |      Source can be an iterable, a dictionary, or another Counter instance.
     |
     |      >>> c = Counter('which')
     |      >>> c.update('witch')           # add elements from another iterable
     |      >>> d = Counter('watch')
     |      >>> c.update(d)                 # add elements from another counter
     |      >>> c['h']                      # four 'h' in which, witch, and watch
     |      4
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  fromkeys(iterable, v=None)
     |      Create a new dictionary with keys from iterable and values set to value.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __hash__ = None
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.dict:
     |
     |  __contains__(self, key, /)
     |      True if the dictionary has the specified key, else False.
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __iter__(self, /)
     |      Implement iter(self).
     |
     |  __len__(self, /)
     |      Return len(self).
     |
     |  __reversed__(self, /)
     |      Return a reverse iterator over the dict keys.
     |
     |  __ror__(self, value, /)
     |      Return value|self.
     |
     |  __setitem__(self, key, value, /)
     |      Set self[key] to value.
     |
     |  __sizeof__(...)
     |      D.__sizeof__() -> size of D in memory, in bytes
     |
     |  clear(...)
     |      D.clear() -> None.  Remove all items from D.
     |
     |  get(self, key, default=None, /)
     |      Return the value for key if key is in the dictionary, else default.
     |
     |  items(...)
     |      D.items() -> a set-like object providing a view on D's items
     |
     |  keys(...)
     |      D.keys() -> a set-like object providing a view on D's keys
     |
     |  pop(...)
     |      D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
     |
     |      If the key is not found, return the default if given; otherwise,
     |      raise a KeyError.
     |
     |  popitem(self, /)
     |      Remove and return a (key, value) pair as a 2-tuple.
     |
     |      Pairs are returned in LIFO (last-in, first-out) order.
     |      Raises KeyError if the dict is empty.
     |
     |  setdefault(self, key, default=None, /)
     |      Insert key with a value of default if key is not in the dictionary.
     |
     |      Return the value for key if key is in the dictionary, else default.
     |
     |  values(...)
     |      D.values() -> an object providing a view on D's values
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from builtins.dict:
     |
     |  __class_getitem__(...)
     |      See PEP 585
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.dict:
     |
     |  __new__(*args, **kwargs) class method of builtins.dict
     |      Create and return a new object.  See help(type) for accurate signature.

    class OrderedDict(builtins.dict)
     |  Dictionary that remembers insertion order
     |
     |  Method resolution order:
     |      OrderedDict
     |      builtins.dict
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __delitem__(self, key, /)
     |      Delete self[key].
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __ior__(self, value, /)
     |      Return self|=value.
     |
     |  __iter__(self, /)
     |      Implement iter(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __or__(self, value, /)
     |      Return self|value.
     |
     |  __reduce__(...)
     |      Return state information for pickling
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __reversed__(...)
     |      od.__reversed__() <==> reversed(od)
     |
     |  __ror__(self, value, /)
     |      Return value|self.
     |
     |  __setitem__(self, key, value, /)
     |      Set self[key] to value.
     |
     |  __sizeof__(...)
     |      D.__sizeof__() -> size of D in memory, in bytes
     |
     |  clear(...)
     |      od.clear() -> None.  Remove all items from od.
     |
     |  copy(...)
     |      od.copy() -> a shallow copy of od
     |
     |  items(...)
     |      D.items() -> a set-like object providing a view on D's items
     |
     |  keys(...)
     |      D.keys() -> a set-like object providing a view on D's keys
     |
     |  move_to_end(self, /, key, last=True)
     |      Move an existing element to the end (or beginning if last is false).
     |
     |      Raise KeyError if the element does not exist.
     |
     |  pop(...)
     |      od.pop(key[,default]) -> v, remove specified key and return the corresponding value.
     |
     |      If the key is not found, return the default if given; otherwise,
     |      raise a KeyError.
     |
     |  popitem(self, /, last=True)
     |      Remove and return a (key, value) pair from the dictionary.
     |
     |      Pairs are returned in LIFO order if last is true or FIFO order if false.
     |
     |  setdefault(self, /, key, default=None)
     |      Insert key with a value of default if key is not in the dictionary.
     |
     |      Return the value for key if key is in the dictionary, else default.
     |
     |  update(...)
     |      D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
     |      If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
     |      If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
     |      In either case, this is followed by: for k in F:  D[k] = F[k]
     |
     |  values(...)
     |      D.values() -> an object providing a view on D's values
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  fromkeys(iterable, value=None)
     |      Create a new ordered dictionary with keys from iterable and values set to value.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __hash__ = None
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.dict:
     |
     |  __contains__(self, key, /)
     |      True if the dictionary has the specified key, else False.
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __len__(self, /)
     |      Return len(self).
     |
     |  get(self, key, default=None, /)
     |      Return the value for key if key is in the dictionary, else default.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from builtins.dict:
     |
     |  __class_getitem__(...)
     |      See PEP 585
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.dict:
     |
     |  __new__(*args, **kwargs) class method of builtins.dict
     |      Create and return a new object.  See help(type) for accurate signature.

    class UserDict(collections.abc.MutableMapping)
     |  UserDict(dict=None, /, **kwargs)
     |
     |  Method resolution order:
     |      UserDict
     |      collections.abc.MutableMapping
     |      collections.abc.Mapping
     |      collections.abc.Collection
     |      collections.abc.Sized
     |      collections.abc.Iterable
     |      collections.abc.Container
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __contains__(self, key)
     |      # Modify __contains__ and get() to work like dict
     |      # does when __missing__ is present.
     |
     |  __copy__(self)
     |
     |  __delitem__(self, key)
     |
     |  __getitem__(self, key)
     |
     |  __init__(self, dict=None, /, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __ior__(self, other)
     |
     |  __iter__(self)
     |
     |  __len__(self)
     |
     |  __or__(self, other)
     |      Return self|value.
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __ror__(self, other)
     |      Return value|self.
     |
     |  __setitem__(self, key, item)
     |
     |  copy(self)
     |
     |  get(self, key, default=None)
     |      D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  fromkeys(iterable, value=None)
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from collections.abc.MutableMapping:
     |
     |  clear(self)
     |      D.clear() -> None.  Remove all items from D.
     |
     |  pop(self, key, default=<object object at 0x000001EF453581F0>)
     |      D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
     |      If key is not found, d is returned if given, otherwise KeyError is raised.
     |
     |  popitem(self)
     |      D.popitem() -> (k, v), remove and return some (key, value) pair
     |      as a 2-tuple; but raise KeyError if D is empty.
     |
     |  setdefault(self, key, default=None)
     |      D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
     |
     |  update(self, other=(), /, **kwds)
     |      D.update([E, ]**F) -> None.  Update D from mapping/iterable E and F.
     |      If E present and has a .keys() method, does:     for k in E: D[k] = E[k]
     |      If E present and lacks .keys() method, does:     for (k, v) in E: D[k] = v
     |      In either case, this is followed by: for k, v in F.items(): D[k] = v
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from collections.abc.Mapping:
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  items(self)
     |      D.items() -> a set-like object providing a view on D's items
     |
     |  keys(self)
     |      D.keys() -> a set-like object providing a view on D's keys
     |
     |  values(self)
     |      D.values() -> an object providing a view on D's values
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from collections.abc.Mapping:
     |
     |  __hash__ = None
     |
     |  __reversed__ = None
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from collections.abc.Collection:
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from collections.abc.Iterable:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).

    class UserList(collections.abc.MutableSequence)
     |  UserList(initlist=None)
     |
     |  A more or less complete user-defined wrapper around list objects.
     |
     |  Method resolution order:
     |      UserList
     |      collections.abc.MutableSequence
     |      collections.abc.Sequence
     |      collections.abc.Reversible
     |      collections.abc.Collection
     |      collections.abc.Sized
     |      collections.abc.Iterable
     |      collections.abc.Container
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __add__(self, other)
     |
     |  __contains__(self, item)
     |
     |  __copy__(self)
     |
     |  __delitem__(self, i)
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __ge__(self, other)
     |      Return self>=value.
     |
     |  __getitem__(self, i)
     |
     |  __gt__(self, other)
     |      Return self>value.
     |
     |  __iadd__(self, other)
     |
     |  __imul__(self, n)
     |
     |  __init__(self, initlist=None)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __le__(self, other)
     |      Return self<=value.
     |
     |  __len__(self)
     |
     |  __lt__(self, other)
     |      Return self<value.
     |
     |  __mul__(self, n)
     |
     |  __radd__(self, other)
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __rmul__ = __mul__(self, n)
     |
     |  __setitem__(self, i, item)
     |
     |  append(self, item)
     |      S.append(value) -- append value to the end of the sequence
     |
     |  clear(self)
     |      S.clear() -> None -- remove all items from S
     |
     |  copy(self)
     |
     |  count(self, item)
     |      S.count(value) -> integer -- return number of occurrences of value
     |
     |  extend(self, other)
     |      S.extend(iterable) -- extend sequence by appending elements from the iterable
     |
     |  index(self, item, *args)
     |      S.index(value, [start, [stop]]) -> integer -- return first index of value.
     |      Raises ValueError if the value is not present.
     |
     |      Supporting start and stop arguments is optional, but
     |      recommended.
     |
     |  insert(self, i, item)
     |      S.insert(index, value) -- insert value before index
     |
     |  pop(self, i=-1)
     |      S.pop([index]) -> item -- remove and return item at index (default last).
     |      Raise IndexError if list is empty or index is out of range.
     |
     |  remove(self, item)
     |      S.remove(value) -- remove first occurrence of value.
     |      Raise ValueError if the value is not present.
     |
     |  reverse(self)
     |      S.reverse() -- reverse *IN PLACE*
     |
     |  sort(self, /, *args, **kwds)
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  __hash__ = None
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from collections.abc.Sequence:
     |
     |  __iter__(self)
     |
     |  __reversed__(self)
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from collections.abc.Reversible:
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from collections.abc.Iterable:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).

    class UserString(collections.abc.Sequence)
     |  UserString(seq)
     |
     |  Method resolution order:
     |      UserString
     |      collections.abc.Sequence
     |      collections.abc.Reversible
     |      collections.abc.Collection
     |      collections.abc.Sized
     |      collections.abc.Iterable
     |      collections.abc.Container
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __add__(self, other)
     |
     |  __complex__(self)
     |
     |  __contains__(self, char)
     |
     |  __eq__(self, string)
     |      Return self==value.
     |
     |  __float__(self)
     |
     |  __ge__(self, string)
     |      Return self>=value.
     |
     |  __getitem__(self, index)
     |
     |  __getnewargs__(self)
     |
     |  __gt__(self, string)
     |      Return self>value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(self, seq)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __int__(self)
     |
     |  __le__(self, string)
     |      Return self<=value.
     |
     |  __len__(self)
     |
     |  __lt__(self, string)
     |      Return self<value.
     |
     |  __mod__(self, args)
     |
     |  __mul__(self, n)
     |
     |  __radd__(self, other)
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __rmod__(self, template)
     |
     |  __rmul__ = __mul__(self, n)
     |
     |  __str__(self)
     |      Return str(self).
     |
     |  capitalize(self)
     |      # the following methods are defined in alphabetical order:
     |
     |  casefold(self)
     |
     |  center(self, width, *args)
     |
     |  count(self, sub, start=0, end=9223372036854775807)
     |      S.count(value) -> integer -- return number of occurrences of value
     |
     |  encode(self, encoding='utf-8', errors='strict')
     |
     |  endswith(self, suffix, start=0, end=9223372036854775807)
     |
     |  expandtabs(self, tabsize=8)
     |
     |  find(self, sub, start=0, end=9223372036854775807)
     |
     |  format(self, /, *args, **kwds)
     |
     |  format_map(self, mapping)
     |
     |  index(self, sub, start=0, end=9223372036854775807)
     |      S.index(value, [start, [stop]]) -> integer -- return first index of value.
     |      Raises ValueError if the value is not present.
     |
     |      Supporting start and stop arguments is optional, but
     |      recommended.
     |
     |  isalnum(self)
     |
     |  isalpha(self)
     |
     |  isascii(self)
     |
     |  isdecimal(self)
     |
     |  isdigit(self)
     |
     |  isidentifier(self)
     |
     |  islower(self)
     |
     |  isnumeric(self)
     |
     |  isprintable(self)
     |
     |  isspace(self)
     |
     |  istitle(self)
     |
     |  isupper(self)
     |
     |  join(self, seq)
     |
     |  ljust(self, width, *args)
     |
     |  lower(self)
     |
     |  lstrip(self, chars=None)
     |
     |  partition(self, sep)
     |
     |  removeprefix(self, prefix, /)
     |
     |  removesuffix(self, suffix, /)
     |
     |  replace(self, old, new, maxsplit=-1)
     |
     |  rfind(self, sub, start=0, end=9223372036854775807)
     |
     |  rindex(self, sub, start=0, end=9223372036854775807)
     |
     |  rjust(self, width, *args)
     |
     |  rpartition(self, sep)
     |
     |  rsplit(self, sep=None, maxsplit=-1)
     |
     |  rstrip(self, chars=None)
     |
     |  split(self, sep=None, maxsplit=-1)
     |
     |  splitlines(self, keepends=False)
     |
     |  startswith(self, prefix, start=0, end=9223372036854775807)
     |
     |  strip(self, chars=None)
     |
     |  swapcase(self)
     |
     |  title(self)
     |
     |  translate(self, *args)
     |
     |  upper(self)
     |
     |  zfill(self, width)
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  maketrans(...)
     |      Return a translation table usable for str.translate().
     |
     |      If there is only one argument, it must be a dictionary mapping Unicode
     |      ordinals (integers) or characters to Unicode ordinals, strings or None.
     |      Character keys will be then converted to ordinals.
     |      If there are two arguments, they must be strings of equal length, and
     |      in the resulting dictionary, each character in x will be mapped to the
     |      character at the same position in y. If there is a third argument, it
     |      must be a string, whose characters will be mapped to None in the result.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from collections.abc.Sequence:
     |
     |  __iter__(self)
     |
     |  __reversed__(self)
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from collections.abc.Reversible:
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from collections.abc.Iterable:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).

    class defaultdict(builtins.dict)
     |  defaultdict(default_factory=None, /, [...]) --> dict with default factory
     |
     |  The default factory is called without arguments to produce
     |  a new value when a key is not present, in __getitem__ only.
     |  A defaultdict compares equal to a dict with the same items.
     |  All remaining arguments are treated the same as if they were
     |  passed to the dict constructor, including keyword arguments.
     |
     |  Method resolution order:
     |      defaultdict
     |      builtins.dict
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __copy__(...)
     |      D.copy() -> a shallow copy of D.
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __missing__(...)
     |      __missing__(key) # Called by __getitem__ for missing key; pseudo-code:
     |      if self.default_factory is None: raise KeyError((key,))
     |      self[key] = value = self.default_factory()
     |      return value
     |
     |  __or__(self, value, /)
     |      Return self|value.
     |
     |  __reduce__(...)
     |      Return state information for pickling.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __ror__(self, value, /)
     |      Return value|self.
     |
     |  copy(...)
     |      D.copy() -> a shallow copy of D.
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __class_getitem__(...)
     |      See PEP 585
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  default_factory
     |      Factory for default value called by __missing__().
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.dict:
     |
     |  __contains__(self, key, /)
     |      True if the dictionary has the specified key, else False.
     |
     |  __delitem__(self, key, /)
     |      Delete self[key].
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __ior__(self, value, /)
     |      Return self|=value.
     |
     |  __iter__(self, /)
     |      Implement iter(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __len__(self, /)
     |      Return len(self).
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __reversed__(self, /)
     |      Return a reverse iterator over the dict keys.
     |
     |  __setitem__(self, key, value, /)
     |      Set self[key] to value.
     |
     |  __sizeof__(...)
     |      D.__sizeof__() -> size of D in memory, in bytes
     |
     |  clear(...)
     |      D.clear() -> None.  Remove all items from D.
     |
     |  get(self, key, default=None, /)
     |      Return the value for key if key is in the dictionary, else default.
     |
     |  items(...)
     |      D.items() -> a set-like object providing a view on D's items
     |
     |  keys(...)
     |      D.keys() -> a set-like object providing a view on D's keys
     |
     |  pop(...)
     |      D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
     |
     |      If the key is not found, return the default if given; otherwise,
     |      raise a KeyError.
     |
     |  popitem(self, /)
     |      Remove and return a (key, value) pair as a 2-tuple.
     |
     |      Pairs are returned in LIFO (last-in, first-out) order.
     |      Raises KeyError if the dict is empty.
     |
     |  setdefault(self, key, default=None, /)
     |      Insert key with a value of default if key is not in the dictionary.
     |
     |      Return the value for key if key is in the dictionary, else default.
     |
     |  update(...)
     |      D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
     |      If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
     |      If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
     |      In either case, this is followed by: for k in F:  D[k] = F[k]
     |
     |  values(...)
     |      D.values() -> an object providing a view on D's values
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from builtins.dict:
     |
     |  fromkeys(iterable, value=None, /)
     |      Create a new dictionary with keys from iterable and values set to value.
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.dict:
     |
     |  __new__(*args, **kwargs) class method of builtins.dict
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from builtins.dict:
     |
     |  __hash__ = None

    class deque(builtins.object)
     |  deque([iterable[, maxlen]]) --> deque object
     |
     |  A list-like sequence optimized for data accesses near its endpoints.
     |
     |  Methods defined here:
     |
     |  __add__(self, value, /)
     |      Return self+value.
     |
     |  __contains__(self, key, /)
     |      Return bool(key in self).
     |
     |  __copy__(...)
     |      Return a shallow copy of a deque.
     |
     |  __delitem__(self, key, /)
     |      Delete self[key].
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __iadd__(self, value, /)
     |      Implement self+=value.
     |
     |  __imul__(self, value, /)
     |      Implement self*=value.
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __iter__(self, /)
     |      Implement iter(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __len__(self, /)
     |      Return len(self).
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __mul__(self, value, /)
     |      Return self*value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __reduce__(...)
     |      Return state information for pickling.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __reversed__(...)
     |      D.__reversed__() -- return a reverse iterator over the deque
     |
     |  __rmul__(self, value, /)
     |      Return value*self.
     |
     |  __setitem__(self, key, value, /)
     |      Set self[key] to value.
     |
     |  __sizeof__(...)
     |      D.__sizeof__() -- size of D in memory, in bytes
     |
     |  append(...)
     |      Add an element to the right side of the deque.
     |
     |  appendleft(...)
     |      Add an element to the left side of the deque.
     |
     |  clear(...)
     |      Remove all elements from the deque.
     |
     |  copy(...)
     |      Return a shallow copy of a deque.
     |
     |  count(...)
     |      D.count(value) -- return number of occurrences of value
     |
     |  extend(...)
     |      Extend the right side of the deque with elements from the iterable
     |
     |  extendleft(...)
     |      Extend the left side of the deque with elements from the iterable
     |
     |  index(...)
     |      D.index(value, [start, [stop]]) -- return first index of value.
     |      Raises ValueError if the value is not present.
     |
     |  insert(...)
     |      D.insert(index, object) -- insert object before index
     |
     |  pop(...)
     |      Remove and return the rightmost element.
     |
     |  popleft(...)
     |      Remove and return the leftmost element.
     |
     |  remove(...)
     |      D.remove(value) -- remove first occurrence of value.
     |
     |  reverse(...)
     |      D.reverse() -- reverse *IN PLACE*
     |
     |  rotate(...)
     |      Rotate the deque n steps to the right (default n=1).  If n is negative, rotates left.
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __class_getitem__(...)
     |      See PEP 585
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  maxlen
     |      maximum size of a deque or None if unbounded
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __hash__ = None

FUNCTIONS
    namedtuple(typename, field_names, *, rename=False, defaults=None, module=None)
        Returns a new subclass of tuple with named fields.

        >>> Point = namedtuple('Point', ['x', 'y'])
        >>> Point.__doc__                   # docstring for the new class
        'Point(x, y)'
        >>> p = Point(11, y=22)             # instantiate with positional args or keywords
        >>> p[0] + p[1]                     # indexable like a plain tuple
        33
        >>> x, y = p                        # unpack like a regular tuple
        >>> x, y
        (11, 22)
        >>> p.x + p.y                       # fields also accessible by name
        33
        >>> d = p._asdict()                 # convert to a dictionary
        >>> d['x']
        11
        >>> Point(**d)                      # convert from a dictionary
        Point(x=11, y=22)
        >>> p._replace(x=100)               # _replace() is like str.replace() but targets named fields
        Point(x=100, y=22)

DATA
    __all__ = ['ChainMap', 'Counter', 'OrderedDict', 'UserDict', 'UserList...

FILE
    c:\users\youse\appdata\local\programs\python\python312\lib\collections\__init__.py

typing.contextlib
Python Library Documentation: module contextlib

NAME
    contextlib - Utilities for with-statement contexts.  See PEP 343.

MODULE REFERENCE
    https://docs.python.org/3.12/library/contextlib.html

    The following documentation is automatically generated from the Python
    source files.  It may be incomplete, incorrect or include features that
    are considered implementation detail and may vary between Python
    implementations.  When in doubt, consult the module reference at the
    location listed above.

CLASSES
    abc.ABC(builtins.object)
        AbstractAsyncContextManager
            AsyncExitStack(_BaseExitStack, AbstractAsyncContextManager)
            aclosing
        AbstractContextManager
            ExitStack(_BaseExitStack, AbstractContextManager)
            chdir
            closing
            nullcontext(AbstractContextManager, AbstractAsyncContextManager)
            suppress
    builtins.object
        ContextDecorator
    _BaseExitStack(builtins.object)
        AsyncExitStack(_BaseExitStack, AbstractAsyncContextManager)
        ExitStack(_BaseExitStack, AbstractContextManager)
    _RedirectStream(AbstractContextManager)
        redirect_stderr
        redirect_stdout

    class AbstractAsyncContextManager(abc.ABC)
     |  An abstract base class for asynchronous context managers.
     |
     |  Method resolution order:
     |      AbstractAsyncContextManager
     |      abc.ABC
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  async __aenter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  async __aexit__(self, exc_type, exc_value, traceback)
     |      Raise any exception triggered within the runtime context.
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset({'__aexit__'})

    class AbstractContextManager(abc.ABC)
     |  An abstract base class for context managers.
     |
     |  Method resolution order:
     |      AbstractContextManager
     |      abc.ABC
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __enter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  __exit__(self, exc_type, exc_value, traceback)
     |      Raise any exception triggered within the runtime context.
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset({'__exit__'})

    class AsyncExitStack(_BaseExitStack, AbstractAsyncContextManager)
     |  Async context manager for dynamic management of a stack of exit
     |  callbacks.
     |
     |  For example:
     |      async with AsyncExitStack() as stack:
     |          connections = [await stack.enter_async_context(get_connection())
     |              for i in range(5)]
     |          # All opened connections will automatically be released at the
     |          # end of the async with statement, even if attempts to open a
     |          # connection later in the list raise an exception.
     |
     |  Method resolution order:
     |      AsyncExitStack
     |      _BaseExitStack
     |      AbstractAsyncContextManager
     |      abc.ABC
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  async __aenter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  async __aexit__(self, *exc_details)
     |      Raise any exception triggered within the runtime context.
     |
     |  async aclose(self)
     |      Immediately unwind the context stack.
     |
     |  async enter_async_context(self, cm)
     |      Enters the supplied async context manager.
     |
     |      If successful, also pushes its __aexit__ method as a callback and
     |      returns the result of the __aenter__ method.
     |
     |  push_async_callback(self, callback, /, *args, **kwds)
     |      Registers an arbitrary coroutine function and arguments.
     |
     |      Cannot suppress exceptions.
     |
     |  push_async_exit(self, exit)
     |      Registers a coroutine function with the standard __aexit__ method
     |      signature.
     |
     |      Can suppress exceptions the same way __aexit__ method can.
     |      Also accepts any object with an __aexit__ method (registering a call
     |      to the method instead of the object itself).
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from _BaseExitStack:
     |
     |  __init__(self)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  callback(self, callback, /, *args, **kwds)
     |      Registers an arbitrary callback and arguments.
     |
     |      Cannot suppress exceptions.
     |
     |  enter_context(self, cm)
     |      Enters the supplied context manager.
     |
     |      If successful, also pushes its __exit__ method as a callback and
     |      returns the result of the __enter__ method.
     |
     |  pop_all(self)
     |      Preserve the context stack by transferring it to a new instance.
     |
     |  push(self, exit)
     |      Registers a callback with the standard __exit__ method signature.
     |
     |      Can suppress exceptions the same way __exit__ method can.
     |      Also accepts any object with an __exit__ method (registering a call
     |      to the method instead of the object itself).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from _BaseExitStack:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from AbstractAsyncContextManager:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).

    class ContextDecorator(builtins.object)
     |  A base class or mixin that enables context managers to work as decorators.
     |
     |  Methods defined here:
     |
     |  __call__(self, func)
     |      Call self as a function.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class ExitStack(_BaseExitStack, AbstractContextManager)
     |  Context manager for dynamic management of a stack of exit callbacks.
     |
     |  For example:
     |      with ExitStack() as stack:
     |          files = [stack.enter_context(open(fname)) for fname in filenames]
     |          # All opened files will automatically be closed at the end of
     |          # the with statement, even if attempts to open files later
     |          # in the list raise an exception.
     |
     |  Method resolution order:
     |      ExitStack
     |      _BaseExitStack
     |      AbstractContextManager
     |      abc.ABC
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __enter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  __exit__(self, *exc_details)
     |      Raise any exception triggered within the runtime context.
     |
     |  close(self)
     |      Immediately unwind the context stack.
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from _BaseExitStack:
     |
     |  __init__(self)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  callback(self, callback, /, *args, **kwds)
     |      Registers an arbitrary callback and arguments.
     |
     |      Cannot suppress exceptions.
     |
     |  enter_context(self, cm)
     |      Enters the supplied context manager.
     |
     |      If successful, also pushes its __exit__ method as a callback and
     |      returns the result of the __enter__ method.
     |
     |  pop_all(self)
     |      Preserve the context stack by transferring it to a new instance.
     |
     |  push(self, exit)
     |      Registers a callback with the standard __exit__ method signature.
     |
     |      Can suppress exceptions the same way __exit__ method can.
     |      Also accepts any object with an __exit__ method (registering a call
     |      to the method instead of the object itself).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from _BaseExitStack:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from AbstractContextManager:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).

    class aclosing(AbstractAsyncContextManager)
     |  aclosing(thing)
     |
     |  Async context manager for safely finalizing an asynchronously cleaned-up
     |  resource such as an async generator, calling its ``aclose()`` method.
     |
     |  Code like this:
     |
     |      async with aclosing(<module>.fetch(<arguments>)) as agen:
     |          <block>
     |
     |  is equivalent to this:
     |
     |      agen = <module>.fetch(<arguments>)
     |      try:
     |          <block>
     |      finally:
     |          await agen.aclose()
     |
     |  Method resolution order:
     |      aclosing
     |      AbstractAsyncContextManager
     |      abc.ABC
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  async __aenter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  async __aexit__(self, *exc_info)
     |      Raise any exception triggered within the runtime context.
     |
     |  __init__(self, thing)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from AbstractAsyncContextManager:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from AbstractAsyncContextManager:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class chdir(AbstractContextManager)
     |  chdir(path)
     |
     |  Non thread-safe context manager to change the current working directory.
     |
     |  Method resolution order:
     |      chdir
     |      AbstractContextManager
     |      abc.ABC
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __enter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  __exit__(self, *excinfo)
     |      Raise any exception triggered within the runtime context.
     |
     |  __init__(self, path)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from AbstractContextManager:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from AbstractContextManager:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class closing(AbstractContextManager)
     |  closing(thing)
     |
     |  Context to automatically close something at the end of a block.
     |
     |  Code like this:
     |
     |      with closing(<module>.open(<arguments>)) as f:
     |          <block>
     |
     |  is equivalent to this:
     |
     |      f = <module>.open(<arguments>)
     |      try:
     |          <block>
     |      finally:
     |          f.close()
     |
     |  Method resolution order:
     |      closing
     |      AbstractContextManager
     |      abc.ABC
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __enter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  __exit__(self, *exc_info)
     |      Raise any exception triggered within the runtime context.
     |
     |  __init__(self, thing)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from AbstractContextManager:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from AbstractContextManager:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class nullcontext(AbstractContextManager, AbstractAsyncContextManager)
     |  nullcontext(enter_result=None)
     |
     |  Context manager that does no additional processing.
     |
     |  Used as a stand-in for a normal context manager, when a particular
     |  block of code is only sometimes used with a normal context manager:
     |
     |  cm = optional_cm if condition else nullcontext()
     |  with cm:
     |      # Perform operation, using optional_cm if condition is True
     |
     |  Method resolution order:
     |      nullcontext
     |      AbstractContextManager
     |      AbstractAsyncContextManager
     |      abc.ABC
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  async __aenter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  async __aexit__(self, *excinfo)
     |      Raise any exception triggered within the runtime context.
     |
     |  __enter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  __exit__(self, *excinfo)
     |      Raise any exception triggered within the runtime context.
     |
     |  __init__(self, enter_result=None)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from AbstractContextManager:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from AbstractContextManager:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class redirect_stderr(_RedirectStream)
     |  redirect_stderr(new_target)
     |
     |  Context manager for temporarily redirecting stderr to another file.
     |
     |  Method resolution order:
     |      redirect_stderr
     |      _RedirectStream
     |      AbstractContextManager
     |      abc.ABC
     |      builtins.object
     |
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from _RedirectStream:
     |
     |  __enter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  __exit__(self, exctype, excinst, exctb)
     |      Raise any exception triggered within the runtime context.
     |
     |  __init__(self, new_target)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from AbstractContextManager:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from AbstractContextManager:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class redirect_stdout(_RedirectStream)
     |  redirect_stdout(new_target)
     |
     |  Context manager for temporarily redirecting stdout to another file.
     |
     |  # How to send help() to stderr
     |  with redirect_stdout(sys.stderr):
     |      help(dir)
     |
     |  # How to write help() to a file
     |  with open('help.txt', 'w') as f:
     |      with redirect_stdout(f):
     |          help(pow)
     |
     |  Method resolution order:
     |      redirect_stdout
     |      _RedirectStream
     |      AbstractContextManager
     |      abc.ABC
     |      builtins.object
     |
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from _RedirectStream:
     |
     |  __enter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  __exit__(self, exctype, excinst, exctb)
     |      Raise any exception triggered within the runtime context.
     |
     |  __init__(self, new_target)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from AbstractContextManager:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from AbstractContextManager:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class suppress(AbstractContextManager)
     |  suppress(*exceptions)
     |
     |  Context manager to suppress specified exceptions
     |
     |  After the exception is suppressed, execution proceeds with the next
     |  statement following the with statement.
     |
     |       with suppress(FileNotFoundError):
     |           os.remove(somefile)
     |       # Execution still resumes here if the file was already removed
     |
     |  Method resolution order:
     |      suppress
     |      AbstractContextManager
     |      abc.ABC
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __enter__(self)
     |      Return `self` upon entering the runtime context.
     |
     |  __exit__(self, exctype, excinst, exctb)
     |      Raise any exception triggered within the runtime context.
     |
     |  __init__(self, *exceptions)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from AbstractContextManager:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  __subclasshook__(C)
     |      Abstract classes can override this to customize issubclass().
     |
     |      This is invoked early on by abc.ABCMeta.__subclasscheck__().
     |      It should return True, False or NotImplemented.  If it returns
     |      NotImplemented, the normal algorithm is used.  Otherwise, it
     |      overrides the normal algorithm (and the outcome is cached).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from AbstractContextManager:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

FUNCTIONS
    asynccontextmanager(func)
        @asynccontextmanager decorator.

        Typical usage:

            @asynccontextmanager
            async def some_async_generator(<arguments>):
                <setup>
                try:
                    yield <value>
                finally:
                    <cleanup>

        This makes this:

            async with some_async_generator(<arguments>) as <variable>:
                <body>

        equivalent to this:

            <setup>
            try:
                <variable> = <value>
                <body>
            finally:
                <cleanup>

    contextmanager(func)
        @contextmanager decorator.

        Typical usage:

            @contextmanager
            def some_generator(<arguments>):
                <setup>
                try:
                    yield <value>
                finally:
                    <cleanup>

        This makes this:

            with some_generator(<arguments>) as <variable>:
                <body>

        equivalent to this:

            <setup>
            try:
                <variable> = <value>
                <body>
            finally:
                <cleanup>

DATA
    __all__ = ['asynccontextmanager', 'contextmanager', 'closing', 'nullco...

FILE
    c:\users\youse\appdata\local\programs\python\python312\lib\contextlib.py

typing.copyreg
Python Library Documentation: module copyreg

NAME
    copyreg - Helper to provide extensibility for pickle.

MODULE REFERENCE
    https://docs.python.org/3.12/library/copyreg.html

    The following documentation is automatically generated from the Python
    source files.  It may be incomplete, incorrect or include features that
    are considered implementation detail and may vary between Python
    implementations.  When in doubt, consult the module reference at the
    location listed above.

DESCRIPTION
    This is only useful to add pickle support for extension types defined in
    C, not for instances of user-defined classes.

FUNCTIONS
    __newobj__(cls, *args)

    __newobj_ex__(cls, args, kwargs)
        Used by pickle protocol 4, instead of __newobj__ to allow classes with
        keyword-only arguments to be pickled correctly.

    add_extension(module, name, code)
        Register an extension code.

    clear_extension_cache()

    constructor(object)

    pickle(ob_type, pickle_function, constructor_ob=None)

    remove_extension(module, name, code)
        Unregister an extension code.  For testing only.

DATA
    __all__ = ['pickle', 'constructor', 'add_extension', 'remove_extension...

FILE
    c:\users\youse\appdata\local\programs\python\python312\lib\copyreg.py

typing.dataclass_transform
Python Library Documentation: function dataclass_transform in module typing

dataclass_transform(*, eq_default: bool = True, order_default: bool = False, kw_only_default: bool = False, frozen_default: bool = False, field_specifiers: tuple[typing.Union[type[typing.Any], typing.Callable[..., typing.Any]], ...] = (), **kwargs: Any) -> <class '_IdentityCallable'>
    Decorator to mark an object as providing dataclass-like behaviour.

    The decorator can be applied to a function, class, or metaclass.

    Example usage with a decorator function::

        @dataclass_transform()
        def create_model[T](cls: type[T]) -> type[T]:
            ...
            return cls

        @create_model
        class CustomerModel:
            id: int
            name: str

    On a base class::

        @dataclass_transform()
        class ModelBase: ...

        class CustomerModel(ModelBase):
            id: int
            name: str

    On a metaclass::

        @dataclass_transform()
        class ModelMeta(type): ...

        class ModelBase(metaclass=ModelMeta): ...

        class CustomerModel(ModelBase):
            id: int
            name: str

    The ``CustomerModel`` classes defined above will
    be treated by type checkers similarly to classes created with
    ``@dataclasses.dataclass``.
    For example, type checkers will assume these classes have
    ``__init__`` methods that accept ``id`` and ``name``.

    The arguments to this decorator can be used to customize this behavior:
    - ``eq_default`` indicates whether the ``eq`` parameter is assumed to be
        ``True`` or ``False`` if it is omitted by the caller.
    - ``order_default`` indicates whether the ``order`` parameter is
        assumed to be True or False if it is omitted by the caller.
    - ``kw_only_default`` indicates whether the ``kw_only`` parameter is
        assumed to be True or False if it is omitted by the caller.
    - ``frozen_default`` indicates whether the ``frozen`` parameter is
        assumed to be True or False if it is omitted by the caller.
    - ``field_specifiers`` specifies a static list of supported classes
        or functions that describe fields, similar to ``dataclasses.field()``.
    - Arbitrary other keyword arguments are accepted in order to allow for
        possible future extensions.

    At runtime, this decorator records its arguments in the
    ``__dataclass_transform__`` attribute on the decorated object.
    It has no other runtime effect.

    See PEP 681 for more details.
typing.defaultdict
Python Library Documentation: class defaultdict in module collections

class defaultdict(builtins.dict)
 |  defaultdict(default_factory=None, /, [...]) --> dict with default factory
 |
 |  The default factory is called without arguments to produce
 |  a new value when a key is not present, in __getitem__ only.
 |  A defaultdict compares equal to a dict with the same items.
 |  All remaining arguments are treated the same as if they were
 |  passed to the dict constructor, including keyword arguments.
 |
 |  Method resolution order:
 |      defaultdict
 |      builtins.dict
 |      builtins.object
 |
 |  Methods defined here:
 |
 |  __copy__(...)
 |      D.copy() -> a shallow copy of D.
 |
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |
 |  __init__(self, /, *args, **kwargs)
 |      Initialize self.  See help(type(self)) for accurate signature.
 |
 |  __missing__(...)
 |      __missing__(key) # Called by __getitem__ for missing key; pseudo-code:
 |      if self.default_factory is None: raise KeyError((key,))
 |      self[key] = value = self.default_factory()
 |      return value
 |
 |  __or__(self, value, /)
 |      Return self|value.
 |
 |  __reduce__(...)
 |      Return state information for pickling.
 |
 |  __repr__(self, /)
 |      Return repr(self).
 |
 |  __ror__(self, value, /)
 |      Return value|self.
 |
 |  copy(...)
 |      D.copy() -> a shallow copy of D.
 |
 |  ----------------------------------------------------------------------
 |  Class methods defined here:
 |
 |  __class_getitem__(...)
 |      See PEP 585
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  default_factory
 |      Factory for default value called by __missing__().
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from builtins.dict:
 |
 |  __contains__(self, key, /)
 |      True if the dictionary has the specified key, else False.
 |
 |  __delitem__(self, key, /)
 |      Delete self[key].
 |
 |  __eq__(self, value, /)
 |      Return self==value.
 |
 |  __ge__(self, value, /)
 |      Return self>=value.
 |
 |  __getitem__(self, key, /)
 |      Return self[key].
 |
 |  __gt__(self, value, /)
 |      Return self>value.
 |
 |  __ior__(self, value, /)
 |      Return self|=value.
 |
 |  __iter__(self, /)
 |      Implement iter(self).
 |
 |  __le__(self, value, /)
 |      Return self<=value.
 |
 |  __len__(self, /)
 |      Return len(self).
 |
 |  __lt__(self, value, /)
 |      Return self<value.
 |
 |  __ne__(self, value, /)
 |      Return self!=value.
 |
 |  __reversed__(self, /)
 |      Return a reverse iterator over the dict keys.
 |
 |  __setitem__(self, key, value, /)
 |      Set self[key] to value.
 |
 |  __sizeof__(...)
 |      D.__sizeof__() -> size of D in memory, in bytes
 |
 |  clear(...)
 |      D.clear() -> None.  Remove all items from D.
 |
 |  get(self, key, default=None, /)
 |      Return the value for key if key is in the dictionary, else default.
 |
 |  items(...)
 |      D.items() -> a set-like object providing a view on D's items
 |
 |  keys(...)
 |      D.keys() -> a set-like object providing a view on D's keys
 |
 |  pop(...)
 |      D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
 |
 |      If the key is not found, return the default if given; otherwise,
 |      raise a KeyError.
 |
 |  popitem(self, /)
 |      Remove and return a (key, value) pair as a 2-tuple.
 |
 |      Pairs are returned in LIFO (last-in, first-out) order.
 |      Raises KeyError if the dict is empty.
 |
 |  setdefault(self, key, default=None, /)
 |      Insert key with a value of default if key is not in the dictionary.
 |
 |      Return the value for key if key is in the dictionary, else default.
 |
 |  update(...)
 |      D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
 |      If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
 |      If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
 |      In either case, this is followed by: for k in F:  D[k] = F[k]
 |
 |  values(...)
 |      D.values() -> an object providing a view on D's values
 |
 |  ----------------------------------------------------------------------
 |  Class methods inherited from builtins.dict:
 |
 |  fromkeys(iterable, value=None, /)
 |      Create a new dictionary with keys from iterable and values set to value.
 |
 |  ----------------------------------------------------------------------
 |  Static methods inherited from builtins.dict:
 |
 |  __new__(*args, **kwargs) class method of builtins.dict
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes inherited from builtins.dict:
 |
 |  __hash__ = None
typing.final
Python Library Documentation: function final in module typing

final(f)
    Decorator to indicate final methods and final classes.

    Use this decorator to indicate to type checkers that the decorated
    method cannot be overridden, and decorated class cannot be subclassed.

    For example::

        class Base:
            @final
            def done(self) -> None:
                ...
        class Sub(Base):
            def done(self) -> None:  # Error reported by type checker
                ...

        @final
        class Leaf:
            ...
        class Other(Leaf):  # Error reported by type checker
            ...

    There is no runtime checking of these properties. The decorator
    attempts to set the ``__final__`` attribute to ``True`` on the decorated
    object to allow runtime introspection.
typing.functools
Python Library Documentation: module functools

NAME
    functools - functools.py - Tools for working with functions and callable objects

MODULE REFERENCE
    https://docs.python.org/3.12/library/functools.html

    The following documentation is automatically generated from the Python
    source files.  It may be incomplete, incorrect or include features that
    are considered implementation detail and may vary between Python
    implementations.  When in doubt, consult the module reference at the
    location listed above.

CLASSES
    builtins.object
        cached_property
        partial
        partialmethod
        singledispatchmethod

    class cached_property(builtins.object)
     |  cached_property(func)
     |
     |  Methods defined here:
     |
     |  __get__(self, instance, owner=None)
     |
     |  __init__(self, func)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __set_name__(self, owner, name)
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class partial(builtins.object)
     |  partial(func, *args, **keywords) - new function with partial application
     |  of the given arguments and keywords.
     |
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __reduce__(...)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |
     |  __setstate__(...)
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __class_getitem__(...)
     |      See PEP 585
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |
     |  __vectorcalloffset__
     |
     |  args
     |      tuple of arguments to future partial calls
     |
     |  func
     |      function object to use in future partial calls
     |
     |  keywords
     |      dictionary of keyword arguments to future partial calls

    class partialmethod(builtins.object)
     |  partialmethod(func, /, *args, **keywords)
     |
     |  Method descriptor with partial application of the given arguments
     |  and keywords.
     |
     |  Supports wrapping existing descriptors and handles non-descriptor
     |  callables as instance methods.
     |
     |  Methods defined here:
     |
     |  __get__(self, obj, cls=None)
     |
     |  __init__(self, func, /, *args, **keywords)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __class_getitem__ = GenericAlias(...)
     |      Represent a PEP 585 generic type
     |
     |      E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties defined here:
     |
     |  __isabstractmethod__
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class singledispatchmethod(builtins.object)
     |  singledispatchmethod(func)
     |
     |  Single-dispatch generic method descriptor.
     |
     |  Supports wrapping existing descriptors and handles non-descriptor
     |  callables as instance methods.
     |
     |  Methods defined here:
     |
     |  __get__(self, obj, cls=None)
     |
     |  __init__(self, func)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  register(self, cls, method=None)
     |      generic_method.register(cls, func) -> func
     |
     |      Registers a new implementation for the given *cls* on a *generic_method*.
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties defined here:
     |
     |  __isabstractmethod__
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

FUNCTIONS
    cache(user_function, /)
        Simple lightweight unbounded cache.  Sometimes called "memoize".

    cmp_to_key(mycmp)
        Convert a cmp= function into a key= function.

        mycmp
          Function that compares two objects.

    lru_cache(maxsize=128, typed=False)
        Least-recently-used cache decorator.

        If *maxsize* is set to None, the LRU features are disabled and the cache
        can grow without bound.

        If *typed* is True, arguments of different types will be cached separately.
        For example, f(3.0) and f(3) will be treated as distinct calls with
        distinct results.

        Arguments to the cached function must be hashable.

        View the cache statistics named tuple (hits, misses, maxsize, currsize)
        with f.cache_info().  Clear the cache and statistics with f.cache_clear().
        Access the underlying function with f.__wrapped__.

        See:  https://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU)

    reduce(...)
        reduce(function, iterable[, initial]) -> value

        Apply a function of two arguments cumulatively to the items of a sequence
        or iterable, from left to right, so as to reduce the iterable to a single
        value.  For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
        ((((1+2)+3)+4)+5).  If initial is present, it is placed before the items
        of the iterable in the calculation, and serves as a default when the
        iterable is empty.

    singledispatch(func)
        Single-dispatch generic function decorator.

        Transforms a function into a generic function, which can have different
        behaviours depending upon the type of its first argument. The decorated
        function acts as the default implementation, and additional
        implementations can be registered using the register() attribute of the
        generic function.

    total_ordering(cls)
        Class decorator that fills in missing ordering methods

    update_wrapper(wrapper, wrapped, assigned=('__module__', '__name__', '__qualname__', '__doc__', '__annotations__', '__type_params__'), updated=('__dict__',))
        Update a wrapper function to look like the wrapped function

        wrapper is the function to be updated
        wrapped is the original function
        assigned is a tuple naming the attributes assigned directly
        from the wrapped function to the wrapper function (defaults to
        functools.WRAPPER_ASSIGNMENTS)
        updated is a tuple naming the attributes of the wrapper that
        are updated with the corresponding attribute from the wrapped
        function (defaults to functools.WRAPPER_UPDATES)

    wraps(wrapped, assigned=('__module__', '__name__', '__qualname__', '__doc__', '__annotations__', '__type_params__'), updated=('__dict__',))
        Decorator factory to apply update_wrapper() to a wrapper function

        Returns a decorator that invokes update_wrapper() with the decorated
        function as the wrapper argument and the arguments to wraps() as the
        remaining arguments. Default arguments are as for update_wrapper().
        This is a convenience function to simplify applying partial() to
        update_wrapper().

DATA
    WRAPPER_ASSIGNMENTS = ('__module__', '__name__', '__qualname__', '__do...
    WRAPPER_UPDATES = ('__dict__',)
    __all__ = ['update_wrapper', 'wraps', 'WRAPPER_ASSIGNMENTS', 'WRAPPER_...

FILE
    c:\users\youse\appdata\local\programs\python\python312\lib\functools.py

typing.get_args
Python Library Documentation: function get_args in module typing

get_args(tp)
    Get type arguments with all substitutions performed.

    For unions, basic simplifications used by Union constructor are performed.

    Examples::

        >>> T = TypeVar('T')
        >>> assert get_args(Dict[str, int]) == (str, int)
        >>> assert get_args(int) == ()
        >>> assert get_args(Union[int, Union[T, int], str][int]) == (int, str)
        >>> assert get_args(Union[int, Tuple[T, int]][str]) == (int, Tuple[str, int])
        >>> assert get_args(Callable[[], T][int]) == ([], int)
typing.get_origin
Python Library Documentation: function get_origin in module typing

get_origin(tp)
    Get the unsubscripted version of a type.

    This supports generic types, Callable, Tuple, Union, Literal, Final, ClassVar,
    Annotated, and others. Return None for unsupported types.

    Examples::

        >>> P = ParamSpec('P')
        >>> assert get_origin(Literal[42]) is Literal
        >>> assert get_origin(int) is None
        >>> assert get_origin(ClassVar[int]) is ClassVar
        >>> assert get_origin(Generic) is Generic
        >>> assert get_origin(Generic[T]) is Generic
        >>> assert get_origin(Union[T, int]) is Union
        >>> assert get_origin(List[Tuple[T, T]][int]) is list
        >>> assert get_origin(P.args) is P
typing.get_overloads
Python Library Documentation: function get_overloads in module typing

get_overloads(func)
    Return all defined overloads for *func* as a sequence.
typing.get_type_hints
Python Library Documentation: function get_type_hints in module typing

get_type_hints(obj, globalns=None, localns=None, include_extras=False)
    Return type hints for an object.

    This is often the same as obj.__annotations__, but it handles
    forward references encoded as string literals and recursively replaces all
    'Annotated[T, ...]' with 'T' (unless 'include_extras=True').

    The argument may be a module, class, method, or function. The annotations
    are returned as a dictionary. For classes, annotations include also
    inherited members.

    TypeError is raised if the argument is not of a type that can contain
    annotations, and an empty dictionary is returned if no annotations are
    present.

    BEWARE -- the behavior of globalns and localns is counterintuitive
    (unless you are familiar with how eval() and exec() work).  The
    search order is locals first, then globals.

    - If no dict arguments are passed, an attempt is made to use the
      globals from obj (or the respective module's globals for classes),
      and these are also used as the locals.  If the object does not appear
      to have globals, an empty dictionary is used.  For classes, the search
      order is globals first then locals.

    - If one dict argument is passed, it is used for both globals and
      locals.

    - If two dict arguments are passed, they specify globals and
      locals, respectively.
typing.io
Python Library Documentation: class typing.io in typing

class typing.io(builtins.object)
 |  Wrapper namespace for IO generic classes.
 |
 |  Data descriptors defined here:
 |
 |  __dict__
 |      dictionary for instance variables
 |
 |  __weakref__
 |      list of weak references to the object
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  BinaryIO = <class 'typing.BinaryIO'>
 |      Typed version of the return of open() in binary mode.
 |
 |
 |  IO = <class 'typing.IO'>
 |      Generic base class for TextIO and BinaryIO.
 |
 |      This is an abstract, generic version of the return of open().
 |
 |      NOTE: This does not distinguish between the different possible
 |      classes (text vs. binary, read vs. write vs. read/write,
 |      append-only, unbuffered).  The TextIO and BinaryIO subclasses
 |      below capture the distinctions between text vs. binary, which is
 |      pervasive in the interface; however we currently do not offer a
 |      way to track the other distinctions in the type system.
 |
 |
 |  TextIO = <class 'typing.TextIO'>
 |      Typed version of the return of open() in text mode.
 |
 |
 |  __all__ = ['IO', 'TextIO', 'BinaryIO']
typing.is_typeddict
Python Library Documentation: function is_typeddict in module typing

is_typeddict(tp)
    Check if an annotation is a TypedDict class.

    For example::

        >>> from typing import TypedDict
        >>> class Film(TypedDict):
        ...     title: str
        ...     year: int
        ...
        >>> is_typeddict(Film)
        True
        >>> is_typeddict(dict)
        False
typing.no_type_check
Python Library Documentation: function no_type_check in module typing

no_type_check(arg)
    Decorator to indicate that annotations are not type hints.

    The argument must be a class or function; if it is a class, it
    applies recursively to all methods and classes defined in that class
    (but not to methods defined in its superclasses or subclasses).

    This mutates the function(s) or class(es) in place.
typing.no_type_check_decorator
Python Library Documentation: function no_type_check_decorator in module typing

no_type_check_decorator(decorator)
    Decorator to give another decorator the @no_type_check effect.

    This wraps the decorator with something that wraps the decorated
    function in @no_type_check.
typing.operator
Python Library Documentation: module operator

NAME
    operator - Operator interface.

MODULE REFERENCE
    https://docs.python.org/3.12/library/operator.html

    The following documentation is automatically generated from the Python
    source files.  It may be incomplete, incorrect or include features that
    are considered implementation detail and may vary between Python
    implementations.  When in doubt, consult the module reference at the
    location listed above.

DESCRIPTION
    This module exports a set of functions implemented in C corresponding
    to the intrinsic operators of Python.  For example, operator.add(x, y)
    is equivalent to the expression x+y.  The function names are those
    used for special methods; variants without leading and trailing
    '__' are also provided for convenience.

CLASSES
    builtins.object
        attrgetter
        itemgetter
        methodcaller

    class attrgetter(builtins.object)
     |  attrgetter(attr, /, *attrs)
     |
     |  Return a callable object that fetches the given attribute(s) from its operand.
     |  After f = attrgetter('name'), the call f(r) returns r.name.
     |  After g = attrgetter('name', 'date'), the call g(r) returns (r.name, r.date).
     |  After h = attrgetter('name.first', 'name.last'), the call h(r) returns
     |  (r.name.first, r.name.last).
     |
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __reduce__(...)
     |      Return state information for pickling
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __vectorcalloffset__

    class itemgetter(builtins.object)
     |  itemgetter(item, /, *items)
     |
     |  Return a callable object that fetches the given item(s) from its operand.
     |  After f = itemgetter(2), the call f(r) returns r[2].
     |  After g = itemgetter(2, 5, 3), the call g(r) returns (r[2], r[5], r[3])
     |
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __reduce__(...)
     |      Return state information for pickling
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __vectorcalloffset__

    class methodcaller(builtins.object)
     |  methodcaller(name, /, *args, **kwargs)
     |
     |  Return a callable object that calls the given method on its operand.
     |  After f = methodcaller('name'), the call f(r) returns r.name().
     |  After g = methodcaller('name', 'date', foo=1), the call g(r) returns
     |  r.name('date', foo=1).
     |
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __reduce__(...)
     |      Return state information for pickling
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.

FUNCTIONS
    __abs__ = abs(a, /)
        Same as abs(a).

    __add__ = add(a, b, /)
        Same as a + b.

    __and__ = and_(a, b, /)
        Same as a & b.

    __call__ = call(obj, /, *args, **kwargs)
        Same as obj(*args, **kwargs).

    __concat__ = concat(a, b, /)
        Same as a + b, for a and b sequences.

    __contains__ = contains(a, b, /)
        Same as b in a (note reversed operands).

    __delitem__ = delitem(a, b, /)
        Same as del a[b].

    __eq__ = eq(a, b, /)
        Same as a == b.

    __floordiv__ = floordiv(a, b, /)
        Same as a // b.

    __ge__ = ge(a, b, /)
        Same as a >= b.

    __getitem__ = getitem(a, b, /)
        Same as a[b].

    __gt__ = gt(a, b, /)
        Same as a > b.

    __iadd__ = iadd(a, b, /)
        Same as a += b.

    __iand__ = iand(a, b, /)
        Same as a &= b.

    __iconcat__ = iconcat(a, b, /)
        Same as a += b, for a and b sequences.

    __ifloordiv__ = ifloordiv(a, b, /)
        Same as a //= b.

    __ilshift__ = ilshift(a, b, /)
        Same as a <<= b.

    __imatmul__ = imatmul(a, b, /)
        Same as a @= b.

    __imod__ = imod(a, b, /)
        Same as a %= b.

    __imul__ = imul(a, b, /)
        Same as a *= b.

    __index__ = index(a, /)
        Same as a.__index__()

    __inv__ = inv(a, /)
        Same as ~a.

    __invert__ = invert(a, /)
        Same as ~a.

    __ior__ = ior(a, b, /)
        Same as a |= b.

    __ipow__ = ipow(a, b, /)
        Same as a **= b.

    __irshift__ = irshift(a, b, /)
        Same as a >>= b.

    __isub__ = isub(a, b, /)
        Same as a -= b.

    __itruediv__ = itruediv(a, b, /)
        Same as a /= b.

    __ixor__ = ixor(a, b, /)
        Same as a ^= b.

    __le__ = le(a, b, /)
        Same as a <= b.

    __lshift__ = lshift(a, b, /)
        Same as a << b.

    __lt__ = lt(a, b, /)
        Same as a < b.

    __matmul__ = matmul(a, b, /)
        Same as a @ b.

    __mod__ = mod(a, b, /)
        Same as a % b.

    __mul__ = mul(a, b, /)
        Same as a * b.

    __ne__ = ne(a, b, /)
        Same as a != b.

    __neg__ = neg(a, /)
        Same as -a.

    __not__ = not_(a, /)
        Same as not a.

    __or__ = or_(a, b, /)
        Same as a | b.

    __pos__ = pos(a, /)
        Same as +a.

    __pow__ = pow(a, b, /)
        Same as a ** b.

    __rshift__ = rshift(a, b, /)
        Same as a >> b.

    __setitem__ = setitem(a, b, c, /)
        Same as a[b] = c.

    __sub__ = sub(a, b, /)
        Same as a - b.

    __truediv__ = truediv(a, b, /)
        Same as a / b.

    __xor__ = xor(a, b, /)
        Same as a ^ b.

    abs(a, /)
        Same as abs(a).

    add(a, b, /)
        Same as a + b.

    and_(a, b, /)
        Same as a & b.

    call(obj, /, *args, **kwargs)
        Same as obj(*args, **kwargs).

    concat(a, b, /)
        Same as a + b, for a and b sequences.

    contains(a, b, /)
        Same as b in a (note reversed operands).

    countOf(a, b, /)
        Return the number of items in a which are, or which equal, b.

    delitem(a, b, /)
        Same as del a[b].

    eq(a, b, /)
        Same as a == b.

    floordiv(a, b, /)
        Same as a // b.

    ge(a, b, /)
        Same as a >= b.

    getitem(a, b, /)
        Same as a[b].

    gt(a, b, /)
        Same as a > b.

    iadd(a, b, /)
        Same as a += b.

    iand(a, b, /)
        Same as a &= b.

    iconcat(a, b, /)
        Same as a += b, for a and b sequences.

    ifloordiv(a, b, /)
        Same as a //= b.

    ilshift(a, b, /)
        Same as a <<= b.

    imatmul(a, b, /)
        Same as a @= b.

    imod(a, b, /)
        Same as a %= b.

    imul(a, b, /)
        Same as a *= b.

    index(a, /)
        Same as a.__index__()

    indexOf(a, b, /)
        Return the first index of b in a.

    inv(a, /)
        Same as ~a.

    invert(a, /)
        Same as ~a.

    ior(a, b, /)
        Same as a |= b.

    ipow(a, b, /)
        Same as a **= b.

    irshift(a, b, /)
        Same as a >>= b.

    is_(a, b, /)
        Same as a is b.

    is_not(a, b, /)
        Same as a is not b.

    isub(a, b, /)
        Same as a -= b.

    itruediv(a, b, /)
        Same as a /= b.

    ixor(a, b, /)
        Same as a ^= b.

    le(a, b, /)
        Same as a <= b.

    length_hint(obj, default=0, /)
        Return an estimate of the number of items in obj.

        This is useful for presizing containers when building from an iterable.

        If the object supports len(), the result will be exact.
        Otherwise, it may over- or under-estimate by an arbitrary amount.
        The result will be an integer >= 0.

    lshift(a, b, /)
        Same as a << b.

    lt(a, b, /)
        Same as a < b.

    matmul(a, b, /)
        Same as a @ b.

    mod(a, b, /)
        Same as a % b.

    mul(a, b, /)
        Same as a * b.

    ne(a, b, /)
        Same as a != b.

    neg(a, /)
        Same as -a.

    not_(a, /)
        Same as not a.

    or_(a, b, /)
        Same as a | b.

    pos(a, /)
        Same as +a.

    pow(a, b, /)
        Same as a ** b.

    rshift(a, b, /)
        Same as a >> b.

    setitem(a, b, c, /)
        Same as a[b] = c.

    sub(a, b, /)
        Same as a - b.

    truediv(a, b, /)
        Same as a / b.

    truth(a, /)
        Return True if a is true, False otherwise.

    xor(a, b, /)
        Same as a ^ b.

DATA
    __all__ = ['abs', 'add', 'and_', 'attrgetter', 'call', 'concat', 'cont...

FILE
    c:\users\youse\appdata\local\programs\python\python312\lib\operator.py

typing.overload
Python Library Documentation: function overload in module typing

overload(func)
    Decorator for overloaded functions/methods.

    In a stub file, place two or more stub definitions for the same
    function in a row, each decorated with @overload.

    For example::

        @overload
        def utf8(value: None) -> None: ...
        @overload
        def utf8(value: bytes) -> bytes: ...
        @overload
        def utf8(value: str) -> bytes: ...

    In a non-stub file (i.e. a regular .py file), do the same but
    follow it with an implementation.  The implementation should *not*
    be decorated with @overload::

        @overload
        def utf8(value: None) -> None: ...
        @overload
        def utf8(value: bytes) -> bytes: ...
        @overload
        def utf8(value: str) -> bytes: ...
        def utf8(value):
            ...  # implementation goes here

    The overloads for a function can be retrieved at runtime using the
    get_overloads() function.
typing.override
Python Library Documentation: function override in module typing

override(method: F, /) -> F
    Indicate that a method is intended to override a method in a base class.

    Usage::

        class Base:
            def method(self) -> None:
                pass

        class Child(Base):
            @override
            def method(self) -> None:
                super().method()

    When this decorator is applied to a method, the type checker will
    validate that it overrides a method or attribute with the same name on a
    base class.  This helps prevent bugs that may occur when a base class is
    changed without an equivalent change to a child class.

    There is no runtime checking of this property. The decorator attempts to
    set the ``__override__`` attribute to ``True`` on the decorated object to
    allow runtime introspection.

    See PEP 698 for details.
typing.re
Python Library Documentation: class typing.re in typing

class typing.re(builtins.object)
 |  Wrapper namespace for re type aliases.
 |
 |  Data descriptors defined here:
 |
 |  __dict__
 |      dictionary for instance variables
 |
 |  __weakref__
 |      list of weak references to the object
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  Match = typing.Match
 |      A generic version of re.Match.
 |
 |
 |  Pattern = typing.Pattern
 |      A generic version of re.Pattern.
 |
 |
 |  __all__ = ['Pattern', 'Match']
typing.reveal_type
Python Library Documentation: function reveal_type in module typing

reveal_type(obj: T, /) -> T
    Ask a static type checker to reveal the inferred type of an expression.

    When a static type checker encounters a call to ``reveal_type()``,
    it will emit the inferred type of the argument::

        x: int = 1
        reveal_type(x)

    Running a static type checker (e.g., mypy) on this example
    will produce output similar to 'Revealed type is "builtins.int"'.

    At runtime, the function prints the runtime type of the
    argument and returns the argument unchanged.
typing.runtime_checkable
Python Library Documentation: function runtime_checkable in module typing

runtime_checkable(cls)
    Mark a protocol class as a runtime protocol.

    Such protocol can be used with isinstance() and issubclass().
    Raise TypeError if applied to a non-protocol class.
    This allows a simple-minded structural check very similar to
    one trick ponies in collections.abc such as Iterable.

    For example::

        @runtime_checkable
        class Closable(Protocol):
            def close(self): ...

        assert isinstance(open('/some/file'), Closable)

    Warning: this will check only the presence of the required methods,
    not their type signatures!
typing.stdlib_re
Python Library Documentation: package re

NAME
    re - Support for regular expressions (RE).

MODULE REFERENCE
    https://docs.python.org/3.12/library/re.html

    The following documentation is automatically generated from the Python
    source files.  It may be incomplete, incorrect or include features that
    are considered implementation detail and may vary between Python
    implementations.  When in doubt, consult the module reference at the
    location listed above.

DESCRIPTION
    This module provides regular expression matching operations similar to
    those found in Perl.  It supports both 8-bit and Unicode strings; both
    the pattern and the strings being processed can contain null bytes and
    characters outside the US ASCII range.

    Regular expressions can contain both special and ordinary characters.
    Most ordinary characters, like "A", "a", or "0", are the simplest
    regular expressions; they simply match themselves.  You can
    concatenate ordinary characters, so last matches the string 'last'.

    The special characters are:
        "."      Matches any character except a newline.
        "^"      Matches the start of the string.
        "$"      Matches the end of the string or just before the newline at
                 the end of the string.
        "*"      Matches 0 or more (greedy) repetitions of the preceding RE.
                 Greedy means that it will match as many repetitions as possible.
        "+"      Matches 1 or more (greedy) repetitions of the preceding RE.
        "?"      Matches 0 or 1 (greedy) of the preceding RE.
        *?,+?,?? Non-greedy versions of the previous three special characters.
        {m,n}    Matches from m to n repetitions of the preceding RE.
        {m,n}?   Non-greedy version of the above.
        "\\"     Either escapes special characters or signals a special sequence.
        []       Indicates a set of characters.
                 A "^" as the first character indicates a complementing set.
        "|"      A|B, creates an RE that will match either A or B.
        (...)    Matches the RE inside the parentheses.
                 The contents can be retrieved or matched later in the string.
        (?aiLmsux) The letters set the corresponding flags defined below.
        (?:...)  Non-grouping version of regular parentheses.
        (?P<name>...) The substring matched by the group is accessible by name.
        (?P=name)     Matches the text matched earlier by the group named name.
        (?#...)  A comment; ignored.
        (?=...)  Matches if ... matches next, but doesn't consume the string.
        (?!...)  Matches if ... doesn't match next.
        (?<=...) Matches if preceded by ... (must be fixed length).
        (?<!...) Matches if not preceded by ... (must be fixed length).
        (?(id/name)yes|no) Matches yes pattern if the group with id/name matched,
                           the (optional) no pattern otherwise.

    The special sequences consist of "\\" and a character from the list
    below.  If the ordinary character is not on the list, then the
    resulting RE will match the second character.
        \number  Matches the contents of the group of the same number.
        \A       Matches only at the start of the string.
        \Z       Matches only at the end of the string.
        \b       Matches the empty string, but only at the start or end of a word.
        \B       Matches the empty string, but not at the start or end of a word.
        \d       Matches any decimal digit; equivalent to the set [0-9] in
                 bytes patterns or string patterns with the ASCII flag.
                 In string patterns without the ASCII flag, it will match the whole
                 range of Unicode digits.
        \D       Matches any non-digit character; equivalent to [^\d].
        \s       Matches any whitespace character; equivalent to [ \t\n\r\f\v] in
                 bytes patterns or string patterns with the ASCII flag.
                 In string patterns without the ASCII flag, it will match the whole
                 range of Unicode whitespace characters.
        \S       Matches any non-whitespace character; equivalent to [^\s].
        \w       Matches any alphanumeric character; equivalent to [a-zA-Z0-9_]
                 in bytes patterns or string patterns with the ASCII flag.
                 In string patterns without the ASCII flag, it will match the
                 range of Unicode alphanumeric characters (letters plus digits
                 plus underscore).
                 With LOCALE, it will match the set [0-9_] plus characters defined
                 as letters for the current locale.
        \W       Matches the complement of \w.
        \\       Matches a literal backslash.

    This module exports the following functions:
        match     Match a regular expression pattern to the beginning of a string.
        fullmatch Match a regular expression pattern to all of a string.
        search    Search a string for the presence of a pattern.
        sub       Substitute occurrences of a pattern found in a string.
        subn      Same as sub, but also return the number of substitutions made.
        split     Split a string by the occurrences of a pattern.
        findall   Find all occurrences of a pattern in a string.
        finditer  Return an iterator yielding a Match object for each match.
        compile   Compile a pattern into a Pattern object.
        purge     Clear the regular expression cache.
        escape    Backslash all non-alphanumerics in a string.

    Each function other than purge and escape can take an optional 'flags' argument
    consisting of one or more of the following module constants, joined by "|".
    A, L, and U are mutually exclusive.
        A  ASCII       For string patterns, make \w, \W, \b, \B, \d, \D
                       match the corresponding ASCII character categories
                       (rather than the whole Unicode categories, which is the
                       default).
                       For bytes patterns, this flag is the only available
                       behaviour and needn't be specified.
        I  IGNORECASE  Perform case-insensitive matching.
        L  LOCALE      Make \w, \W, \b, \B, dependent on the current locale.
        M  MULTILINE   "^" matches the beginning of lines (after a newline)
                       as well as the string.
                       "$" matches the end of lines (before a newline) as well
                       as the end of the string.
        S  DOTALL      "." matches any character at all, including the newline.
        X  VERBOSE     Ignore whitespace and comments for nicer looking RE's.
        U  UNICODE     For compatibility only. Ignored for string patterns (it
                       is the default), and forbidden for bytes patterns.

    This module also defines an exception 'error'.

PACKAGE CONTENTS
    _casefix
    _compiler
    _constants
    _parser

CLASSES
    builtins.Exception(builtins.BaseException)
        error
    builtins.object
        Match
        Pattern
    enum.IntFlag(builtins.int, enum.ReprEnum, enum.Flag)
        RegexFlag

    class Match(builtins.object)
     |  The result of re.match() and re.search().
     |  Match objects always have a boolean value of True.
     |
     |  Methods defined here:
     |
     |  __copy__(self, /)
     |
     |  __deepcopy__(self, memo, /)
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  end(self, group=0, /)
     |      Return index of the end of the substring matched by group.
     |
     |  expand(self, /, template)
     |      Return the string obtained by doing backslash substitution on the string template, as done by the sub() method.
     |
     |  group(...)
     |      group([group1, ...]) -> str or tuple.
     |      Return subgroup(s) of the match by indices or names.
     |      For 0 returns the entire match.
     |
     |  groupdict(self, /, default=None)
     |      Return a dictionary containing all the named subgroups of the match, keyed by the subgroup name.
     |
     |      default
     |        Is used for groups that did not participate in the match.
     |
     |  groups(self, /, default=None)
     |      Return a tuple containing all the subgroups of the match, from 1.
     |
     |      default
     |        Is used for groups that did not participate in the match.
     |
     |  span(self, group=0, /)
     |      For match object m, return the 2-tuple (m.start(group), m.end(group)).
     |
     |  start(self, group=0, /)
     |      Return index of the start of the substring matched by group.
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __class_getitem__(...)
     |      See PEP 585
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  endpos
     |      The index into the string beyond which the RE engine will not go.
     |
     |  lastgroup
     |      The name of the last matched capturing group.
     |
     |  lastindex
     |      The integer index of the last matched capturing group.
     |
     |  pos
     |      The index into the string at which the RE engine started looking for a match.
     |
     |  re
     |      The regular expression object.
     |
     |  regs
     |
     |  string
     |      The string passed to match() or search().

    class Pattern(builtins.object)
     |  Compiled regular expression object.
     |
     |  Methods defined here:
     |
     |  __copy__(self, /)
     |
     |  __deepcopy__(self, memo, /)
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  findall(self, /, string, pos=0, endpos=9223372036854775807)
     |      Return a list of all non-overlapping matches of pattern in string.
     |
     |  finditer(self, /, string, pos=0, endpos=9223372036854775807)
     |      Return an iterator over all non-overlapping matches for the RE pattern in string.
     |
     |      For each match, the iterator returns a match object.
     |
     |  fullmatch(self, /, string, pos=0, endpos=9223372036854775807)
     |      Matches against all of the string.
     |
     |  match(self, /, string, pos=0, endpos=9223372036854775807)
     |      Matches zero or more characters at the beginning of the string.
     |
     |  scanner(self, /, string, pos=0, endpos=9223372036854775807)
     |
     |  search(self, /, string, pos=0, endpos=9223372036854775807)
     |      Scan through string looking for a match, and return a corresponding match object instance.
     |
     |      Return None if no position in the string matches.
     |
     |  split(self, /, string, maxsplit=0)
     |      Split string by the occurrences of pattern.
     |
     |  sub(self, /, repl, string, count=0)
     |      Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl.
     |
     |  subn(self, /, repl, string, count=0)
     |      Return the tuple (new_string, number_of_subs_made) found by replacing the leftmost non-overlapping occurrences of pattern with the replacement repl.
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __class_getitem__(...)
     |      See PEP 585
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  flags
     |      The regex matching flags.
     |
     |  groupindex
     |      A dictionary mapping group names to group numbers.
     |
     |  groups
     |      The number of capturing groups in the pattern.
     |
     |  pattern
     |      The pattern string from which the RE object was compiled.

    class RegexFlag(enum.IntFlag)
     |  RegexFlag(*values)
     |
     |  An enumeration.
     |
     |  Method resolution order:
     |      RegexFlag
     |      enum.IntFlag
     |      builtins.int
     |      enum.ReprEnum
     |      enum.Flag
     |      enum.Enum
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __and__(self, other) from enum.Flag
     |
     |  __format__(self, format_spec, /) from builtins.int
     |      Convert to a string according to format_spec.
     |
     |  __invert__(self) from enum.Flag
     |
     |  __new__(cls, value) from enum.Enum
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  __or__(self, other) from enum.Flag
     |      Return self|value.
     |
     |  __rand__ = __and__(self, other)
     |
     |  __repr__ = global_flag_repr(self) from enum
     |      use module.flag_name instead of class.flag_name
     |
     |      the module is the last module in case of a multi-module name
     |
     |  __ror__ = __or__(self, other)
     |
     |  __rxor__ = __xor__(self, other)
     |
     |  __str__(self, /) from builtins.object
     |      Return str(self).
     |
     |  __xor__(self, other) from enum.Flag
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  ASCII = re.ASCII
     |
     |  DEBUG = re.DEBUG
     |
     |  DOTALL = re.DOTALL
     |
     |  IGNORECASE = re.IGNORECASE
     |
     |  LOCALE = re.LOCALE
     |
     |  MULTILINE = re.MULTILINE
     |
     |  TEMPLATE = re.TEMPLATE
     |
     |  UNICODE = re.UNICODE
     |
     |  VERBOSE = re.VERBOSE
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.int:
     |
     |  __abs__(self, /)
     |      abs(self)
     |
     |  __add__(self, value, /)
     |      Return self+value.
     |
     |  __bool__(self, /)
     |      True if self else False
     |
     |  __ceil__(...)
     |      Ceiling of an Integral returns itself.
     |
     |  __divmod__(self, value, /)
     |      Return divmod(self, value).
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __float__(self, /)
     |      float(self)
     |
     |  __floor__(...)
     |      Flooring an Integral returns itself.
     |
     |  __floordiv__(self, value, /)
     |      Return self//value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __getnewargs__(self, /)
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __index__(self, /)
     |      Return self converted to an integer, if self is suitable for use as an index into a list.
     |
     |  __int__(self, /)
     |      int(self)
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lshift__(self, value, /)
     |      Return self<<value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __mod__(self, value, /)
     |      Return self%value.
     |
     |  __mul__(self, value, /)
     |      Return self*value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __neg__(self, /)
     |      -self
     |
     |  __pos__(self, /)
     |      +self
     |
     |  __pow__(self, value, mod=None, /)
     |      Return pow(self, value, mod).
     |
     |  __radd__(self, value, /)
     |      Return value+self.
     |
     |  __rdivmod__(self, value, /)
     |      Return divmod(value, self).
     |
     |  __rfloordiv__(self, value, /)
     |      Return value//self.
     |
     |  __rlshift__(self, value, /)
     |      Return value<<self.
     |
     |  __rmod__(self, value, /)
     |      Return value%self.
     |
     |  __rmul__(self, value, /)
     |      Return value*self.
     |
     |  __round__(...)
     |      Rounding an Integral returns itself.
     |
     |      Rounding with an ndigits argument also returns an integer.
     |
     |  __rpow__(self, value, mod=None, /)
     |      Return pow(value, self, mod).
     |
     |  __rrshift__(self, value, /)
     |      Return value>>self.
     |
     |  __rshift__(self, value, /)
     |      Return self>>value.
     |
     |  __rsub__(self, value, /)
     |      Return value-self.
     |
     |  __rtruediv__(self, value, /)
     |      Return value/self.
     |
     |  __sizeof__(self, /)
     |      Returns size in memory, in bytes.
     |
     |  __sub__(self, value, /)
     |      Return self-value.
     |
     |  __truediv__(self, value, /)
     |      Return self/value.
     |
     |  __trunc__(...)
     |      Truncating an Integral returns itself.
     |
     |  as_integer_ratio(self, /)
     |      Return a pair of integers, whose ratio is equal to the original int.
     |
     |      The ratio is in lowest terms and has a positive denominator.
     |
     |      >>> (10).as_integer_ratio()
     |      (10, 1)
     |      >>> (-10).as_integer_ratio()
     |      (-10, 1)
     |      >>> (0).as_integer_ratio()
     |      (0, 1)
     |
     |  bit_count(self, /)
     |      Number of ones in the binary representation of the absolute value of self.
     |
     |      Also known as the population count.
     |
     |      >>> bin(13)
     |      '0b1101'
     |      >>> (13).bit_count()
     |      3
     |
     |  bit_length(self, /)
     |      Number of bits necessary to represent self in binary.
     |
     |      >>> bin(37)
     |      '0b100101'
     |      >>> (37).bit_length()
     |      6
     |
     |  conjugate(...)
     |      Returns self, the complex conjugate of any int.
     |
     |  is_integer(self, /)
     |      Returns True. Exists for duck type compatibility with float.is_integer.
     |
     |  to_bytes(self, /, length=1, byteorder='big', *, signed=False)
     |      Return an array of bytes representing an integer.
     |
     |      length
     |        Length of bytes object to use.  An OverflowError is raised if the
     |        integer is not representable with the given number of bytes.  Default
     |        is length 1.
     |      byteorder
     |        The byte order used to represent the integer.  If byteorder is 'big',
     |        the most significant byte is at the beginning of the byte array.  If
     |        byteorder is 'little', the most significant byte is at the end of the
     |        byte array.  To request the native byte order of the host system, use
     |        `sys.byteorder' as the byte order value.  Default is to use 'big'.
     |      signed
     |        Determines whether two's complement is used to represent the integer.
     |        If signed is False and a negative integer is given, an OverflowError
     |        is raised.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from builtins.int:
     |
     |  from_bytes(bytes, byteorder='big', *, signed=False)
     |      Return the integer represented by the given array of bytes.
     |
     |      bytes
     |        Holds the array of bytes to convert.  The argument must either
     |        support the buffer protocol or be an iterable object producing bytes.
     |        Bytes and bytearray are examples of built-in objects that support the
     |        buffer protocol.
     |      byteorder
     |        The byte order used to represent the integer.  If byteorder is 'big',
     |        the most significant byte is at the beginning of the byte array.  If
     |        byteorder is 'little', the most significant byte is at the end of the
     |        byte array.  To request the native byte order of the host system, use
     |        `sys.byteorder' as the byte order value.  Default is to use 'big'.
     |      signed
     |        Indicates whether two's complement is used to represent the integer.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.int:
     |
     |  denominator
     |      the denominator of a rational number in lowest terms
     |
     |  imag
     |      the imaginary part of a complex number
     |
     |  numerator
     |      the numerator of a rational number in lowest terms
     |
     |  real
     |      the real part of a complex number
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from enum.Flag:
     |
     |  __contains__(self, other)
     |      Returns True if self has at least the same flags set as other.
     |
     |  __iter__(self)
     |      Returns flags in definition order.
     |
     |  __len__(self)
     |      Return the number of members (no aliases)
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from enum.Enum:
     |
     |  __dir__(self)
     |      Returns public methods and other interesting attributes.
     |
     |  __init__(self, *args, **kwds)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __reduce_ex__(self, proto)
     |      Helper for pickle.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |
     |  name
     |      The name of the Enum member.
     |
     |  value
     |      The value of the Enum member.
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from enum.EnumType:
     |
     |  __getitem__(name)
     |      Return the member matching `name`.
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumType:
     |
     |  __members__
     |      Returns a mapping of member name->value.
     |
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.

    class error(builtins.Exception)
     |  error(msg, pattern=None, pos=None)
     |
     |  Exception raised for invalid regular expressions.
     |
     |  Attributes:
     |
     |      msg: The unformatted error message
     |      pattern: The regular expression pattern
     |      pos: The index in the pattern where compilation failed (may be None)
     |      lineno: The line corresponding to pos (may be None)
     |      colno: The column corresponding to pos (may be None)
     |
     |  Method resolution order:
     |      error
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__(self, msg, pattern=None, pos=None) from re._constants.error
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __reduce__(...)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(...)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(...)
     |      Exception.add_note(note) --
     |      add a note to the exception
     |
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |      exception cause
     |
     |  __context__
     |      exception context
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

FUNCTIONS
    compile(pattern, flags=0)
        Compile a regular expression pattern, returning a Pattern object.

    escape(pattern)
        Escape special characters in a string.

    findall(pattern, string, flags=0)
        Return a list of all non-overlapping matches in the string.

        If one or more capturing groups are present in the pattern, return
        a list of groups; this will be a list of tuples if the pattern
        has more than one group.

        Empty matches are included in the result.

    finditer(pattern, string, flags=0)
        Return an iterator over all non-overlapping matches in the
        string.  For each match, the iterator returns a Match object.

        Empty matches are included in the result.

    fullmatch(pattern, string, flags=0)
        Try to apply the pattern to all of the string, returning
        a Match object, or None if no match was found.

    match(pattern, string, flags=0)
        Try to apply the pattern at the start of the string, returning
        a Match object, or None if no match was found.

    purge()
        Clear the regular expression caches

    search(pattern, string, flags=0)
        Scan through string looking for a match to the pattern, returning
        a Match object, or None if no match was found.

    split(pattern, string, maxsplit=0, flags=0)
        Split the source string by the occurrences of the pattern,
        returning a list containing the resulting substrings.  If
        capturing parentheses are used in pattern, then the text of all
        groups in the pattern are also returned as part of the resulting
        list.  If maxsplit is nonzero, at most maxsplit splits occur,
        and the remainder of the string is returned as the final element
        of the list.

    sub(pattern, repl, string, count=0, flags=0)
        Return the string obtained by replacing the leftmost
        non-overlapping occurrences of the pattern in string by the
        replacement repl.  repl can be either a string or a callable;
        if a string, backslash escapes in it are processed.  If it is
        a callable, it's passed the Match object and must return
        a replacement string to be used.

    subn(pattern, repl, string, count=0, flags=0)
        Return a 2-tuple containing (new_string, number).
        new_string is the string obtained by replacing the leftmost
        non-overlapping occurrences of the pattern in the source
        string by the replacement repl.  number is the number of
        substitutions that were made. repl can be either a string or a
        callable; if a string, backslash escapes in it are processed.
        If it is a callable, it's passed the Match object and must
        return a replacement string to be used.

    template(pattern, flags=0)
        Compile a template pattern, returning a Pattern object, deprecated

DATA
    A = re.ASCII
    ASCII = re.ASCII
    DOTALL = re.DOTALL
    I = re.IGNORECASE
    IGNORECASE = re.IGNORECASE
    L = re.LOCALE
    LOCALE = re.LOCALE
    M = re.MULTILINE
    MULTILINE = re.MULTILINE
    NOFLAG = re.NOFLAG
    S = re.DOTALL
    U = re.UNICODE
    UNICODE = re.UNICODE
    VERBOSE = re.VERBOSE
    X = re.VERBOSE
    __all__ = ['match', 'fullmatch', 'search', 'sub', 'subn', 'split', 'fi...

VERSION
    2.2.1

FILE
    c:\users\youse\appdata\local\programs\python\python312\lib\re\__init__.py

typing.sys
Python Library Documentation: built-in module sys

NAME
    sys

MODULE REFERENCE
    https://docs.python.org/3.12/library/sys.html

    The following documentation is automatically generated from the Python
    source files.  It may be incomplete, incorrect or include features that
    are considered implementation detail and may vary between Python
    implementations.  When in doubt, consult the module reference at the
    location listed above.

DESCRIPTION
    This module provides access to some objects used or maintained by the
    interpreter and to functions that interact strongly with the interpreter.

    Dynamic objects:

    argv -- command line arguments; argv[0] is the script pathname if known
    path -- module search path; path[0] is the script directory, else ''
    modules -- dictionary of loaded modules

    displayhook -- called to show results in an interactive session
    excepthook -- called to handle any uncaught exception other than SystemExit
      To customize printing in an interactive session or to install a custom
      top-level exception handler, assign other functions to replace these.

    stdin -- standard input file object; used by input()
    stdout -- standard output file object; used by print()
    stderr -- standard error object; used for error messages
      By assigning other file objects (or objects that behave like files)
      to these, it is possible to redirect all of the interpreter's I/O.

    last_exc - the last uncaught exception
      Only available in an interactive session after a
      traceback has been printed.
    last_type -- type of last uncaught exception
    last_value -- value of last uncaught exception
    last_traceback -- traceback of last uncaught exception
      These three are the (deprecated) legacy representation of last_exc.

    Static objects:

    builtin_module_names -- tuple of module names built into this interpreter
    copyright -- copyright notice pertaining to this interpreter
    exec_prefix -- prefix used to find the machine-specific Python library
    executable -- absolute path of the executable binary of the Python interpreter
    float_info -- a named tuple with information about the float implementation.
    float_repr_style -- string indicating the style of repr() output for floats
    hash_info -- a named tuple with information about the hash algorithm.
    hexversion -- version information encoded as a single integer
    implementation -- Python implementation information.
    int_info -- a named tuple with information about the int implementation.
    maxsize -- the largest supported length of containers.
    maxunicode -- the value of the largest Unicode code point
    platform -- platform identifier
    prefix -- prefix used to find the Python library
    thread_info -- a named tuple with information about the thread implementation.
    version -- the version of this interpreter as a string
    version_info -- version information as a named tuple
    dllhandle -- [Windows only] integer handle of the Python DLL
    winver -- [Windows only] version number of the Python DLL
    _enablelegacywindowsfsencoding -- [Windows only]
    __stdin__ -- the original stdin; don't touch!
    __stdout__ -- the original stdout; don't touch!
    __stderr__ -- the original stderr; don't touch!
    __displayhook__ -- the original displayhook; don't touch!
    __excepthook__ -- the original excepthook; don't touch!

    Functions:

    displayhook() -- print an object to the screen, and save it in builtins._
    excepthook() -- print an exception and its traceback to sys.stderr
    exception() -- return the current thread's active exception
    exc_info() -- return information about the current thread's active exception
    exit() -- exit the interpreter by raising SystemExit
    getdlopenflags() -- returns flags to be used for dlopen() calls
    getprofile() -- get the global profiling function
    getrefcount() -- return the reference count for an object (plus one :-)
    getrecursionlimit() -- return the max recursion depth for the interpreter
    getsizeof() -- return the size of an object in bytes
    gettrace() -- get the global debug tracing function
    setdlopenflags() -- set the flags to be used for dlopen() calls
    setprofile() -- set the global profiling function
    setrecursionlimit() -- set the max recursion depth for the interpreter
    settrace() -- set the global debug tracing function

SUBMODULES
    monitoring

FUNCTIONS
    __breakpointhook__ = breakpointhook(...)
        breakpointhook(*args, **kws)

        This hook function is called by built-in breakpoint().

    __displayhook__ = displayhook(object, /)
        Print an object to sys.stdout and also save it in builtins._

    __excepthook__ = excepthook(exctype, value, traceback, /)
        Handle an exception by displaying it with a traceback on sys.stderr.

    __unraisablehook__ = unraisablehook(unraisable, /)
        Handle an unraisable exception.

        The unraisable argument has the following attributes:

        * exc_type: Exception type.
        * exc_value: Exception value, can be None.
        * exc_traceback: Exception traceback, can be None.
        * err_msg: Error message, can be None.
        * object: Object causing the exception, can be None.

    activate_stack_trampoline(backend, /)
        Activate stack profiler trampoline *backend*.

    addaudithook(hook)
        Adds a new audit hook callback.

    audit(...)
        audit(event, *args)

        Passes the event to any audit hooks that are attached.

    breakpointhook(...)
        breakpointhook(*args, **kws)

        This hook function is called by built-in breakpoint().

    call_tracing(func, args, /)
        Call func(*args), while tracing is enabled.

        The tracing state is saved, and restored afterwards.  This is intended
        to be called from a debugger from a checkpoint, to recursively debug
        some other code.

    deactivate_stack_trampoline()
        Deactivate the current stack profiler trampoline backend.

        If no stack profiler is activated, this function has no effect.

    displayhook(object, /)
        Print an object to sys.stdout and also save it in builtins._

    exc_info()
        Return current exception information: (type, value, traceback).

        Return information about the most recent exception caught by an except
        clause in the current stack frame or in an older stack frame.

    excepthook(exctype, value, traceback, /)
        Handle an exception by displaying it with a traceback on sys.stderr.

    exception()
        Return the current exception.

        Return the most recent exception caught by an except clause
        in the current stack frame or in an older stack frame, or None
        if no such exception exists.

    exit(status=None, /)
        Exit the interpreter by raising SystemExit(status).

        If the status is omitted or None, it defaults to zero (i.e., success).
        If the status is an integer, it will be used as the system exit status.
        If it is another kind of object, it will be printed and the system
        exit status will be one (i.e., failure).

    get_asyncgen_hooks()
        Return the installed asynchronous generators hooks.

        This returns a namedtuple of the form (firstiter, finalizer).

    get_coroutine_origin_tracking_depth()
        Check status of origin tracking for coroutine objects in this thread.

    get_int_max_str_digits()
        Return the maximum string digits limit for non-binary int<->str conversions.

    getallocatedblocks()
        Return the number of memory blocks currently allocated.

    getdefaultencoding()
        Return the current default encoding used by the Unicode implementation.

    getfilesystemencodeerrors()
        Return the error mode used Unicode to OS filename conversion.

    getfilesystemencoding()
        Return the encoding used to convert Unicode filenames to OS filenames.

    getprofile()
        Return the profiling function set with sys.setprofile.

        See the profiler chapter in the library manual.

    getrecursionlimit()
        Return the current value of the recursion limit.

        The recursion limit is the maximum depth of the Python interpreter
        stack.  This limit prevents infinite recursion from causing an overflow
        of the C stack and crashing Python.

    getrefcount(object, /)
        Return the reference count of object.

        The count returned is generally one higher than you might expect,
        because it includes the (temporary) reference as an argument to
        getrefcount().

    getsizeof(...)
        getsizeof(object [, default]) -> int

        Return the size of object in bytes.

    getswitchinterval()
        Return the current thread switch interval; see sys.setswitchinterval().

    gettrace()
        Return the global debug tracing function set with sys.settrace.

        See the debugger chapter in the library manual.

    getunicodeinternedsize()
        Return the number of elements of the unicode interned dictionary

    getwindowsversion()
        Return info about the running version of Windows as a named tuple.

        The members are named: major, minor, build, platform, service_pack,
        service_pack_major, service_pack_minor, suite_mask, product_type and
        platform_version. For backward compatibility, only the first 5 items
        are available by indexing. All elements are numbers, except
        service_pack and platform_type which are strings, and platform_version
        which is a 3-tuple. Platform is always 2. Product_type may be 1 for a
        workstation, 2 for a domain controller, 3 for a server.
        Platform_version is a 3-tuple containing a version number that is
        intended for identifying the OS rather than feature detection.

    intern(string, /)
        ``Intern'' the given string.

        This enters the string in the (global) table of interned strings whose
        purpose is to speed up dictionary lookups. Return the string itself or
        the previously interned string object with the same value.

    is_finalizing()
        Return True if Python is exiting.

    is_stack_trampoline_active()
        Return *True* if a stack profiler trampoline is active.

    set_asyncgen_hooks(...)
        set_asyncgen_hooks([firstiter] [, finalizer])

        Set a finalizer for async generators objects.

    set_coroutine_origin_tracking_depth(depth)
        Enable or disable origin tracking for coroutine objects in this thread.

        Coroutine objects will track 'depth' frames of traceback information
        about where they came from, available in their cr_origin attribute.

        Set a depth of 0 to disable.

    set_int_max_str_digits(maxdigits)
        Set the maximum string digits limit for non-binary int<->str conversions.

    setprofile(...)
        setprofile(function)

        Set the profiling function.  It will be called on each function call
        and return.  See the profiler chapter in the library manual.

    setrecursionlimit(limit, /)
        Set the maximum depth of the Python interpreter stack to n.

        This limit prevents infinite recursion from causing an overflow of the C
        stack and crashing Python.  The highest possible limit is platform-
        dependent.

    setswitchinterval(interval, /)
        Set the ideal thread switching delay inside the Python interpreter.

        The actual frequency of switching threads can be lower if the
        interpreter executes long sequences of uninterruptible code
        (this is implementation-specific and workload-dependent).

        The parameter must represent the desired switching delay in seconds
        A typical value is 0.005 (5 milliseconds).

    settrace(...)
        settrace(function)

        Set the global debug tracing function.  It will be called on each
        function call.  See the debugger chapter in the library manual.

    unraisablehook(unraisable, /)
        Handle an unraisable exception.

        The unraisable argument has the following attributes:

        * exc_type: Exception type.
        * exc_value: Exception value, can be None.
        * exc_traceback: Exception traceback, can be None.
        * err_msg: Error message, can be None.
        * object: Object causing the exception, can be None.

DATA
    __stderr__ = <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1...
    __stdin__ = <_io.TextIOWrapper name='<stdin>' mode='r' encoding='utf-8...
    __stdout__ = <_io.TextIOWrapper name='<stdout>' mode='w' encoding='cp1...
    api_version = 1013
    argv = [r'f:\JoeyCodes\PyDocs\py_docs.py', '--worker', 'typing', r'F:\...
    base_exec_prefix = r'C:\Users\Youse\AppData\Local\Programs\Python\Pyth...
    base_prefix = r'C:\Users\Youse\AppData\Local\Programs\Python\Python312...
    builtin_module_names = ('_abc', '_ast', '_bisect', '_blake2', '_codecs...
    byteorder = 'little'
    copyright = 'Copyright (c) 2001-2023 Python Software Foundati...ematis...
    dllhandle = 140727031824384
    dont_write_bytecode = False
    exec_prefix = r'C:\Users\Youse\AppData\Local\Programs\Python\Python312...
    executable = r'C:\Users\Youse\AppData\Local\Programs\Python\Python312\...
    flags = sys.flags(debug=0, inspect=0, interactive=0, opt...ding=0, saf...
    float_info = sys.float_info(max=1.7976931348623157e+308, max_...epsilo...
    float_repr_style = 'short'
    hash_info = sys.hash_info(width=64, modulus=2305843009213693...iphash1...
    hexversion = 51119856
    implementation = namespace(name='cpython', cache_tag='cpython-312...as...
    int_info = sys.int_info(bits_per_digit=30, sizeof_digit=4, ..._str_dig...
    maxsize = 9223372036854775807
    maxunicode = 1114111
    meta_path = [<_distutils_hack.DistutilsMetaFinder object>, <class '_fr...
    modules = {'__future__': <module '__future__' from 'C:\\Users\\Youse\\...
    orig_argv = [r'C:\Users\Youse\AppData\Local\Programs\Python\Python312\...
    path = [r'f:\JoeyCodes\PyDocs', r'C:\Users\Youse\AppData\Local\Program...
    path_hooks = [<class 'zipimport.zipimporter'>, <function FileFinder.pa...
    path_importer_cache = {r'C:\Users\Youse\AppData\Local\Programs\Python\...
    platform = 'win32'
    platlibdir = 'DLLs'
    prefix = r'C:\Users\Youse\AppData\Local\Programs\Python\Python312'
    pycache_prefix = None
    stderr = <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'...
    stdin = <_io.TextIOWrapper name='<stdin>' mode='r' encoding='utf-8'>
    stdlib_module_names = frozenset({'__future__', '_abc', '_aix_support',...
    stdout = <_io.TextIOWrapper name='<stdout>' mode='w' encoding='cp1252'...
    thread_info = sys.thread_info(name='nt', lock=None, version=None)
    version = '3.12.6 (tags/v3.12.6:a4a2d2b, Sep  6 2024, 20:11:23) [MSC v...
    version_info = sys.version_info(major=3, minor=12, micro=6, releaselev...
    warnoptions = []
    winver = '3.12'

FILE
    (built-in)

typing.types
Python Library Documentation: module types

NAME
    types - Define names for built-in types that aren't directly accessible as a builtin.

MODULE REFERENCE
    https://docs.python.org/3.12/library/types.html

    The following documentation is automatically generated from the Python
    source files.  It may be incomplete, incorrect or include features that
    are considered implementation detail and may vary between Python
    implementations.  When in doubt, consult the module reference at the
    location listed above.

CLASSES
    builtins.object
        builtins.NoneType
        builtins.NotImplementedType
        builtins.async_generator
        builtins.builtin_function_or_method
        builtins.cell
        builtins.classmethod_descriptor
        builtins.code
        builtins.coroutine
        builtins.ellipsis
        builtins.frame
        builtins.function
        builtins.generator
        builtins.getset_descriptor
        builtins.mappingproxy
        builtins.member_descriptor
        builtins.method
        builtins.method-wrapper
        builtins.method_descriptor
        builtins.module
        builtins.traceback
        builtins.wrapper_descriptor
        DynamicClassAttribute
        GenericAlias
        SimpleNamespace
        UnionType

    AsyncGeneratorType = class async_generator(object)
     |  Methods defined here:
     |
     |  __aiter__(self, /)
     |      Return an awaitable, that resolves in asynchronous iterator.
     |
     |  __anext__(self, /)
     |      Return a value or raise StopAsyncIteration.
     |
     |  __del__(...)
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __sizeof__(...)
     |      gen.__sizeof__() -> size of gen in memory, in bytes
     |
     |  aclose(...)
     |      aclose() -> raise GeneratorExit inside generator.
     |
     |  asend(...)
     |      asend(v) -> send 'v' in generator.
     |
     |  athrow(...)
     |      athrow(value)
     |      athrow(type[,value[,tb]])
     |
     |      raise exception in generator.
     |      the (type, val, tb) signature is deprecated,
     |      and may be removed in a future version of Python.
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __class_getitem__(...)
     |      See PEP 585
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  ag_await
     |      object being awaited on, or None
     |
     |  ag_code
     |
     |  ag_frame
     |
     |  ag_running
     |
     |  ag_suspended

    BuiltinFunctionType = class builtin_function_or_method(object)
     |  Built-in subclasses:
     |      builtin_method
     |
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __reduce__(...)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __self__
     |
     |  __text_signature__

    BuiltinMethodType = class builtin_function_or_method(object)
     |  Built-in subclasses:
     |      builtin_method
     |
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __reduce__(...)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __self__
     |
     |  __text_signature__

    CellType = class cell(object)
     |  Create a new cell object.
     |
     |   contents
     |     the contents of the cell. If not specified, the cell will be empty,
     |     and
     |  further attempts to access its cell_contents attribute will
     |     raise a ValueError.
     |
     |  Methods defined here:
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  cell_contents
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __hash__ = None

    ClassMethodDescriptorType = class classmethod_descriptor(object)
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __get__(self, instance, owner=None, /)
     |      Return an attribute of instance, which is of type owner.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __objclass__
     |
     |  __text_signature__

    CodeType = class code(object)
     |  CodeType(argcount, posonlyargcount, kwonlyargcount, nlocals, stacksize, flags, codestring, constants, names, varnames, filename, name, qualname, firstlineno, linetable, exceptiontable, freevars=(), cellvars=(), /)
     |
     |  Create a code object.  Not for the faint of heart.
     |
     |  Methods defined here:
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __sizeof__(...)
     |      Size of object in memory, in bytes.
     |
     |  co_lines(...)
     |
     |  co_positions(...)
     |
     |  replace(self, /, **changes)
     |      Return a copy of the code object with new values for the specified fields.
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  co_argcount
     |
     |  co_cellvars
     |
     |  co_code
     |
     |  co_consts
     |
     |  co_exceptiontable
     |
     |  co_filename
     |
     |  co_firstlineno
     |
     |  co_flags
     |
     |  co_freevars
     |
     |  co_kwonlyargcount
     |
     |  co_linetable
     |
     |  co_lnotab
     |
     |  co_name
     |
     |  co_names
     |
     |  co_nlocals
     |
     |  co_posonlyargcount
     |
     |  co_qualname
     |
     |  co_stacksize
     |
     |  co_varnames

    CoroutineType = class coroutine(object)
     |  Methods defined here:
     |
     |  __await__(self, /)
     |      Return an iterator to be used in await expression.
     |
     |  __del__(...)
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __sizeof__(...)
     |      gen.__sizeof__() -> size of gen in memory, in bytes
     |
     |  close(...)
     |      close() -> raise GeneratorExit inside coroutine.
     |
     |  send(...)
     |      send(arg) -> send 'arg' into coroutine,
     |      return next iterated value or raise StopIteration.
     |
     |  throw(...)
     |      throw(value)
     |      throw(type[,value[,traceback]])
     |
     |      Raise exception in coroutine, return next iterated value or raise
     |      StopIteration.
     |      the (type, val, tb) signature is deprecated,
     |      and may be removed in a future version of Python.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  cr_await
     |      object being awaited on, or None
     |
     |  cr_code
     |
     |  cr_frame
     |
     |  cr_origin
     |
     |  cr_running
     |
     |  cr_suspended

    class DynamicClassAttribute(builtins.object)
     |  DynamicClassAttribute(fget=None, fset=None, fdel=None, doc=None)
     |
     |  Route attribute access on a class to __getattr__.
     |
     |  This is a descriptor, used to define attributes that act differently when
     |  accessed through an instance and through a class.  Instance access remains
     |  normal, but access to an attribute through a class will be routed to the
     |  class's __getattr__ method; this is done by raising AttributeError.
     |
     |  This allows one to have properties active on an instance, and have virtual
     |  attributes on the class with the same name.  (Enum used this between Python
     |  versions 3.4 - 3.9 .)
     |
     |  Subclass from this to use a different method of accessing virtual attributes
     |  and still be treated properly by the inspect module. (Enum uses this since
     |  Python 3.10 .)
     |
     |  Methods defined here:
     |
     |  __delete__(self, instance)
     |
     |  __get__(self, instance, ownerclass=None)
     |
     |  __init__(self, fget=None, fset=None, fdel=None, doc=None)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __set__(self, instance, value)
     |
     |  deleter(self, fdel)
     |
     |  getter(self, fget)
     |
     |  setter(self, fset)
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    EllipsisType = class ellipsis(object)
     |  Methods defined here:
     |
     |  __reduce__(...)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.

    FrameType = class frame(object)
     |  Methods defined here:
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __sizeof__(...)
     |      F.__sizeof__() -> size of F in memory, in bytes
     |
     |  clear(...)
     |      F.clear(): clear most references held by the frame
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  f_back
     |
     |  f_builtins
     |
     |  f_code
     |
     |  f_globals
     |
     |  f_lasti
     |
     |  f_lineno
     |
     |  f_locals
     |
     |  f_trace
     |
     |  f_trace_lines
     |
     |  f_trace_opcodes

    FunctionType = class function(object)
     |  FunctionType(code, globals, name=None, argdefs=None, closure=None)
     |
     |  Create a function object.
     |
     |  code
     |    a code object
     |  globals
     |    the globals dictionary
     |  name
     |    a string that overrides the name from the code object
     |  argdefs
     |    a tuple that specifies the default argument values
     |  closure
     |    a tuple that supplies the bindings for free variables
     |
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __get__(self, instance, owner=None, /)
     |      Return an attribute of instance, which is of type owner.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __annotations__
     |
     |  __closure__
     |
     |  __code__
     |
     |  __defaults__
     |
     |  __dict__
     |
     |  __globals__
     |
     |  __kwdefaults__
     |
     |  __type_params__

    GeneratorType = class generator(object)
     |  Methods defined here:
     |
     |  __del__(...)
     |
     |  __iter__(self, /)
     |      Implement iter(self).
     |
     |  __next__(self, /)
     |      Implement next(self).
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __sizeof__(...)
     |      gen.__sizeof__() -> size of gen in memory, in bytes
     |
     |  close(...)
     |      close() -> raise GeneratorExit inside generator.
     |
     |  send(...)
     |      send(arg) -> send 'arg' into generator,
     |      return next yielded value or raise StopIteration.
     |
     |  throw(...)
     |      throw(value)
     |      throw(type[,value[,tb]])
     |
     |      Raise exception in generator, return next yielded value or raise
     |      StopIteration.
     |      the (type, val, tb) signature is deprecated,
     |      and may be removed in a future version of Python.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  gi_code
     |
     |  gi_frame
     |
     |  gi_running
     |
     |  gi_suspended
     |
     |  gi_yieldfrom
     |      object being iterated by yield from, or None

    class GenericAlias(builtins.object)
     |  Represent a PEP 585 generic type
     |
     |  E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
     |
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __dir__(...)
     |      Default dir() implementation.
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __instancecheck__(...)
     |      Check if an object is an instance.
     |
     |  __iter__(self, /)
     |      Implement iter(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __mro_entries__(...)
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __or__(self, value, /)
     |      Return self|value.
     |
     |  __reduce__(...)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __ror__(self, value, /)
     |      Return value|self.
     |
     |  __subclasscheck__(...)
     |      Check if a class is a subclass.
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __args__
     |
     |  __origin__
     |
     |  __parameters__
     |      Type variables in the GenericAlias.
     |
     |  __typing_unpacked_tuple_args__
     |
     |  __unpacked__

    GetSetDescriptorType = class getset_descriptor(object)
     |  Methods defined here:
     |
     |  __delete__(self, instance, /)
     |      Delete an attribute of instance.
     |
     |  __get__(self, instance, owner=None, /)
     |      Return an attribute of instance, which is of type owner.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __set__(self, instance, value, /)
     |      Set an attribute of instance to value.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __objclass__

    LambdaType = class function(object)
     |  LambdaType(code, globals, name=None, argdefs=None, closure=None)
     |
     |  Create a function object.
     |
     |  code
     |    a code object
     |  globals
     |    the globals dictionary
     |  name
     |    a string that overrides the name from the code object
     |  argdefs
     |    a tuple that specifies the default argument values
     |  closure
     |    a tuple that supplies the bindings for free variables
     |
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __get__(self, instance, owner=None, /)
     |      Return an attribute of instance, which is of type owner.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __annotations__
     |
     |  __closure__
     |
     |  __code__
     |
     |  __defaults__
     |
     |  __dict__
     |
     |  __globals__
     |
     |  __kwdefaults__
     |
     |  __type_params__

    MappingProxyType = class mappingproxy(object)
     |  Methods defined here:
     |
     |  __contains__(self, key, /)
     |      Return bool(key in self).
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __ior__(self, value, /)
     |      Return self|=value.
     |
     |  __iter__(self, /)
     |      Implement iter(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __len__(self, /)
     |      Return len(self).
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __or__(self, value, /)
     |      Return self|value.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __reversed__(...)
     |      D.__reversed__() -> reverse iterator
     |
     |  __ror__(self, value, /)
     |      Return value|self.
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  copy(...)
     |      D.copy() -> a shallow copy of D
     |
     |  get(...)
     |      D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.
     |
     |  items(...)
     |      D.items() -> a set-like object providing a view on D's items
     |
     |  keys(...)
     |      D.keys() -> a set-like object providing a view on D's keys
     |
     |  values(...)
     |      D.values() -> an object providing a view on D's values
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __class_getitem__(...)
     |      See PEP 585
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.

    MemberDescriptorType = class member_descriptor(object)
     |  Methods defined here:
     |
     |  __delete__(self, instance, /)
     |      Delete an attribute of instance.
     |
     |  __get__(self, instance, owner=None, /)
     |      Return an attribute of instance, which is of type owner.
     |
     |  __reduce__(...)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __set__(self, instance, value, /)
     |      Set an attribute of instance to value.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __objclass__

    MethodDescriptorType = class method_descriptor(object)
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __get__(self, instance, owner=None, /)
     |      Return an attribute of instance, which is of type owner.
     |
     |  __reduce__(...)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __objclass__
     |
     |  __text_signature__

    MethodType = class method(object)
     |  MethodType(function, instance, /)
     |
     |  Create a bound instance method object.
     |
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __func__
     |      the function (or other callable) implementing a method
     |
     |  __self__
     |      the instance to which a method is bound

    MethodWrapperType = class method-wrapper(object)
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __reduce__(...)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __objclass__
     |
     |  __self__
     |
     |  __text_signature__

    ModuleType = class module(object)
     |  ModuleType(name, doc=None)
     |
     |  Create a module object.
     |
     |  The name must be a string; the optional doc argument can have any type.
     |
     |  Methods defined here:
     |
     |  __dir__(...)
     |      __dir__() -> list
     |      specialized dir() implementation
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __annotations__
     |
     |  __dict__

    class NoneType(object)
     |  Methods defined here:
     |
     |  __bool__(self, /)
     |      True if self else False
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.

    class NotImplementedType(object)
     |  Methods defined here:
     |
     |  __bool__(self, /)
     |      True if self else False
     |
     |  __reduce__(...)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.

    class SimpleNamespace(builtins.object)
     |  A simple attribute-based namespace.
     |
     |  SimpleNamespace(**kwargs)
     |
     |  Methods defined here:
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __reduce__(...)
     |      Return state information for pickling
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __hash__ = None

    TracebackType = class traceback(object)
     |  TracebackType(tb_next, tb_frame, tb_lasti, tb_lineno)
     |  --
     |
     |  Create a new traceback object.
     |
     |  Methods defined here:
     |
     |  __dir__(...)
     |      Default dir() implementation.
     |
     |  ----------------------------------------------------------------------
     |  Static methods defined here:
     |
     |  __new__(*args, **kwargs)
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  tb_frame
     |
     |  tb_lasti
     |
     |  tb_lineno
     |
     |  tb_next

    class UnionType(builtins.object)
     |  Represent a PEP 604 union type
     |
     |  E.g. for int | str
     |
     |  Methods defined here:
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __or__(self, value, /)
     |      Return self|value.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __ror__(self, value, /)
     |      Return value|self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __args__
     |
     |  __parameters__
     |      Type variables in the types.UnionType.

    WrapperDescriptorType = class wrapper_descriptor(object)
     |  Methods defined here:
     |
     |  __call__(self, /, *args, **kwargs)
     |      Call self as a function.
     |
     |  __get__(self, instance, owner=None, /)
     |      Return an attribute of instance, which is of type owner.
     |
     |  __reduce__(...)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __objclass__
     |
     |  __text_signature__

FUNCTIONS
    coroutine(func)
        Convert regular generator function to a coroutine.

    get_original_bases(cls, /)
        Return the class's "original" bases prior to modification by `__mro_entries__`.

        Examples::

            from typing import TypeVar, Generic, NamedTuple, TypedDict

            T = TypeVar("T")
            class Foo(Generic[T]): ...
            class Bar(Foo[int], float): ...
            class Baz(list[str]): ...
            Eggs = NamedTuple("Eggs", [("a", int), ("b", str)])
            Spam = TypedDict("Spam", {"a": int, "b": str})

            assert get_original_bases(Bar) == (Foo[int], float)
            assert get_original_bases(Baz) == (list[str],)
            assert get_original_bases(Eggs) == (NamedTuple,)
            assert get_original_bases(Spam) == (TypedDict,)
            assert get_original_bases(int) == (object,)

    new_class(name, bases=(), kwds=None, exec_body=None)
        Create a class object dynamically using the appropriate metaclass.

    prepare_class(name, bases=(), kwds=None)
        Call the __prepare__ method of the appropriate metaclass.

        Returns (metaclass, namespace, kwds) as a 3-tuple

        *metaclass* is the appropriate metaclass
        *namespace* is the prepared class namespace
        *kwds* is an updated copy of the passed in kwds argument with any
        'metaclass' entry removed. If no kwds argument is passed in, this will
        be an empty dict.

    resolve_bases(bases)
        Resolve MRO entries dynamically as specified by PEP 560.

DATA
    __all__ = ['FunctionType', 'LambdaType', 'CodeType', 'MappingProxyType...

FILE
    c:\users\youse\appdata\local\programs\python\python312\lib\types.py

typing.warnings
Python Library Documentation: module warnings

NAME
    warnings - Python part of the warnings subsystem.

MODULE REFERENCE
    https://docs.python.org/3.12/library/warnings.html

    The following documentation is automatically generated from the Python
    source files.  It may be incomplete, incorrect or include features that
    are considered implementation detail and may vary between Python
    implementations.  When in doubt, consult the module reference at the
    location listed above.

CLASSES
    builtins.object
        catch_warnings

    class catch_warnings(builtins.object)
     |  catch_warnings(*, record=False, module=None, action=None, category=<class 'Warning'>, lineno=0, append=False)
     |
     |  A context manager that copies and restores the warnings filter upon
     |  exiting the context.
     |
     |  The 'record' argument specifies whether warnings should be captured by a
     |  custom implementation of warnings.showwarning() and be appended to a list
     |  returned by the context manager. Otherwise None is returned by the context
     |  manager. The objects appended to the list are arguments whose attributes
     |  mirror the arguments to showwarning().
     |
     |  The 'module' argument is to specify an alternative module to the module
     |  named 'warnings' and imported under that name. This argument is only useful
     |  when testing the warnings module itself.
     |
     |  If the 'action' argument is not None, the remaining arguments are passed
     |  to warnings.simplefilter() as if it were called immediately on entering the
     |  context.
     |
     |  Methods defined here:
     |
     |  __enter__(self)
     |
     |  __exit__(self, *exc_info)
     |
     |  __init__(self, *, record=False, module=None, action=None, category=<class 'Warning'>, lineno=0, append=False)
     |      Specify whether to record warnings and if an alternative module
     |      should be used other than sys.modules['warnings'].
     |
     |      For compatibility with Python 3.0, please consider all arguments to be
     |      keyword-only.
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

FUNCTIONS
    filterwarnings(action, message='', category=<class 'Warning'>, module='', lineno=0, append=False)
        Insert an entry into the list of warnings filters (at the front).

        'action' -- one of "error", "ignore", "always", "default", "module",
                    or "once"
        'message' -- a regex that the warning message must match
        'category' -- a class that the warning must be a subclass of
        'module' -- a regex that the module name must match
        'lineno' -- an integer line number, 0 matches all warnings
        'append' -- if true, append to the list of filters

    formatwarning(message, category, filename, lineno, line=None)
        Function to format a warning the standard way.

    resetwarnings()
        Clear the list of warning filters, so that no filters are active.

    showwarning(message, category, filename, lineno, file=None, line=None)
        Hook to write a warning to a file; replace if you like.

    simplefilter(action, category=<class 'Warning'>, lineno=0, append=False)
        Insert a simple entry into the list of warnings filters (at the front).

        A simple filter matches all modules and messages.
        'action' -- one of "error", "ignore", "always", "default", "module",
                    or "once"
        'category' -- a class that the warning must be a subclass of
        'lineno' -- an integer line number, 0 matches all warnings
        'append' -- if true, append to the list of filters

    warn(...)
        Issue a warning, or maybe ignore it or raise an exception.

        message
          Text of the warning message.
        category
          The Warning category subclass. Defaults to UserWarning.
        stacklevel
          How far up the call stack to make this warning appear. A value of 2 for
          example attributes the warning to the caller of the code calling warn().
        source
          If supplied, the destroyed object which emitted a ResourceWarning
        skip_file_prefixes
          An optional tuple of module filename prefixes indicating frames to skip
          during stacklevel computations for stack frame attribution.

    warn_explicit(...)
        Issue a warning, or maybe ignore it or raise an exception.

DATA
    __all__ = ['warn', 'warn_explicit', 'showwarning', 'formatwarning', 'f...

FILE
    c:\users\youse\appdata\local\programs\python\python312\lib\warnings.py