conditions-py is a library that helps write pre- and postcondition validations in a fluent manner, helping improve the readability and reliability of code.
Project description
Conditions-PY
Conditions is a Python port of the famous .NET library Conditions which helps developers write pre- and postcondition validations in a fluent manner. Writing these validations is easy and it improves the readability and maintainability of code.
Contents
Installation
Installation is done via PIP:
pip install conditions-py
Conditions
A full list of all the available conditions can be found in the Wiki.
Tests
Currently both unit and integration tests are written using the pytest
library. Execution of tests in Visual Studio Code is performed using the pytest
test runner.
Examples
import conditions_py
def speak(message: str):
Condition\
.requires_str(message, 'message')\
.is_not_null_or_whitespace()
# Do speaking...
def multiple(left: int, right: int):
Condition\
.requires_num(left, 'left')\
.is_positive()
Condition\
.requires_num(right, 'right')\
.is_greater_than(4)
# Do multiplication
def is_true(value: bool):
Condition\
.requires_bool(value, 'value')\
.is_true()
# Do other stuff
def animals(dog: object, cat: object):
Condition\
.requires_obj(dog, 'dog')\
.is_not_null()
Condition\
.requires_obj(cat, 'cat')\
.is_null()
# Do other stuff
A particular validation is executed immediately when it's method is called, and therefore all checks are executed in the order in which they are written:
Acknowledgements
- The icon "Tornado" designed by Adam Whitcroft from The Noun Project.
- Geoffrey Huntley (ghuntley) who is the original author of "Conditions" from which this project was based on.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file conditions_py-0.1.7.tar.gz
.
File metadata
- Download URL: conditions_py-0.1.7.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b64c0e5e36beda6cb98e975fe6fe406a45c4312309e42f3983876dcae7472d9 |
|
MD5 | f7af169f0f521f3ff653ded88a6385a6 |
|
BLAKE2b-256 | bd5b4cb350bcfed96a434915472e021b99ca07c792796eb5a8aff73468d4063a |