This patch release delivers enthusiastic hijinx capable quality assurance with improved support for third-party typing_extensions
backports, PEP 517 (i.e., pyproject.toml
), PEP 544 (i.e., typing.Protocol
), and PEP 585 (i.e., re.Match
and re.Pattern
). Codebases everywhere can now release a grateful sigh of relief as bugs buckle under the combined might of @beartype + typing_extensions
. Flex the muscles you knew you always had.
This patch release resolves 3 issues. Wave those paws in the air like your project manager just don't care!
Compatibility Improved
- PEP 517. This release restores our PEP 517-compliant top-level
pyproject.toml
file in a vain and probably misguided attempt to restore the buildability of our documentation on the third-party ReadTheDocs (RTD) documentation host. Doing so nudges @beartype mildly closer towards abandoning the antiquated (and frankly objectionable)setuptools
build system to Hatch, officially endorsed by the Python Packaging Authority (PyPA) as sane and notsetuptools
, which are the only criteria @leycec is looking for in a Python build system. The bar could not be lower. - PEP 544. @beartype now officially supports all third-party
typing_extensions.Protocol
backports, resolving issue #241 kindly submitted by MIT machine learning guru @rsokl (Ryan Soklaski). This release also restores testing of thetyping_extensions.Protocol
superclass, which now passes under alltyping_extensions
versions. Let's not ask prying and uncomfortable questions about what exactly was resolved here, because then @leycec might break down and openly weep emoji tears live on GitHub. - PEP 585. This release "undeprecates" the
beartype.typing.{Match,Pattern}
type hints deprecated by PEP 585, resolving issue #240 kindly submitted by AI King @KyleKing (Kyle King). Specifically, thebeartype.typing
subpackage now imports those type hints from the standardre
rather thantyping
module under Python >= 3.9. This is why @leycec sighs in his sleep while clutching a Bengal plushy.
Documentation Improved
- PEP 673 FAQ entry. This release documents why PEP 673 (i.e.,
typing.Self
) officially supported by @beartype ≥ 0.14.0 is the substantially superior choice to either PEP 484-compliant forward references or PEP 563-compliant postponed type hints for type-checking a class self-referentially. Specifically, this release adds a new "...the current class?" question to our existing FAQ. In theory, this should clear up the smelly mountain of confusion surrounding this topic both on and off our issue tracker. - Project URL generalization. This release generalizes project URLs in our Sphinx configuration from the Sphinx-specific
doc/src/conf.py
script to the Sphinx-agnosticbeartype.meta
submodule, enabling generic reuse of those URLs across numerous third-party frameworks rather than merely Sphinx. In short, nothing worthwhile was done.
(Lush brush, last blast, and crass lass combine rash lashes!)