Tip

Feed the bear! The bear is rifling around in the refuse pile outside. <GitHub Sponsors_> You feel sadness, then trepidation.

BigData™

It's a big bear AAAAAAAAFTER all!
It's a big bear AAAAAAAAFTER all!
It's a big b——— *squelching sound, then blessed silence*

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—current

3.9

—

0.3.2—current

3.10

—

0.7.0—current

3.11

—

0.12.0—current

3.12

—

0.17.0—current

PEP

362

none

none

435

0.16.0—current

none

484

0.2.0—current

none

526

—

0.15.0—current

544

—

0.4.0—current

557

0.10.0—current

none

560

—

0.4.0—current

561

—

0.6.0—current

563

0.1.1—current

0.7.0—current

570

—

0.10.0—current

572

0.3.0—current

0.4.0—current

585

—

0.5.0—current

586

—

0.7.0—current

589

0.9.0—current

none

591

0.13.0—current

none

593

—

0.4.0—current

604

—

0.10.0—current

612

none

none

613

none

none

621

—

0.15.0—current

646

none

none

647

—

0.13.0—current

649

none

none

663

0.16.0—current

none

673

—

0.14.0—current

675

0.14.0—current

none

681

none

none

688

—

0.1.0—current

692

none

none

695

0.17.0—current

none

698

none

none

3102

—

0.1.0—current

3119

0.7.0—current

0.9.0—current

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

0.17.0—current

none

parameters

optional

—

0.11.0—current

keyword-only

—

0.1.0—current

positional-only

—

0.10.0—current

variadic keyword

none

none

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.door

TypeHint

—

0.11.0—current

AnnotatedTypeHint

—

0.11.0—current

CallableTypeHint

—

0.11.0—current

LiteralTypeHint

—

0.11.0—current

NewTypeTypeHint

—

0.11.0—current

TypeVarTypeHint

—

0.11.0—current

UnionTypeHint

—

0.11.0—current

die_if_unbearable()

—

0.11.0—current

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.5.0—current

none

frozenset

0.5.0—current

none

list

—

0.5.0—current

set

0.5.0—current

none

tuple

—

0.5.0—current

type

0.5.0—current

0.9.0—current

collections

ChainMap

0.5.0—current

none

Counter

0.5.0—current

none

OrderedDict

0.5.0—current

none

defaultdict

0.5.0—current

none

deque

0.5.0—current

none

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.5.0—current

none

Container

0.5.0—current

none

Coroutine

0.5.0—current

0.9.0—current

Generator

0.5.0—current

none

ItemsView

0.5.0—current

none

Iterable

0.5.0—current

none

Iterator

0.5.0—current

none

KeysView

0.5.0—current

none

Mapping

0.5.0—current

none

MappingView

0.5.0—current

none

MutableMapping

0.5.0—current

none

MutableSequence

—

0.5.0—current

MutableSet

0.5.0—current

none

Reversible

0.5.0—current

none

Sequence

—

0.5.0—current

Set

0.5.0—current

none

ValuesView

0.5.0—current

none

contextlib

AbstractAsyncContextManager

0.5.0—current

none

AbstractContextManager

0.5.0—current

none

contextmanager

—

0.15.0—current

dataclasses

InitVar

—

0.10.0—current

dataclass

0.10.0—current

none

enum

Enum

0.16.0—current

none

equinox

all

—

0.17.0—current

StrEnum

0.16.0—current

none

functools

lru_cache

—

0.15.0—current

nuitka

all

—

0.12.0—current

nptyping

all

—

0.17.0—current

numpy.typing

numpy.typing.NDArray

—

0.8.0—current

os

PathLike

0.17.0—current

none

pandera

all

0.13.0—current

—

re

Match

0.5.0—current

none

Pattern

0.5.0—current

none

sphinx

sphinx.ext.autodoc

—

0.9.0—current

typing

AbstractSet

0.2.0—current

none

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.4.0—current

0.10.0—current

ByteString

—

0.2.0—current

Callable

0.2.0—current

none

ChainMap

0.2.0—current

none

ClassVar

none

none

Collection

0.2.0—current

none

Concatenate

none

none

Container

0.2.0—current

none

ContextManager

0.4.0—current

none

Coroutine

0.2.0—current

0.9.0—current

Counter

0.2.0—current

none

DefaultDict

0.2.0—current

none

Deque

0.2.0—current

none

Dict

0.2.0—current

none

Final

0.13.0—current

none

ForwardRef

0.4.0—current

0.16.0—current

FrozenSet

0.2.0—current

none

Generator

0.2.0—current

none

Generic

—

0.4.0—current

Hashable

0.2.0—current

none

IO

0.4.0—current

0.10.0—current

ItemsView

0.2.0—current

none

Iterable

0.2.0—current

none

Iterator

0.2.0—current

none

KeysView

0.2.0—current

none

List

0.2.0—current

0.3.0—current

Literal

—

0.7.0—current

LiteralString

0.14.0—current

none

Mapping

0.2.0—current

none

MappingView

0.2.0—current

none

Match

0.4.0—current

none

MutableMapping

0.2.0—current

none

MutableSequence

0.2.0—current

0.3.0—current

MutableSet

0.2.0—current

none

NamedTuple

0.1.0—current

0.12.0—current

NewType

—

0.4.0—current

NoReturn

—

0.4.0—current

Optional

—

0.2.0—current

OrderedDict

0.2.0—current

none

ParamSpec

none

none

ParamSpecArgs

none

none

ParamSpecKwargs

none

none

Pattern

0.4.0—current

none

Protocol

—

0.4.0—current

Reversible

0.2.0—current

none

Self

—

0.14.0—current

Sequence

0.2.0—current

0.3.0—current

Set

0.2.0—current

none

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.4.0—current

0.10.0—current

Tuple

0.2.0—current

0.4.0—current

Type

0.2.0—current

0.9.0—current

TypeAliasType

none

none

TypeGuard

—

0.13.0—current

TypedDict

0.9.0—current

none

TypeVar

0.4.0—current

none

TypeVarTuple

none

none

Union

—

0.2.0—current

ValuesView

0.2.0—current

none

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

weakref

ref

0.17.0—current

none