Safe assert for Python that can be used together with optimised mode
Allows users to write composable
asserts that are not stripped away in optimized mode.
- Single simple, pythonic, fast, tested, typed, documented function. That's it!
safe_assertis a function, it can be easily composed with other functions
- Fully typed with annotations and checked with mypy, PEP561 compatible
pip install safe-assert
The usage is identical to
assert keyword, but a function:
from safe_assert import safe_assert def sort_positive_numbers(numbers: List[int]) -> List[int]: safe_assert(all(num >= 0 for num in numbers), 'found negative') return sorted(numbers) sort_positive_numbers([1, 2, 3]) # => will work sort_positive_numbers([-1, 2, 3]) # => will fail in runtime with `AssertionError`
How is it different from regular
The major one is that it would not be stripped away with
So, it still allows to write declarative checks that are safe in production.
The second one is that you can compose it as any other regular function.
Useful in conjuction with
How does it work internally?
It internally raises
AssertionError that is also used by the
assert keyword itself.
See docs to learn more.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size safe_assert-0.2.0-py3-none-any.whl (4.2 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size safe-assert-0.2.0.tar.gz (4.2 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for safe_assert-0.2.0-py3-none-any.whl