{"id":13468268,"url":"https://github.com/beartype/beartype","last_synced_at":"2025-05-14T21:02:01.445Z","repository":{"id":38345072,"uuid":"252646465","full_name":"beartype/beartype","owner":"beartype","description":"Unbearably fast near-real-time hybrid runtime-static type-checking in pure Python.","archived":false,"fork":false,"pushed_at":"2025-05-07T04:11:33.000Z","size":12419,"stargazers_count":3005,"open_issues_count":92,"forks_count":61,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-05-07T20:23:22.684Z","etag":null,"topics":["python3","runtime-typechecking","static-typechecking"],"latest_commit_sha":null,"homepage":"https://beartype.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/beartype.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["leycec"]}},"created_at":"2020-04-03T06:06:22.000Z","updated_at":"2025-05-07T13:42:19.000Z","dependencies_parsed_at":"2024-01-02T09:35:37.149Z","dependency_job_id":"8ab76ddd-46f7-4d6d-a9aa-7ddf489ffa49","html_url":"https://github.com/beartype/beartype","commit_stats":{"total_commits":1387,"total_committers":24,"mean_commits":"57.791666666666664","dds":0.0353280461427542,"last_synced_commit":"891e1e05c28c846ea253948aebf31ce03725fc7c"},"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beartype","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254227603,"owners_count":22035667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python3","runtime-typechecking","static-typechecking"],"created_at":"2024-07-31T15:01:07.895Z","updated_at":"2025-05-14T21:02:01.364Z","avatar_url":"https://github.com/beartype.png","language":"Python","funding_links":["https://github.com/sponsors/leycec"],"categories":["Python","👀 Status: *lookin' awesome*","Containers \u0026 Language Extentions \u0026 Linting","Dynamic type checkers","Linters \u0026 Style Checkers"],"sub_categories":["Development","For Python"],"readme":".. # ------------------( LICENSE                             )------------------\n.. # Copyright (c) 2014-2025 Beartype authors.\n.. # See \"LICENSE\" for further details.\n.. #\n.. # ------------------( SEO                                 )------------------\n.. # Metadata converted into HTML-specific meta tags parsed by search engines.\n.. # Note that:\n.. # * The \"description\" should be no more than 300 characters and ideally no\n.. #   more than 150 characters, as search engines may silently truncate this\n.. #   description to 150 characters in edge cases.\n\n.. meta::\n   :description lang=en:\n     Beartype is an open-source pure-Python PEP-compliant constant-time runtime\n     type checker emphasizing efficiency and portability.\n\n.. # ------------------( SYNOPSIS                            )------------------\n\n=================\n|beartype-banner|\n=================\n\n|rtd-badge| |ci-badge| |codecov-badge|\n\n    ⚠\n\n    `Beartype documentation lives at ReadTheDocs (RTD) \u003cbeartype RTD_\u003e`__. It's\n    readable, structured, and soothing to the deep folds of your big galactic\n    brain. Open your mind to an ocean of mundane knowledge that will exhaust\n    you at work. Enter... **the Bearpedia:**\n\n        https://beartype.readthedocs.io\n\n    The document you are now reading was once a monolithic ~316Kb file known to\n    induce migraines in 22% of the whole devops population. For your safety,\n    that document no longer exists. This is how much beartype cares.\n\n**Beartype** is an `open-source \u003cbeartype license_\u003e`__ `pure-Python \u003cbeartype\npure_\u003e`__ `PEP-compliant \u003cbeartype PEPs_\u003e`__ `near-real-time \u003cbeartype FAQ_\u003e`__\n`hybrid runtime-static \u003cbeartype hybrid_\u003e`__ `third-generation \u003cbeartype\nthird_\u003e`__ `type checker \u003cbeartype ELI5_\u003e`__ emphasizing efficiency,\nusability, unsubstantiated jargon we just made up, and thrilling puns.\n\n.. #FIXME: Once we actually receive a sponsor at this tier, please remove this\n.. #placeholder as well as the icon links below. kthx\n.. #The `Bear Team \u003cbeartype organization_\u003e`__ gratefully thanks `our family of\n.. #breathtaking GitHub Sponsors \u003cbeartype sponsorship_\u003e`__:\n.. #\n.. #* **Your iconic URL here.** `Let us bestow you with eyeballs \u003cbeartype\n.. #  sponsorship_\u003e`__.\n.. #FIXME: Once we actually receive a sponsor at this tier, please remove this\n.. #placeholder as well as the icon links below. kthx\n.. #    |icon-for-glorious-sponsor|\n\n.. code-block:: bash\n\n   # Install beartype.\n   $ pip3 install beartype\n   # Edit the \"{your_package}.__init__\" submodule with your favourite IDE.\n   $ vim {your_package}/__init__.py      # \u003c-- so, i see that you too vim\n\n.. code-block:: python\n\n   from beartype.claw import beartype_this_package       # \u003c-- hype comes\n   beartype_this_package()                               # \u003c-- hype goes\n\nBeartype now implicitly type-checks *all* annotated classes, callables, and\nvariable assignments across *all* submodules of your package. Congrats. This day\nall bugs die.\n\nBut why stop at the burning tires in only *your* code? Your app depends on a\nsprawling ghetto of other packages, modules, and services. How riddled with\ninfectious diseases is *that* code? You're about to find out.\n\n.. code-block:: python\n\n   # ....................{ BIG BEAR                        }....................\n   # Warn about type hint violations in *OTHER* packages outside your control;\n   # only raise exceptions from violations in your package under your control.\n   # Again, at the very top of your \"{your_package}.__init__\" submodule:\n   from beartype import BeartypeConf                              # \u003c-- this isn't your fault\n   from beartype.claw import beartype_all, beartype_this_package  # \u003c-- you didn't sign up for this\n   beartype_this_package()                                        # \u003c-- raise exceptions in your code\n   beartype_all(conf=BeartypeConf(violation_type=UserWarning))     # \u003c-- emit warnings from other code\n\nBeartype now implicitly type-checks *all* annotated classes, callables, and\nvariable assignments across *all* submodules of *all* packages. When **your**\npackage violates type safety, beartype raises an exception. When any **other**\npackage violates type safety, beartype just emits a warning. The triumphal\nfanfare you hear is probably your userbase cheering. This is how the QA was won.\n\nBeartype also publishes a `plethora of APIs for fine-grained control over\ntype-checking \u003cbeartype APIs\u003e`. For those who are about to QA, beartype salutes\nyou. Would you like to know more?\n\n   # So let's do this.\n   $ python3\n\n.. code-block:: python\n\n   # ....................{ RAISE THE PAW                   }....................\n   # Manually enforce type hints across individual classes and callables.\n   # Do this only if you want a(nother) repetitive stress injury.\n\n   # Import the @beartype decorator.\n   \u003e\u003e\u003e from beartype import beartype      # \u003c-- eponymous import; it's eponymous\n\n   # Annotate @beartype-decorated classes and callables with type hints.\n   \u003e\u003e\u003e @beartype                          # \u003c-- you too will believe in magic\n   ... def quote_wiggum(lines: list[str]) -\u003e None:\n   ...     print('“{}”\\n\\t— Police Chief Wiggum'.format(\"\\n \".join(lines)))\n\n   # Call those callables with valid parameters.\n   \u003e\u003e\u003e quote_wiggum([\"Okay, folks. Show's over!\", \" Nothing to see here. Show's…\",])\n   “Okay, folks. Show's over!\n    Nothing to see here. Show's…”\n      — Police Chief Wiggum\n\n   # Call those callables with invalid parameters.\n   \u003e\u003e\u003e quote_wiggum([b\"Oh, my God! A horrible plane crash!\", b\"Hey, everybody! Get a load of this flaming wreckage!\",])\n   Traceback (most recent call last):\n     File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\n     File \"\u003cstring\u003e\", line 30, in quote_wiggum\n     File \"/home/springfield/beartype/lib/python3.9/site-packages/beartype/_decor/_code/_pep/_error/errormain.py\", line 220, in get_beartype_violation\n       raise exception_cls(\n   beartype.roar.BeartypeCallHintParamViolation: @beartyped\n   quote_wiggum() parameter lines=[b'Oh, my God! A horrible plane\n   crash!', b'Hey, everybody! Get a load of thi...'] violates type hint\n   list[str], as list item 0 value b'Oh, my God! A horrible plane crash!'\n   not str.\n\n   # ....................{ MAKE IT SO                      }....................\n   # Squash bugs by refining type hints with @beartype validators.\n   \u003e\u003e\u003e from beartype.vale import Is  # \u003c---- validator factory\n   \u003e\u003e\u003e from typing import Annotated  # \u003c---------------- if Python ≥ 3.9.0\n   # \u003e\u003e\u003e from typing_extensions import Annotated   # \u003c-- if Python \u003c 3.9.0\n\n   # Validators are type hints constrained by lambda functions.\n   \u003e\u003e\u003e ListOfStrings = Annotated[  # \u003c----- type hint matching non-empty list of strings\n   ...     list[str],  # \u003c----------------- type hint matching possibly empty list of strings\n   ...     Is[lambda lst: bool(lst)]  # \u003c-- lambda matching non-empty object\n   ... ]\n\n   # Annotate @beartype-decorated callables with validators.\n   \u003e\u003e\u003e @beartype\n   ... def quote_wiggum_safer(lines: ListOfStrings) -\u003e None:\n   ...     print('“{}”\\n\\t— Police Chief Wiggum'.format(\"\\n \".join(lines)))\n\n   # Call those callables with invalid parameters.\n   \u003e\u003e\u003e quote_wiggum_safer([])\n   beartype.roar.BeartypeCallHintParamViolation: @beartyped\n   quote_wiggum_safer() parameter lines=[] violates type hint\n   typing.Annotated[list[str], Is[lambda lst: bool(lst)]], as value []\n   violates validator Is[lambda lst: bool(lst)].\n\n   # ....................{ AT ANY TIME                     }....................\n   # Type-check anything against any type hint – anywhere at anytime.\n   \u003e\u003e\u003e from beartype.door import (\n   ...     is_bearable,  # \u003c-------- like \"isinstance(...)\"\n   ...     die_if_unbearable,  # \u003c-- like \"assert isinstance(...)\"\n   ... )\n   \u003e\u003e\u003e is_bearable(['The', 'goggles', 'do', 'nothing.'], list[str])\n   True\n   \u003e\u003e\u003e die_if_unbearable([0xCAFEBEEF, 0x8BADF00D], ListOfStrings)\n   beartype.roar.BeartypeDoorHintViolation: Object [3405692655, 2343432205]\n   violates type hint typing.Annotated[list[str], Is[lambda lst: bool(lst)]],\n   as list index 0 item 3405692655 not instance of str.\n\n   # ....................{ GO TO PLAID                     }....................\n   # Type-check anything in around 1µs (one millionth of a second) – including\n   # this list of one million 2-tuples of NumPy arrays.\n   \u003e\u003e\u003e from beartype.door import is_bearable\n   \u003e\u003e\u003e from numpy import array, ndarray\n   \u003e\u003e\u003e data = [(array(i), array(i)) for i in range(1000000)]\n   \u003e\u003e\u003e %time is_bearable(data, list[tuple[ndarray, ndarray]])\n       CPU times: user 31 µs, sys: 2 µs, total: 33 µs\n       Wall time: 36.7 µs\n   True\n\nBeartype brings Rust_- and `C++`_-inspired `zero-cost abstractions \u003czero-cost\nabstraction_\u003e`__ into the lawless world of `dynamically-typed`_ Python by\n`enforcing type safety at the granular level of functions and methods \u003cbeartype\nELI5_\u003e`__ against `type hints standardized by the Python community \u003cbeartype\nPEPs_\u003e`__ in `O(1) non-amortized worst-case time with negligible constant\nfactors \u003cbeartype math_\u003e`__. If the prior sentence was unreadable jargon, `see\nour friendly and approachable FAQ for a human-readable synopsis \u003cbeartype\nFAQ_\u003e`__.\n\nBeartype is `portably implemented \u003cbeartype codebase_\u003e`__ in `Python 3\n\u003cPython_\u003e`__, `continuously stress-tested \u003cbeartype tests_\u003e`__ via `GitHub\nActions`_ **×** tox_ **×** pytest_ **×** Codecov_, and `permissively\ndistributed \u003cbeartype license_\u003e`__ under the `MIT license`_. Beartype has *no*\nruntime dependencies, `only one test-time dependency \u003cpytest_\u003e`__, and `only\none documentation-time dependency \u003cSphinx_\u003e`__. Beartype supports `all actively\ndeveloped Python versions \u003cPython status_\u003e`__, `all Python package managers\n\u003cbeartype install_\u003e`__, and `multiple platform-specific package managers\n\u003cbeartype install_\u003e`__.\n\n.. # FIXME: Gah! Libraries.io has fallen down and cannot get back up... *AGAIN.*\n.. #     Beartype `powers quality assurance across the Python ecosystem \u003cbeartype\n.. #     dependents_\u003e`__.\n\n.. # FIXME: Remove *ALL* of the following URLs except those specifically\n.. # required above -- which should be most of them, frankly.\n\n.. # ------------------( IMAGES                              )------------------\n.. |beartype-banner| image:: https://raw.githubusercontent.com/beartype/beartype-assets/main/banner/logo.png\n   :target: https://beartype.readthedocs.io\n   :alt: beartype —[ the bare-metal type checker ]—\n.. |beartype-contributors| image:: https://contrib.rocks/image?repo=beartype/beartype\n   :target: https://github.com/beartype/beartype/graphs/contributors\n   :alt: Beartype contributors\n.. |beartype-stars| image:: https://star-history.com/#beartype/beartype\u0026Date\n   :target: https://github.com/beartype/beartype/stargazers\n   :alt: Beartype stargazers\n\n.. # ------------------( IMAGES ~ badge                      )------------------\n.. |bear-ified| image:: https://raw.githubusercontent.com/beartype/beartype-assets/main/badge/bear-ified.svg\n   :align: top\n   :target: https://beartype.readthedocs.io\n   :alt: bear-ified\n.. |ci-badge| image:: https://github.com/beartype/beartype/workflows/test/badge.svg\n   :target: https://github.com/beartype/beartype/actions?workflow=test\n   :alt: beartype continuous integration (CI) status\n.. |codecov-badge| image:: https://codecov.io/gh/beartype/beartype/branch/main/graph/badge.svg?token=E6F4YSY9ZQ\n   :target: https://codecov.io/gh/beartype/beartype\n   :alt: beartype test coverage status\n.. |rtd-badge| image:: https://readthedocs.org/projects/beartype/badge/?version=latest\n   :target: https://beartype.readthedocs.io/en/latest/?badge=latest\n   :alt: beartype Read The Docs (RTD) status\n\n.. # ------------------( IMAGES ~ downstream                 )------------------\n.. # Insert links to GitHub Sponsors funding at the icon level here, please!\n\n.. # ------------------( LINKS ~ beartype : funding          )------------------\n.. _BETSE:\n   https://github.com/betsee/betse\n.. _BETSEE:\n   https://github.com/betsee/betsee\n.. _GitHub Sponsors:\n   https://github.com/sponsors/leycec\n.. _Paul Allen:\n   https://en.wikipedia.org/wiki/Paul_Allen\n.. _Paul Allen Discovery Center:\n   http://www.alleninstitute.org/what-we-do/frontiers-group/discovery-centers/allen-discovery-center-tufts-university\n.. _Paul Allen Discovery Center award:\n   https://www.alleninstitute.org/what-we-do/frontiers-group/news-press/press-resources/press-releases/paul-g-allen-frontiers-group-announces-allen-discovery-center-tufts-university\n.. _Paul G. Allen Frontiers Group:\n   https://www.alleninstitute.org/what-we-do/frontiers-group\n.. _Tufts University:\n   https://www.tufts.edu\n.. _beartype sponsorship:\n   https://github.com/sponsors/leycec\n\n.. # ------------------( LINKS ~ beartype : local            )------------------\n.. _beartype license:\n   LICENSE\n\n.. # ------------------( LINKS ~ beartype : local : module   )------------------\n.. _beartype errormain:\n   beartype/_decor/_code/_pep/_error/errormain.py\n.. _beartype pephint:\n   beartype/_decor/_code/_pep/_pephint.py\n.. _beartype test data pep:\n   beartype_test/unit/data/hint/pep/proposal/\n.. _beartype test data pep 484:\n   beartype_test/unit/data/hint/pep/proposal/data_hintpep484.py\n.. _@callable_cached:\n   beartype/_util/cache/utilcachecall.py\n.. _beartype util data pep:\n   beartype/_util/hint/data/pep/proposal/\n.. _beartype util data pep parent:\n   beartype/_util/hint/data/pep/utilhintdatapep.py\n.. _beartype util pep:\n   beartype/_util/hint/pep/proposal\n\n.. # ------------------( LINKS ~ beartype : package          )------------------\n.. _beartype Anaconda:\n   https://anaconda.org/conda-forge/beartype\n.. _beartype Gentoo:\n   https://github.com/leycec/raiagent\n.. _beartype Homebrew:\n   https://github.com/beartype/homebrew-beartype\n.. _beartype MacPorts:\n   https://ports.macports.org/port/py-beartype\n.. _beartype PyPI:\n   https://pypi.org/project/beartype\n\n.. # ------------------( LINKS ~ beartype : package : meta   )------------------\n.. _Libraries.io:\n   https://libraries.io\n.. _beartype dependents:\n   https://libraries.io/pypi/beartype/dependents\n\n.. # ------------------( LINKS ~ beartype : github           )------------------\n.. _beartype:\n   https://github.com/beartype/beartype\n.. _beartype issues:\n   https://github.com/beartype/beartype/issues\n.. _beartype 1.0.0:\n   https://github.com/beartype/beartype/issues/7\n.. _beartype codebase:\n   https://github.com/beartype/beartype/tree/main/beartype\n.. _beartype organization:\n   https://github.com/beartype\n.. _beartype profiler:\n   https://github.com/beartype/beartype/blob/main/bin/profile.bash\n.. _beartype pulls:\n   https://github.com/beartype/beartype/pulls\n.. _beartype tests:\n   https://github.com/beartype/beartype/actions?workflow=tests\n\n.. # ------------------( LINKS ~ beartype : github : user    )------------------\n.. _patrick-kidger:\n   https://github.com/patrick-kidger\n.. _harens:\n   https://github.com/harens\n.. _leycec:\n   https://github.com/leycec\n\n.. # ------------------( LINKS ~ beartype : rtd              )------------------\n.. _beartype APIs:\n   https://beartype.readthedocs.io/en/latest/api\n.. _beartype RTD:\n   https://beartype.readthedocs.io\n.. _beartype ELI5:\n   https://beartype.readthedocs.io/en/latest/eli5\n.. _beartype FAQ:\n   https://beartype.readthedocs.io/en/latest/faq\n.. _beartype PEPs:\n   https://beartype.readthedocs.io/en/latest/pep\n.. _beartype hybrid:\n   https://beartype.readthedocs.io/en/latest/faq/#faq-hybrid\n.. _beartype install:\n   https://beartype.readthedocs.io/en/latest/install\n.. _beartype math:\n   https://beartype.readthedocs.io/en/latest/math\n.. _beartype pure:\n   https://beartype.readthedocs.io/en/latest/faq/#faq-pure\n.. _beartype third:\n   https://beartype.readthedocs.io/en/latest/faq/#faq-third\n\n.. # ------------------( LINKS ~ github                      )------------------\n.. _GitHub Actions:\n   https://github.com/features/actions\n.. _GitHub account signin:\n   https://github.com/login\n.. _GitHub account signup:\n   https://github.com/join\n.. _gitter:\n   https://gitter.im\n\n.. # ------------------( LINKS ~ idea                        )------------------\n.. _Denial-of-Service:\n   https://en.wikipedia.org/wiki/Denial-of-service_attack\n.. _DRY:\n   https://en.wikipedia.org/wiki/Don%27t_repeat_yourself\n.. _IDE:\n   https://en.wikipedia.org/wiki/Integrated_development_environment\n.. _JIT:\n   https://en.wikipedia.org/wiki/Just-in-time_compilation\n.. _SQA:\n   https://en.wikipedia.org/wiki/Software_quality_assurance\n.. _amortized analysis:\n   https://en.wikipedia.org/wiki/Amortized_analysis\n.. _computer vision:\n   https://en.wikipedia.org/wiki/Computer_vision\n.. _continuous integration:\n   https://en.wikipedia.org/wiki/Continuous_integration\n.. _duck typing:\n   https://en.wikipedia.org/wiki/Duck_typing\n.. _gratis versus libre:\n   https://en.wikipedia.org/wiki/Gratis_versus_libre\n.. _memory safety:\n   https://en.wikipedia.org/wiki/Memory_safety\n.. _multiple dispatch:\n   https://en.wikipedia.org/wiki/Multiple_dispatch\n.. _near-real-time:\n   https://en.wikipedia.org/wiki/Real-time_computing#Near_real-time\n.. _random walk:\n   https://en.wikipedia.org/wiki/Random_walk\n.. _real-time:\n   https://en.wikipedia.org/wiki/Real-time_computing\n.. _set theory:\n   https://en.wikipedia.org/wiki/Set_theory\n.. _shield wall:\n   https://en.wikipedia.org/wiki/Shield_wall\n.. _dynamic typing:\n.. _dynamically-typed:\n.. _static typing:\n.. _statically-typed:\n   https://en.wikipedia.org/wiki/Type_system\n.. _topological sort:\n   https://en.wikipedia.org/wiki/Topological_sorting\n.. _type inference:\n   https://en.wikipedia.org/wiki/Type_inference\n.. _zero-cost abstraction:\n   https://boats.gitlab.io/blog/post/zero-cost-abstractions\n\n.. # ------------------( LINKS ~ kipling                     )------------------\n.. _The Jungle Book:\n   https://www.gutenberg.org/files/236/236-h/236-h.htm\n.. _Shere Khan:\n   https://en.wikipedia.org/wiki/Shere_Khan\n\n.. # ------------------( LINKS ~ math                        )------------------\n.. _Euler–Mascheroni constant:\n   https://en.wikipedia.org/wiki/Euler%E2%80%93Mascheroni_constant\n.. _coupon collector's problem:\n   https://en.wikipedia.org/wiki/Coupon_collector%27s_problem\n.. _Big O:\n   https://en.wikipedia.org/wiki/Big_O_notation\n\n.. # ------------------( LINKS ~ math : set                  )------------------\n.. _conjunction:\n   https://en.wikipedia.org/wiki/Logical_conjunction\n.. _disjunction:\n   https://en.wikipedia.org/wiki/Logical_disjunction\n.. _intersection:\n   https://en.wikipedia.org/wiki/Intersection_(set_theory)\n.. _relative set complement:\n   https://en.wikipedia.org/wiki/Complement_(set_theory)#Relative_complement\n\n.. # ------------------( LINKS ~ math : type                 )------------------\n.. _covariance:\n   https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)\n\n.. # ------------------( LINKS ~ meme                        )------------------\n.. _RNGesus:\n   https://knowyourmeme.com/memes/rngesus\n.. _goes up to eleven:\n   https://www.youtube.com/watch?v=uMSV4OteqBE\n.. _greased lightning:\n   https://www.youtube.com/watch?v=H-kL8A4RNQ8\n.. _ludicrous speed:\n   https://www.youtube.com/watch?v=6tTvklMXeFE\n.. _the gripping hand:\n   http://catb.org/jargon/html/O/on-the-gripping-hand.html\n\n.. # ------------------( LINKS ~ os : linux                  )------------------\n.. _Gentoo:\n   https://www.gentoo.org\n\n.. # ------------------( LINKS ~ os : macos                  )------------------\n.. _macOS:\n   https://en.wikipedia.org/wiki/MacOS\n.. _HomeBrew:\n   https://brew.sh\n.. _MacPorts:\n   https://www.macports.org\n\n.. # ------------------( LINKS ~ other                       )------------------\n.. _heliotrope:\n   https://en.wikipedia.org/wiki/Heliotropium\n\n.. # ------------------( LINKS ~ py                          )------------------\n.. _Python:\n   https://www.python.org\n.. _Python status:\n   https://devguide.python.org/#status-of-python-branches\n.. _pip:\n   https://pip.pypa.io\n\n.. # ------------------( LINKS ~ py : cli                    )------------------\n.. _-O:\n   https://docs.python.org/3/using/cmdline.html#cmdoption-o\n.. _PYTHONOPTIMIZE:\n   https://docs.python.org/3/using/cmdline.html#envvar-PYTHONOPTIMIZE\n\n.. # ------------------( LINKS ~ py : interpreter            )------------------\n.. _Brython:\n   https://brython.info\n.. _CPython:\n   https://github.com/python/cpython\n.. _Nuitka:\n   https://nuitka.net\n.. _Numba:\n   https://numba.pydata.org\n.. _PyPy:\n   https://www.pypy.org\n\n.. # ------------------( LINKS ~ py : interpreter : cpython  )------------------\n.. _CPython bug tracker:\n   https://github.com/python/cpython/issues\n\n.. # ------------------( LINKS ~ py : lang                   )------------------\n.. _generic alias parameters:\n   https://docs.python.org/3/library/stdtypes.html#genericalias.__parameters__\n.. _isinstancecheck:\n   https://docs.python.org/3/reference/datamodel.html#customizing-instance-and-subclass-checks\n.. _mro:\n   https://docs.python.org/3/library/stdtypes.html#class.__mro__\n.. _object:\n   https://docs.python.org/3/reference/datamodel.html#basic-customization\n.. _operator precedence:\n   https://docs.python.org/3/reference/expressions.html#operator-precedence\n\n.. # ------------------( LINKS ~ py : misc                   )------------------\n.. _Guido van Rossum:\n   https://en.wikipedia.org/wiki/Guido_van_Rossum\n.. _RealPython:\n   https://realpython.com/python-type-checking\n\n.. # ------------------( LINKS ~ py : package                )------------------\n.. _Django:\n   https://www.djangoproject.com\n.. _NetworkX:\n   https://networkx.org\n.. _Pandas:\n   https://pandas.pydata.org\n.. _PyTorch:\n   https://pytorch.org\n.. _SymPy:\n   https://www.sympy.org\n.. _numerary:\n   https://github.com/posita/numerary\n.. _pyenv:\n   https://operatingops.org/2020/10/24/tox-testing-multiple-python-versions-with-pyenv\n.. _typing_extensions:\n   https://pypi.org/project/typing-extensions\n\n.. # ------------------( LINKS ~ py : package : boto3        )------------------\n.. _Boto3:\n   https://aws.amazon.com/sdk-for-python\n.. _bearboto3:\n   https://github.com/beartype/bearboto3\n.. _mypy-boto3:\n   https://mypy-boto3.readthedocs.io\n\n.. # ------------------( LINKS ~ py : package : jax          )------------------\n.. _jax.numpy:\n   https://jax.readthedocs.io/en/latest/notebooks/thinking_in_jax.html\n\n.. # ------------------( LINKS ~ py : package : numpy        )------------------\n.. _NumPy:\n   https://numpy.org\n.. _numpy.dtype:\n   https://numpy.org/doc/stable/reference/arrays.dtypes.html\n.. _numpy.empty_like:\n   https://numpy.org/doc/stable/reference/generated/numpy.empty_like.html\n.. _numpy.floating:\n   https://numpy.org/doc/stable/reference/arrays.scalars.html?highlight=numpy%20generic#numpy.floating\n.. _numpy.generic:\n   https://numpy.org/doc/stable/reference/arrays.scalars.html?highlight=numpy%20generic#numpy.generic\n.. _numpy.integer:\n   https://numpy.org/doc/stable/reference/arrays.scalars.html?highlight=numpy%20generic#numpy.integer\n.. _numpy.typing:\n   https://numpy.org/devdocs/reference/typing.html\n.. _numpy.typing.NDArray:\n   https://numpy.org/devdocs/reference/typing.html#ndarray\n\n.. # ------------------( LINKS ~ py : package : sphinx       )------------------\n.. _Sphinx:\n   https://www.sphinx-doc.org\n.. _sphinx.ext.autodoc:\n   https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html\n\n.. # ------------------( LINKS ~ py : package : test         )------------------\n.. _Codecov:\n   https://about.codecov.io\n.. _pytest:\n   https://docs.pytest.org\n.. _tox:\n   https://tox.readthedocs.io\n\n.. # ------------------( LINKS ~ py : service                )------------------\n.. _Anaconda:\n   https://docs.conda.io/en/latest/miniconda.html\n.. _PyPI:\n   https://pypi.org\n\n.. # ------------------( LINKS ~ py : type : runtime         )------------------\n.. _enforce:\n   https://github.com/RussBaz/enforce\n.. _enforce_typing:\n   https://github.com/matchawine/python-enforce-typing\n.. _pydantic:\n   https://pydantic-docs.helpmanual.io\n.. _pytypes:\n   https://github.com/Stewori/pytypes\n.. _typeen:\n   https://github.com/k2bd/typen\n.. _typical:\n   https://github.com/seandstewart/typical\n\n.. # ------------------( LINKS ~ py : type : runtime : typeg )------------------\n.. _typeguard:\n   https://github.com/agronholm/typeguard\n.. _typeguard.check_type:\n   https://typeguard.readthedocs.io/en/latest/userguide.html#checking-types-directly\n\n.. # ------------------( LINKS ~ py : type : runtime : data  )------------------\n.. _PyContracts:\n   https://github.com/AlexandruBurlacu/pycontracts\n.. _contracts:\n   https://pypi.org/project/contracts\n.. _covenant:\n   https://github.com/kisielk/covenant\n.. _dpcontracts:\n   https://pypi.org/project/dpcontracts\n.. _icontract:\n   https://github.com/Parquery/icontract\n.. _pyadbc:\n   https://pypi.org/project/pyadbc\n.. _pcd:\n   https://pypi.org/project/pcd\n\n.. # ------------------( LINKS ~ py : type : static          )------------------\n.. _Pyre:\n   https://pyre-check.org\n.. _pytype:\n   https://github.com/google/pytype\n\n.. # ------------------( LINKS ~ py : type : static : pyright)------------------\n.. _pyright:\n   https://github.com/Microsoft/pyright\n.. _pyright plugins:\n   https://github.com/microsoft/pyright/issues/607#issuecomment-873467941\n.. _pyright PEP violation #1:\n   https://github.com/beartype/beartype/issues/126\n.. _pyright PEP violation #2:\n   https://github.com/beartype/beartype/issues/127\n\n.. # ------------------( LINKS ~ py : type : static : mypy   )------------------\n.. _mypy:\n   http://mypy-lang.org\n.. _mypy install:\n   https://mypy.readthedocs.io/en/stable/getting_started.html\n.. _mypy plugin:\n   https://mypy.readthedocs.io/en/stable/extending_mypy.html\n.. _type narrowing:\n   https://mypy.readthedocs.io/en/stable/type_narrowing.html\n\n.. # ------------------( LINKS ~ py : type : tensor          )------------------\n.. _jaxtyping:\n   https://github.com/google/jaxtyping\n.. _nptyping:\n   https://github.com/ramonhagenaars/nptyping\n.. _TorchTyping:\n   https://github.com/patrick-kidger/torchtyping\n\n.. # ------------------( LINKS ~ soft : ide                  )------------------\n.. _PyCharm:\n   https://en.wikipedia.org/wiki/PyCharm\n.. _Vim:\n   https://www.vim.org\n\n.. # ------------------( LINKS ~ soft : ide : vscode         )------------------\n.. _Pylance:\n   https://github.com/microsoft/pylance-release\n.. _VSCode:\n   https://code.visualstudio.com\n.. _VSCode Mypy extension:\n   https://marketplace.visualstudio.com/items?itemName=matangover.mypy\n\n.. # ------------------( LINKS ~ soft : lang                 )------------------\n.. _C:\n   https://en.wikipedia.org/wiki/C_(programming_language)\n.. _C++:\n   https://en.wikipedia.org/wiki/C%2B%2B\n.. _Ruby:\n   https://www.ruby-lang.org\n.. _Rust:\n   https://www.rust-lang.org\n\n.. # ------------------( LINKS ~ soft : license              )------------------\n.. _MIT license:\n   https://opensource.org/licenses/MIT\n\n.. # ------------------( LINKS ~ soft : web                  )------------------\n.. _React:\n   https://reactjs.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeartype%2Fbeartype","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeartype%2Fbeartype","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeartype%2Fbeartype/lists"}