Beartype – fast runtime type checking for Python

Beartype is a Python library that validates type annotations while a program is executing. Unlike conventional static type checkers, which examine source code without running it, Beartype can detect mismatches between declared types and the actual objects encountered during execution.

The library is intended for situations where runtime checking provides additional confidence, such as validating inputs from dynamically typed components or detecting incorrect return values during testing. It can be introduced into selected functions or applied across larger portions of an application.

Beartype concentrates on keeping the overhead of type checking low. Its checks complement conventional static analysis rather than replace it, particularly when a program interacts with untyped libraries, external data or other components whose behaviour cannot be fully determined ahead of time.

This is free and open source software.

Key Features

  • Provides the @beartype decorator for checking annotated function parameters and return values during execution.
  • Supports import hooks for applying type checking automatically across selected packages.
  • Understands standard Python type annotations, including unions, generic containers and annotated types.
  • Provides custom validators through typing.Annotated and the beartype.vale API.
  • Offers procedural APIs for checking arbitrary objects against specified type hints.
  • Generates detailed exceptions identifying values that violate their declared types.
  • Supports configurable checking strategies for container elements, balancing performance against validation coverage.
  • Generates specialised checking logic to reduce the overhead of repeated runtime validation.

Website: github.com/beartype/beartype
Support:
Developer: Beartype authors
License: MIT License

Beartype is written in Python. Learn Python with our recommended free books and free tutorials.


Related Software

Python Linters
RuffExtremely fast Python linter and code formatter
tyFast Python type checker
MypyStatic type checker for Python
BanditFind security issues in Python code
PylintStatic code analyser
wemake-python-styleguideFlake8 plugin
TachEnforces module dependencies and architectural boundaries
pycodestyleCheck Python code against style conventions in PEP 8
PyflakesChecks Python source files for errors
VultureFind dead code
PyreflyFast type checker and language server
Flake8Wrapper around PyFlakes and pycodestyle
BeartypeNear-real-time hybrid runtime-static type-checker
RadonComputes various metrics from Python code
PyrightFull-featured, standards-compliant static type checker
cython-lintLint Cython files
basedpyrightFork of pyright
RefurbModernize Python codebases
PylamaCode audit tool for Python
ProspectorBrings together the functionality of other Python analysis tools
deptryCheck for dependency issues
FixitHighly configurable linting framework
complexipyMeasures cognitive complexity in Python code
ZubanHigh-performance Python type checker and language server
PyromaRates how well a Python project compiles
pydoclintPython docstring linter
AridFast duplicate code detection for Python projects

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our carefully curated directory of recommended free and open source software, covering every major software category.

The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more.

Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted