Run-time type checker for Python
Project description
This library provides run-time type checking for functions defined with PEP 484 argument (and return) type annotations.
Four principal ways to do type checking are provided, each with its pros and cons:
- the check_argument_types() and check_return_type() functions:
- debugger friendly (except when running with the pydev debugger with the C extension installed)
- does not work reliably with dynamically defined type hints (e.g. in nested functions)
- the @typechecked decorator:
- automatically type checks yields and sends of returned generators (regular and async)
- adds an extra frame to the call stack for every call to a decorated function
- the stack profiler hook (with TypeChecker('packagename'):) (deprecated):
- emits warnings instead of raising TypeError
- requires very few modifications to the code
- multiple TypeCheckers can be stacked/nested
- does not work reliably with dynamically defined type hints (e.g. in nested functions)
- may cause problems with badly behaving debuggers or profilers
- cannot distinguish between an exception being raised and a None being returned
- the import hook (typeguard.importhook.install_import_hook()):
- automatically annotates classes and functions with @typechecked on import
- no code changes required in target modules
- requires imports of modules you need to check to be deferred until after the import hook has been installed
- may clash with other import hooks
See the documentation for further instructions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
typeguard-2.13.3.tar.gz
(40.6 kB
view hashes)
Built Distribution
typeguard-2.13.3-py3-none-any.whl
(17.6 kB
view hashes)
Close
Hashes for typeguard-2.13.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e3e3be01e887e7eafae5af63d1f36c849aaa94e3a0112097312aabfa16284f1 |
|
MD5 | cda8a1e9551db7bc4f8e0e906025bda9 |
|
BLAKE2-256 | 9abbd43e5c75054e53efce310e79d63df0ac3f25e34c926be5dffb7d283fb2a8 |