Skip to content

Features

Beartype complies with vast swaths of Python's typing landscape and lint-filled laundry list of Python Enhancement Proposals (PEPs) – but nobody's perfect. Not even the hulking form of beartype does everything. \</audience_gasps>

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

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
3.15 — 0.23.0—current
PEP PEP 342 none 0.22.8—current
PEP PEP 362 none none
PEP PEP 380 none 0.22.8—current
PEP 435 0.16.0—current none
PEP 440 0.1.0—current none
PEP 484 0.2.0—current none
PEP 517 — 0.19.0—current
PEP 518 — 0.19.0—current
PEP PEP 525 none 0.22.7—current
PEP 526 — 0.15.0—current
PEP 544 — 0.4.0—current
PEP 557 0.10.0—current none
PEP 560 — 0.4.0—current
PEP 561 — 0.6.0—current
PEP 563 — 0.7.0—current
PEP 570 — 0.10.0—current
PEP 572 — 0.4.0—current
PEP 585 — 0.5.0—current
PEP 586 — 0.7.0—current
PEP 589 0.9.0—current none
PEP 591 0.13.0—current none
PEP 593 — 0.4.0—current
PEP 604 — 0.10.0—current
PEP 612 0.19.0—current none
PEP 613 none 0.18.0—current
PEP 621 — 0.19.0—current
PEP 646 0.22.0—current none
PEP 647 — 0.13.0—current
PEP 649 none 0.22.0—current
PEP 663 0.16.0—current none
PEP 673 — 0.14.0—current
PEP 675 0.14.0—current none
PEP 681 none none
PEP 688 — 0.1.0—current
PEP 692 0.19.0—current none
PEP 695 — 0.21.0—current
PEP 696 none 0.22.0—current
PEP 698 none none
PEP 702 none 0.23.0—current
PEP 705 none none
PEP 742 — 0.20.0—current
PEP 747 none none
PEP 749 none 0.22.0—current
PEP 3102 — 0.1.0—current
PEP 3119 — 0.9.0—current
PEP 3141 — 0.1.0—current
packaging PyPI — 0.1.0—current
Anaconda — 0.1.0—current
Arch Linux — 0.12.0—current
Gentoo Linux — 0.2.0—current
macOS Homebrew — 0.5.1—current
macOS MacPorts — 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 — 0.1.0—current
contravariant none none
absolute forward references — 0.14.0—current
relative forward references — 0.14.0—current
subscriptable forward references — 0.16.0—current
tuple unions — 0.1.0—current
type alias statements (PEP 695) — 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} — 0.16.0—current
static checkers mypy — 0.6.0—current
pyright — 0.11.0—current
pytype none none
Pyre none none
beartype beartype — 0.1.0—current
BeartypeConf — 0.10.0—current
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 beartype_all — 0.15.0—current
beartype_package — 0.15.0—current
beartype_packages — 0.15.0—current
beartype_this_package — 0.15.0—current
beartyping — 0.15.0—current
beartype.bite infer_hint — 0.22.0—current
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 — 0.11.0—current
infer_hint — 0.19.0—0.21.0
is_bearable — 0.11.0—current
is_subhint — 0.11.0—current
beartype.peps resolve_pep563 — 0.11.0—current
beartype.typing all — 0.10.0—current
beartype.vale Is — 0.7.0—current
IsAttr — 0.7.0—current
IsEqual — 0.7.0—current
IsInstance — 0.10.0—current
IsSubclass — 0.9.0—current
builtins None — 0.6.0—current
NotImplemented — 0.7.1—current
dict — 0.18.0—current
frozenset — 0.19.0—current
list — 0.5.0—current
set — 0.19.0—current
tuple — 0.5.0—current
type — 0.9.0—current
click all — 0.20.0—current
collections ChainMap — 0.19.0—current
Counter — 0.19.0—current
OrderedDict — 0.18.0—current
defaultdict — 0.18.0—current
deque — 0.19.0—current
celery.Celery @task – 0.22.0—current
collections.abc AsyncGenerator 0.5.0—current none
AsyncIterable 0.5.0—current none
AsyncIterator 0.5.0—current none
Awaitable 0.5.0—current none
Buffer — 0.1.0—current
ByteString — 0.5.0—current
Callable 0.5.0—current none
Collection – 0.19.0—current
Container — 0.20.0—current
Coroutine 0.9.0—current none
Generator 0.5.0—current none
ItemsView — 0.19.0—current
Iterable — 0.20.0—current
Iterator 0.5.0—current none
KeysView – 0.19.0—current
Mapping – 0.18.0—current
MappingView 0.5.0—current none
MutableMapping – 0.18.0—current
MutableSequence — 0.5.0—current
MutableSet — 0.19.0—current
Reversible — 0.20.0—current
Sequence — 0.5.0—current
Set — 0.19.0—current
ValuesView — 0.19.0—current
contextlib AbstractAsyncContextManager 0.5.0—current none
AbstractContextManager 0.5.0—current none
asynccontextmanager — 0.20.0—current
contextmanager — 0.15.0—current
dataclasses InitVar — 0.10.0—current
dataclass 0.10.0—current none
enum Enum 0.16.0—current none
StrEnum 0.16.0—current none
equinox Module — 0.17.0—0.19.0
@filter_jit — 0.19.0—current
gradio all – 0.22.7—current
inspect isasyncgenfunction – 0.22.7—current
isgeneratorfunction – 0.22.6—current
jax @jit — 0.19.0—current
jaxtyping @jaxtyped — 0.22.0—current
langchain most 0.20.0—current none
langchain_core.runnables @chain – 0.22.0—current
functools lru_cache — 0.15.0—current
nuitka all — 0.12.0—current
numba @njit — 0.19.0—current
nptyping all — 0.17.0—current
numpy.typing numpy.typing.NDArray — 0.8.0—current
os PathLike 0.17.0—current none
PyInstaller all — 0.22.9—current
pandera all — 0.13.0—current
pydantic all 0.20.0—current none
re Match 0.5.0—current none
Pattern 0.5.0—current none
redis redis.Redis — 0.22.3—current
rich_click all — 0.20.1—current
sphinx sphinx.ext.autodoc — 0.9.0—current
threading Lock — 0.23.0—current
RLock — 0.23.0—current
typing AbstractSet — 0.19.0—current
Annotated — 0.4.0—current
Any — 0.2.0—current
AnyStr 0.4.0—current none
AsyncContextManager 0.4.0—current none
AsyncGenerator 0.2.0—current none
AsyncIterable 0.2.0—current none
AsyncIterator 0.2.0—current none
Awaitable 0.2.0—current none
BinaryIO — 0.10.0—current
ByteString — 0.2.0—current
Callable 0.2.0—current none
ChainMap — 0.19.0—current
ClassVar none none
Collection — 0.19.0—current
Concatenate none none
Container — 0.20.0—current
ContextManager 0.4.0—current none
Coroutine 0.9.0—current none
Counter — 0.19.0—current*
DefaultDict — 0.18.0—current
Deque — 0.19.0—current
Dict — 0.18.0—current*
Final 0.13.0—current none
ForwardRef — 0.16.0—current
FrozenSet — 0.19.0—current
Generator 0.2.0—current none
Generic — 0.4.0—current
Hashable 0.2.0—current none
IO — 0.10.0—current
ItemsView — 0.19.0—current
Iterable — 0.20.0—current
Iterator 0.2.0—current none
KeysView — 0.19.0—current
List — 0.3.0—current
Literal — 0.7.0—current
LiteralString 0.14.0—current none
Mapping – 0.18.0—current*
MappingView 0.2.0—current none
Match 0.4.0—current none
MutableMapping – 0.18.0—current
MutableSequence — 0.3.0—current
MutableSet — 0.19.0—current
NamedTuple — 0.12.0—current
Never — 0.23.0—current
NewType — 0.4.0—current
NoDefault — 0.22.0—current
NoReturn — 0.4.0—current
Optional — 0.2.0—current
OrderedDict – 0.18.0—current
ParamSpec none none
ParamSpecArgs 0.19.0—current none
ParamSpecKwargs 0.19.0—current none
Pattern 0.4.0—current none
Protocol — 0.4.0—current
ReadOnly none none
Reversible — 0.20.0—current
Self — 0.14.0—current
Sequence — 0.3.0—current
Set — 0.190—current
Sized — 0.2.0—current
SupportsAbs — 0.4.0—current
SupportsBytes — 0.4.0—current
SupportsComplex — 0.4.0—current
SupportsFloat — 0.4.0—current
SupportsIndex — 0.4.0—current
SupportsInt — 0.4.0—current
SupportsRound — 0.4.0—current
Text — 0.1.0—current
TextIO — 0.10.0—current
Tuple — 0.4.0—current
Type — 0.9.0—current
TypeAlias — 0.18.0—current
TypeGuard — 0.13.0—current
TypeIs — 0.20.0—current
TypedDict 0.9.0—current none
TypeVar 0.4.0—current none
TypeVarTuple 0.19.0—current none
Union — 0.2.0—current
Unpack 0.19.0—current none
ValuesView — 0.19.0—current
TYPE_CHECKING — 0.5.0—current
final none none
no_type_check — 0.5.0—current
override none none
typing_extensions all attributes — 0.8.0—current
warnings deprecated — 0.23.0—current
xarray all 0.20.0—current none
weakref ref 0.17.0—current none

  1. They now suffer crippling RSI so that you may appear knowledgeable before colleagues.