# Source: https://beartype.readthedocs.io/en/latest/pep/

Tip

💗 **Upbear us** at [GitHub Sponsors](https://github.com/sponsors/leycec) and SonarQube Advanced Security
(Tidelift). **Follow us** [on Bluesky](https://leycec.bsky.social). **Friendzone us** [at Zulip](https://beartype.zulipchat.com).
Your generous support is our quality assurance. 💗

# Features[¶](#features)

Beartype complies with vast swaths of Python’s [`typing`](https://docs.python.org/3/library/typing.html#module-typing) landscape and
lint-filled laundry list of [Python Enhancement Proposals (PEPs)](https://peps.python.org) –
but nobody’s perfect. Not even the hulking form of beartype does everything.
&lt;/audience_gasps&gt;
Let’s chart exactly *what* beartype complies with and *when* beartype first did
so. Introducing… Beartype’s **feature matrix of bloated doom!** It will bore
you into stunned disbelief that somebody typed all this. [[1]](#rsi)

category

feature

partial support

full support

**Python**

3.5

—

**0.1.0**—**0.3.0**

3.6

—

**0.1.0**—**0.10.4**

3.7

—

**0.1.0**—**0.15.0**

3.8

—

**0.1.0**—**0.19.0**

3.9

—

**0.3.2**—**0.22.0**

3.10

—

**0.7.0**—*current*

3.11

—

**0.12.0**—*current*

3.12

—

**0.17.0**—*current*

3.13

—

**0.19.0**—*current*

3.14

—

**0.22.0**—*current*

**PEP**

[**342**](https://peps.python.org/pep-0342/)

*none*

**0.22.8**—*current*

**PEP**

[**362**](https://peps.python.org/pep-0362/)

*none*

*none*

**PEP**

[**380**](https://peps.python.org/pep-0380/)

*none*

**0.22.8**—*current*

[**435**](https://peps.python.org/pep-0435/)

**0.16.0**—*current*

*none*

[**440**](https://peps.python.org/pep-0440/)

**0.1.0**—*current*

*none*

[**484**](https://peps.python.org/pep-0484/)

**0.2.0**—*current*

*none*

[**517**](https://peps.python.org/pep-0517/)

—

**0.19.0**—*current*

[**518**](https://peps.python.org/pep-0518/)

—

**0.19.0**—*current*

**PEP**

[**525**](https://peps.python.org/pep-0525/)

*none*

**0.22.7**—*current*

[**526**](https://peps.python.org/pep-0526/)

—

**0.15.0**—*current*

[**544**](https://peps.python.org/pep-0544/)

—

**0.4.0**—*current*

[**557**](https://peps.python.org/pep-0557/)

**0.10.0**—*current*

*none*

[**560**](https://peps.python.org/pep-0560/)

—

**0.4.0**—*current*

[**561**](https://peps.python.org/pep-0561/)

—

**0.6.0**—*current*

[**563**](https://peps.python.org/pep-0563/)

—

**0.7.0**—*current*

[**570**](https://peps.python.org/pep-0570/)

—

**0.10.0**—*current*

[**572**](https://peps.python.org/pep-0572/)

—

**0.4.0**—*current*

[**585**](https://peps.python.org/pep-0585/)

—

**0.5.0**—*current*

[**586**](https://peps.python.org/pep-0586/)

—

**0.7.0**—*current*

[**589**](https://peps.python.org/pep-0589/)

**0.9.0**—*current*

*none*

[**591**](https://peps.python.org/pep-0591/)

**0.13.0**—*current*

*none*

[**593**](https://peps.python.org/pep-0593/)

—

**0.4.0**—*current*

[**604**](https://peps.python.org/pep-0604/)

—

**0.10.0**—*current*

[**612**](https://peps.python.org/pep-0612/)

**0.19.0**—*current*

*none*

[**613**](https://peps.python.org/pep-0613/)

*none*

**0.18.0**—*current*

[**621**](https://peps.python.org/pep-0621/)

—

**0.19.0**—*current*

[**646**](https://peps.python.org/pep-0646/)

**0.22.0**—*current*

*none*

[**647**](https://peps.python.org/pep-0647/)

—

**0.13.0**—*current*

[**649**](https://peps.python.org/pep-0649/)

*none*

**0.22.0**—*current*

[**663**](https://peps.python.org/pep-0663/)

**0.16.0**—*current*

*none*

[**673**](https://peps.python.org/pep-0673/)

—

**0.14.0**—*current*

[**675**](https://peps.python.org/pep-0675/)

**0.14.0**—*current*

*none*

[**681**](https://peps.python.org/pep-0681/)

*none*

*none*

[**688**](https://peps.python.org/pep-0688/)

—

**0.1.0**—*current*

[**692**](https://peps.python.org/pep-0692/)

**0.19.0**—*current*

*none*

[**695**](https://peps.python.org/pep-0695/)

—

**0.21.0**—*current*

[**696**](https://peps.python.org/pep-0696/)

*none*

**0.22.0**—*current*

[**698**](https://peps.python.org/pep-0698/)

*none*

*none*

[**705**](https://peps.python.org/pep-0705/)

*none*

*none*

[**742**](https://peps.python.org/pep-0742/)

—

**0.20.0**—*current*

[**747**](https://peps.python.org/pep-0747/)

*none*

*none*

[**749**](https://peps.python.org/pep-0749/)

*none*

**0.22.0**—*current*

[**3102**](https://peps.python.org/pep-3102/)

—

**0.1.0**—*current*

[**3119**](https://peps.python.org/pep-3119/)

—

**0.9.0**—*current*

[**3141**](https://peps.python.org/pep-3141/)

—

**0.1.0**—*current*

**packaging**

[PyPI](https://pypi.org/project/beartype)

—

**0.1.0**—*current*

[Anaconda](https://anaconda.org/conda-forge/beartype)

—

**0.1.0**—*current*

[Arch Linux](https://aur.archlinux.org/packages/python-beartype)

—

**0.12.0**—*current*

[Gentoo Linux](https://packages.gentoo.org/packages/dev-python/beartype)

—

**0.2.0**—*current*

[macOS Homebrew](https://github.com/beartype/homebrew-beartype)

—

**0.5.1**—*current*

[macOS MacPorts](https://ports.macports.org/port/py-beartype)

—

**0.5.1**—*current*

**decoratable**

classes

—

**0.11.0**—*current*

coroutines

—

**0.9.0**—*current*

dataclasses

—

**0.10.0**—*current*

enumerations

**0.16.0**—*current*

*none*

functions

—

**0.1.0**—*current*

generators (asynchronous)

—

**0.9.0**—*current*

generators (synchronous)

—

**0.1.0**—*current*

methods

—

**0.1.0**—*current*

pseudo-functions (`__call__()`)

—

**0.13.0**—*current*

**hints**

[covariant](https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science))

—

**0.1.0**—*current*

[contravariant](https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science))

*none*

*none*

absolute forward references

—

**0.14.0**—*current*

[relative forward references](https://peps.python.org/pep-0484/#forward-references)

—

**0.14.0**—*current*

subscriptable forward references

—

**0.16.0**—*current*

[tuple unions](../eli5/#eli5-tuple-union)

—

**0.1.0**—*current*

`type` [**alias statements**](https://peps.python.org/pep-0695/)

—

**0.21.0**—*current*

**parameters**

optional

—

**0.18.0**—*current*

keyword-only

—

**0.1.0**—*current*

positional-only

—

**0.10.0**—*current*

variadic keyword

—

**0.19.0**—*current*

variadic positional

—

**0.1.0**—*current*

**plugin APIs**

`__instancecheck_str__`

—

**0.17.0**—*current*

**shell variables**

[${BEARTYPE_IS_COLOR}](../api_decor/#api-decor-beartype-is-color)

—

**0.16.0**—*current*

**static checkers**

[mypy](http://mypy-lang.org)

—

**0.6.0**—*current*

[pyright](https://github.com/Microsoft/pyright)

—

**0.11.0**—*current*

[pytype](https://github.com/google/pytype)

*none*

*none*

[Pyre](https://pyre-check.org)

*none*

*none*

[`beartype`](../api_decor/#module-beartype)

[`beartype()`](../api_decor/#beartype.beartype)

—

**0.1.0**—*current*

[`BeartypeConf`](../api_decor/#beartype.BeartypeConf)

—

**0.10.0**—*current*

[`BeartypeStrategy`](../api_decor/#beartype.BeartypeStrategy)

—

**0.10.0**—*current*

beartype.abby

die_if_unbearable

—

**0.10.0**—**0.10.4**

is_bearable

—

**0.10.0**—**0.10.4**

[`beartype.claw`](../api_claw/#module-beartype.claw)

[`beartype_all()`](../api_claw/#beartype.claw.beartype_all)

—

**0.15.0**—*current*

[`beartype_package()`](../api_claw/#beartype.claw.beartype_package)

—

**0.15.0**—*current*

[`beartype_packages()`](../api_claw/#beartype.claw.beartype_packages)

—

**0.15.0**—*current*

[`beartype_this_package()`](../api_claw/#beartype.claw.beartype_this_package)

—

**0.15.0**—*current*

`beartyping()`

—

**0.15.0**—*current*

`beartype.bite`

`infer_hint()`

—

**0.22.0**—*current*

[`beartype.door`](../api_door/#module-beartype.door)

[`TypeHint`](../api_door/#beartype.door.TypeHint)

—

**0.11.0**—*current*

`AnnotatedTypeHint`

—

**0.11.0**—*current*

`AnyTypeHint`

—

**0.20.0**—*current*

`CallableTypeHint`

—

**0.11.0**—*current*

`GenericTypeHint`

—

**0.20.0**—*current*

`LiteralTypeHint`

—

**0.11.0**—*current*

`NewTypeTypeHint`

—

**0.11.0**—*current*

`TupleFixedTypeHint`

—

**0.19.0**—*current*

`TupleVariableTypeHint`

—

**0.19.0**—*current*

`TypeVarTypeHint`

—

**0.11.0**—*current*

`UnionTypeHint`

—

**0.11.0**—*current*

[`die_if_unbearable()`](../api_door/#beartype.door.die_if_unbearable)

—

**0.11.0**—*current*

`infer_hint()`

—

**0.19.0**—**0.21.0**

[`is_bearable()`](../api_door/#beartype.door.is_bearable)

—

**0.11.0**—*current*

[`is_subhint()`](../api_door/#beartype.door.is_subhint)

—

**0.11.0**—*current*

`beartype.peps`

`resolve_pep563()`

—

**0.11.0**—*current*

`beartype.typing`

*all*

—

**0.10.0**—*current*

[`beartype.vale`](../api_vale/#module-beartype.vale)

[`Is`](../api_vale/#beartype.vale.Is)

—

**0.7.0**—*current*

[`IsAttr`](../api_vale/#beartype.vale.IsAttr)

—

**0.7.0**—*current*

[`IsEqual`](../api_vale/#beartype.vale.IsEqual)

—

**0.7.0**—*current*

[`IsInstance`](../api_vale/#beartype.vale.IsInstance)

—

**0.10.0**—*current*

[`IsSubclass`](../api_vale/#beartype.vale.IsSubclass)

—

**0.9.0**—*current*

[builtins](https://docs.python.org/3/library/stdtypes.html)

[`None`](https://docs.python.org/3/library/constants.html#None)

—

**0.6.0**—*current*

[`NotImplemented`](https://docs.python.org/3/library/constants.html#NotImplemented)

—

**0.7.1**—*current*

[`dict`](https://docs.python.org/3/library/stdtypes.html#dict)

—

**0.18.0**—*current*

[`frozenset`](https://docs.python.org/3/library/stdtypes.html#frozenset)

—

**0.19.0**—*current*

[`list`](https://docs.python.org/3/library/stdtypes.html#list)

—

**0.5.0**—*current*

[`set`](https://docs.python.org/3/library/stdtypes.html#set)

—

**0.19.0**—*current*

[`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple)

—

**0.5.0**—*current*

[`type`](https://docs.python.org/3/library/functions.html#type)

—

**0.9.0**—*current*

[click](https://click.palletsprojects.com)

*all*

—

**0.20.0**—*current*

[`collections`](https://docs.python.org/3/library/collections.html#module-collections)

[`ChainMap`](https://docs.python.org/3/library/collections.html#collections.ChainMap)

—

**0.19.0**—*current*

[`Counter`](https://docs.python.org/3/library/collections.html#collections.Counter)

—

**0.19.0**—*current*

[`OrderedDict`](https://docs.python.org/3/library/collections.html#collections.OrderedDict)

—

**0.18.0**—*current*

[`defaultdict`](https://docs.python.org/3/library/collections.html#collections.defaultdict)

—

**0.18.0**—*current*

[`deque`](https://docs.python.org/3/library/collections.html#collections.deque)

—

**0.19.0**—*current*

[celery.Celery](https://docs.celeryq.dev/en/stable/reference/celery.html#celery.Celery)

[&#64;task](https://docs.celeryq.dev/en/stable/userguide/tasks.html)

–

**0.22.0**—*current*

[`collections.abc`](https://docs.python.org/3/library/collections.abc.html#module-collections.abc)

[`AsyncGenerator`](https://docs.python.org/3/library/collections.abc.html#collections.abc.AsyncGenerator)

**0.5.0**—*current*

*none*

[`AsyncIterable`](https://docs.python.org/3/library/collections.abc.html#collections.abc.AsyncIterable)

**0.5.0**—*current*

*none*

[`AsyncIterator`](https://docs.python.org/3/library/collections.abc.html#collections.abc.AsyncIterator)

**0.5.0**—*current*

*none*

[`Awaitable`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Awaitable)

**0.5.0**—*current*

*none*

[`Buffer`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Buffer)

—

**0.1.0**—*current*

[`ByteString`](https://docs.python.org/3/library/collections.abc.html#collections.abc.ByteString)

—

**0.5.0**—*current*

[`Callable`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable)

**0.5.0**—*current*

*none*

[`Collection`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Collection)

–

**0.19.0**—*current*

[`Container`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Container)

—

**0.20.0**—*current*

[`Coroutine`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Coroutine)

**0.9.0**—*current*

*none*

[`Generator`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Generator)

**0.5.0**—*current*

*none*

[`ItemsView`](https://docs.python.org/3/library/collections.abc.html#collections.abc.ItemsView)

—

**0.19.0**—*current*

[`Iterable`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Iterable)

—

**0.20.0**—*current*

[`Iterator`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Iterator)

**0.5.0**—*current*

*none*

[`KeysView`](https://docs.python.org/3/library/collections.abc.html#collections.abc.KeysView)

–

**0.19.0**—*current*

[`Mapping`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Mapping)

–

**0.18.0**—*current*

[`MappingView`](https://docs.python.org/3/library/collections.abc.html#collections.abc.MappingView)

**0.5.0**—*current*

*none*

[`MutableMapping`](https://docs.python.org/3/library/collections.abc.html#collections.abc.MutableMapping)

–

**0.18.0**—*current*

[`MutableSequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.MutableSequence)

—

**0.5.0**—*current*

[`MutableSet`](https://docs.python.org/3/library/collections.abc.html#collections.abc.MutableSet)

—

**0.19.0**—*current*

[`Reversible`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Reversible)

—

**0.20.0**—*current*

[`Sequence`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence)

—

**0.5.0**—*current*

[`Set`](https://docs.python.org/3/library/collections.abc.html#collections.abc.Set)

—

**0.19.0**—*current*

[`ValuesView`](https://docs.python.org/3/library/collections.abc.html#collections.abc.ValuesView)

—

**0.19.0**—*current*

[`contextlib`](https://docs.python.org/3/library/contextlib.html#module-contextlib)

[`AbstractAsyncContextManager`](https://docs.python.org/3/library/contextlib.html#contextlib.AbstractAsyncContextManager)

**0.5.0**—*current*

*none*

[`AbstractContextManager`](https://docs.python.org/3/library/contextlib.html#contextlib.AbstractContextManager)

**0.5.0**—*current*

*none*

[`asynccontextmanager`](https://docs.python.org/3/library/contextlib.html#contextlib.asynccontextmanager)

—

**0.20.0**—*current*

[`contextmanager`](https://docs.python.org/3/library/contextlib.html#contextlib.contextmanager)

—

**0.15.0**—*current*

[`dataclasses`](https://docs.python.org/3/library/dataclasses.html#module-dataclasses)

[`InitVar`](https://docs.python.org/3/library/dataclasses.html#dataclasses.InitVar)

—

**0.10.0**—*current*

[`dataclass`](https://docs.python.org/3/library/dataclasses.html#dataclasses.dataclass)

**0.10.0**—*current*

*none*

[`enum`](https://docs.python.org/3/library/enum.html#module-enum)

[`Enum`](https://docs.python.org/3/library/enum.html#enum.Enum)

**0.16.0**—*current*

*none*

[`StrEnum`](https://docs.python.org/3/library/enum.html#enum.StrEnum)

**0.16.0**—*current*

*none*

[equinox](https://docs.kidger.site/equinox)

[Module](https://docs.kidger.site/equinox/api/module/module)

—

**0.17.0**—**0.19.0**

[&#64;filter_jit](https://docs.kidger.site/equinox/api/transformations/#equinox.filter_jit)

—

**0.19.0**—*current*

[gradio](https://www.gradio.app)

*all*

–

**0.22.7**—*current*

[inspect](https://docs.python.org/3/library/inspect.html)

[isasyncgenfunction](https://docs.python.org/3/library/inspect.html#inspect.isasyncgenfunction)

–

**0.22.7**—*current*

[isgeneratorfunction](https://docs.python.org/3/library/inspect.html#inspect.isgeneratorfunction)

–

**0.22.6**—*current*

[jax](https://jax.readthedocs.io)

[&#64;jit](https://jax.readthedocs.io/en/latest/_autosummary/jax.jit.html#jax.jit)

—

**0.19.0**—*current*

[jaxtyping](https://github.com/google/jaxtyping)

[&#64;jaxtyped](https://docs.kidger.site/jaxtyping/api/runtime-type-checking/#jaxtyping.jaxtyped)

—

**0.22.0**—*current*

[langchain](https://www.langchain.com)

*most*

**0.20.0**—*current*

*none*

[langchain_core.runnables](https://python.langchain.com/api_reference/core/runnables.html)

[&#64;chain](https://python.langchain.com/api_reference/core/runnables/langchain_core.runnables.base.chain.html)

–

**0.22.0**—*current*

[`functools`](https://docs.python.org/3/library/functools.html#module-functools)

[`lru_cache`](https://docs.python.org/3/library/functools.html#functools.lru_cache)

—

**0.15.0**—*current*

[nuitka](https://nuitka.net)

*all*

—

**0.12.0**—*current*

[numba](https://numba.pydata.org)

[&#64;njit](https://numba.readthedocs.io/en/stable/user/jit.html)

—

**0.19.0**—*current*

[nptyping](https://github.com/ramonhagenaars/nptyping)

*all*

—

**0.17.0**—*current*

[numpy.typing](https://numpy.org/devdocs/reference/typing.html)

[numpy.typing.NDArray](https://numpy.org/devdocs/reference/typing.html#ndarray)

—

**0.8.0**—*current*

[`os`](https://docs.python.org/3/library/os.html#module-os)

[`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike)

**0.17.0**—*current*

*none*

[PyInstaller](https://pyinstaller.org)

*all*

—

**0.22.9**—*current*

[pandera](https://pandera.readthedocs.io)

*all*

—

**0.13.0**—*current*

[pydantic](https://docs.pydantic.dev)

*all*

**0.20.0**—*current*

*none*

[`re`](https://docs.python.org/3/library/re.html#module-re)

[`Match`](https://docs.python.org/3/library/re.html#re.Match)

**0.5.0**—*current*

*none*

[`Pattern`](https://docs.python.org/3/library/re.html#re.Pattern)

**0.5.0**—*current*

*none*

[redis](https://redis.readthedocs.io)

[redis.Redis](https://redis.readthedocs.io/en/stable/connections.html#redis.Redis)

—

**0.22.3**—*current*

[rich_click](https://ewels.github.io/rich-click)

*all*

—

**0.20.1**—*current*

[sphinx](https://www.sphinx-doc.org)

[sphinx.ext.autodoc](https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html)

—

**0.9.0**—*current*

[`typing`](https://docs.python.org/3/library/typing.html#module-typing)

[`AbstractSet`](https://docs.python.org/3/library/typing.html#typing.AbstractSet)

—

**0.19.0**—*current*

[`Annotated`](https://docs.python.org/3/library/typing.html#typing.Annotated)

—

**0.4.0**—*current*

[`Any`](https://docs.python.org/3/library/typing.html#typing.Any)

—

**0.2.0**—*current*

[`AnyStr`](https://docs.python.org/3/library/typing.html#typing.AnyStr)

**0.4.0**—*current*

*none*

[`AsyncContextManager`](https://docs.python.org/3/library/typing.html#typing.AsyncContextManager)

**0.4.0**—*current*

*none*

[`AsyncGenerator`](https://docs.python.org/3/library/typing.html#typing.AsyncGenerator)

**0.2.0**—*current*

*none*

[`AsyncIterable`](https://docs.python.org/3/library/typing.html#typing.AsyncIterable)

**0.2.0**—*current*

*none*

[`AsyncIterator`](https://docs.python.org/3/library/typing.html#typing.AsyncIterator)

**0.2.0**—*current*

*none*

[`Awaitable`](https://docs.python.org/3/library/typing.html#typing.Awaitable)

**0.2.0**—*current*

*none*

[`BinaryIO`](https://docs.python.org/3/library/typing.html#typing.BinaryIO)

—

**0.10.0**—*current*

[`ByteString`](https://docs.python.org/3/library/typing.html#typing.ByteString)

—

**0.2.0**—*current*

[`Callable`](https://docs.python.org/3/library/typing.html#typing.Callable)

**0.2.0**—*current*

*none*

[`ChainMap`](https://docs.python.org/3/library/typing.html#typing.ChainMap)

—

**0.19.0**—*current*

[`ClassVar`](https://docs.python.org/3/library/typing.html#typing.ClassVar)

*none*

*none*

[`Collection`](https://docs.python.org/3/library/typing.html#typing.Collection)

—

**0.19.0**—*current*

[`Concatenate`](https://docs.python.org/3/library/typing.html#typing.Concatenate)

*none*

*none*

[`Container`](https://docs.python.org/3/library/typing.html#typing.Container)

—

**0.20.0**—*current*

[`ContextManager`](https://docs.python.org/3/library/typing.html#typing.ContextManager)

**0.4.0**—*current*

*none*

[`Coroutine`](https://docs.python.org/3/library/typing.html#typing.Coroutine)

**0.9.0**—*current*

*none*

[`Counter`](https://docs.python.org/3/library/typing.html#typing.Counter)

—

**0.19.0**—*current**

[`DefaultDict`](https://docs.python.org/3/library/typing.html#typing.DefaultDict)

—

**0.18.0**—*current*

[`Deque`](https://docs.python.org/3/library/typing.html#typing.Deque)

—

**0.19.0**—*current*

[`Dict`](https://docs.python.org/3/library/typing.html#typing.Dict)

—

**0.18.0**—*current**

[`Final`](https://docs.python.org/3/library/typing.html#typing.Final)

**0.13.0**—*current*

*none*

[`ForwardRef`](https://docs.python.org/3/library/typing.html#typing.ForwardRef)

—

**0.16.0**—*current*

[`FrozenSet`](https://docs.python.org/3/library/typing.html#typing.FrozenSet)

—

**0.19.0**—*current*

[`Generator`](https://docs.python.org/3/library/typing.html#typing.Generator)

**0.2.0**—*current*

*none*

[`Generic`](https://docs.python.org/3/library/typing.html#typing.Generic)

—

**0.4.0**—*current*

[`Hashable`](https://docs.python.org/3/library/typing.html#typing.Hashable)

**0.2.0**—*current*

*none*

[`IO`](https://docs.python.org/3/library/typing.html#typing.IO)

—

**0.10.0**—*current*

[`ItemsView`](https://docs.python.org/3/library/typing.html#typing.ItemsView)

—

**0.19.0**—*current*

[`Iterable`](https://docs.python.org/3/library/typing.html#typing.Iterable)

—

**0.20.0**—*current*

[`Iterator`](https://docs.python.org/3/library/typing.html#typing.Iterator)

**0.2.0**—*current*

*none*

[`KeysView`](https://docs.python.org/3/library/typing.html#typing.KeysView)

—

**0.19.0**—*current*

[`List`](https://docs.python.org/3/library/typing.html#typing.List)

—

**0.3.0**—*current*

[`Literal`](https://docs.python.org/3/library/typing.html#typing.Literal)

—

**0.7.0**—*current*

[`LiteralString`](https://docs.python.org/3/library/typing.html#typing.LiteralString)

**0.14.0**—*current*

*none*

[`Mapping`](https://docs.python.org/3/library/typing.html#typing.Mapping)

–

**0.18.0**—*current**

[`MappingView`](https://docs.python.org/3/library/typing.html#typing.MappingView)

**0.2.0**—*current*

*none*

[`Match`](https://docs.python.org/3/library/typing.html#typing.Match)

**0.4.0**—*current*

*none*

[`MutableMapping`](https://docs.python.org/3/library/typing.html#typing.MutableMapping)

–

**0.18.0**—*current*

[`MutableSequence`](https://docs.python.org/3/library/typing.html#typing.MutableSequence)

—

**0.3.0**—*current*

[`MutableSet`](https://docs.python.org/3/library/typing.html#typing.MutableSet)

—

**0.19.0**—*current*

[`NamedTuple`](https://docs.python.org/3/library/typing.html#typing.NamedTuple)

—

**0.12.0**—*current*

[`NewType`](https://docs.python.org/3/library/typing.html#typing.NewType)

—

**0.4.0**—*current*

[`NoDefault`](https://docs.python.org/3/library/typing.html#typing.NoDefault)

—

**0.22.0**—*current*

[`NoReturn`](https://docs.python.org/3/library/typing.html#typing.NoReturn)

—

**0.4.0**—*current*

[`Optional`](https://docs.python.org/3/library/typing.html#typing.Optional)

—

**0.2.0**—*current*

[`OrderedDict`](https://docs.python.org/3/library/typing.html#typing.OrderedDict)

–

**0.18.0**—*current*

[`ParamSpec`](https://docs.python.org/3/library/typing.html#typing.ParamSpec)

*none*

*none*

[`ParamSpecArgs`](https://docs.python.org/3/library/typing.html#typing.ParamSpecArgs)

**0.19.0**—*current*

*none*

[`ParamSpecKwargs`](https://docs.python.org/3/library/typing.html#typing.ParamSpecKwargs)

**0.19.0**—*current*

*none*

[`Pattern`](https://docs.python.org/3/library/typing.html#typing.Pattern)

**0.4.0**—*current*

*none*

[`Protocol`](https://docs.python.org/3/library/typing.html#typing.Protocol)

—

**0.4.0**—*current*

[`ReadOnly`](https://docs.python.org/3/library/typing.html#typing.ReadOnly)

*none*

*none*

[`Reversible`](https://docs.python.org/3/library/typing.html#typing.Reversible)

—

**0.20.0**—*current*

[`Self`](https://docs.python.org/3/library/typing.html#typing.Self)

—

**0.14.0**—*current*

[`Sequence`](https://docs.python.org/3/library/typing.html#typing.Sequence)

—

**0.3.0**—*current*

[`Set`](https://docs.python.org/3/library/typing.html#typing.Set)

—

**0.190**—*current*

[`Sized`](https://docs.python.org/3/library/typing.html#typing.Sized)

—

**0.2.0**—*current*

[`SupportsAbs`](https://docs.python.org/3/library/typing.html#typing.SupportsAbs)

—

**0.4.0**—*current*

[`SupportsBytes`](https://docs.python.org/3/library/typing.html#typing.SupportsBytes)

—

**0.4.0**—*current*

[`SupportsComplex`](https://docs.python.org/3/library/typing.html#typing.SupportsComplex)

—

**0.4.0**—*current*

[`SupportsFloat`](https://docs.python.org/3/library/typing.html#typing.SupportsFloat)

—

**0.4.0**—*current*

[`SupportsIndex`](https://docs.python.org/3/library/typing.html#typing.SupportsIndex)

—

**0.4.0**—*current*

[`SupportsInt`](https://docs.python.org/3/library/typing.html#typing.SupportsInt)

—

**0.4.0**—*current*

[`SupportsRound`](https://docs.python.org/3/library/typing.html#typing.SupportsRound)

—

**0.4.0**—*current*

[`Text`](https://docs.python.org/3/library/typing.html#typing.Text)

—

**0.1.0**—*current*

[`TextIO`](https://docs.python.org/3/library/typing.html#typing.TextIO)

—

**0.10.0**—*current*

[`Tuple`](https://docs.python.org/3/library/typing.html#typing.Tuple)

—

**0.4.0**—*current*

[`Type`](https://docs.python.org/3/library/typing.html#typing.Type)

—

**0.9.0**—*current*

[`TypeAlias`](https://docs.python.org/3/library/typing.html#typing.TypeAlias)

—

**0.18.0**—*current*

[`TypeGuard`](https://docs.python.org/3/library/typing.html#typing.TypeGuard)

—

**0.13.0**—*current*

[`TypeIs`](https://docs.python.org/3/library/typing.html#typing.TypeIs)

—

**0.20.0**—*current*

[`TypedDict`](https://docs.python.org/3/library/typing.html#typing.TypedDict)

**0.9.0**—*current*

*none*

[`TypeVar`](https://docs.python.org/3/library/typing.html#typing.TypeVar)

**0.4.0**—*current*

*none*

[`TypeVarTuple`](https://docs.python.org/3/library/typing.html#typing.TypeVarTuple)

**0.19.0**—*current*

*none*

[`Union`](https://docs.python.org/3/library/typing.html#typing.Union)

—

**0.2.0**—*current*

[`Unpack`](https://docs.python.org/3/library/typing.html#typing.Unpack)

**0.19.0**—*current*

*none*

[`ValuesView`](https://docs.python.org/3/library/typing.html#typing.ValuesView)

—

**0.19.0**—*current*

[`TYPE_CHECKING`](https://docs.python.org/3/library/typing.html#typing.TYPE_CHECKING)

—

**0.5.0**—*current*

[`final`](https://docs.python.org/3/library/typing.html#typing.final)

*none*

*none*

[`no_type_check`](https://docs.python.org/3/library/typing.html#typing.no_type_check)

—

**0.5.0**—*current*

[`override`](https://docs.python.org/3/library/typing.html#typing.override)

*none*

*none*

[typing_extensions](https://pypi.org/project/typing-extensions)

*all attributes*

—

**0.8.0**—*current*

[xarray](https://docs.xarray.dev)

*all*

**0.20.0**—*current*

*none*

[`weakref`](https://docs.python.org/3/library/weakref.html#module-weakref)

[`ref`](https://docs.python.org/3/library/weakref.html#weakref.ref)

**0.17.0**—*current*

*none*

[[1](#id1)]
They now suffer crippling RSI so that you may appear knowledgeable
before colleagues.

 
 
 
 
 
 
 **
 
 previous

 Ask a Bear Bro Anything (ABBA)

 
 
 
 
 next

 Code

 
 **