Simple boolean expression evaluation engine
Project description
boolrule
Simple boolean expression evaluation engine.
Free software: MIT license
Documentation: https://boolrule.readthedocs.io.
Features
Compare simple boolean statements:
>>> rule = BoolRule('5 > 3') >>> rule.test() True >>> rule = BoolRule('5 < 3') >>> rule.test() False
Evaluate boolean statements against a context dict:
>>> can_buy_beer = BoolRule('user.age_years >= 18') >>> can_buy_beer.test({'user':{'age_years': 12}}) False >>> can_buy_beer.test({'user':{'age_years': 20}}) True
Combine conditions with and and or operators to produce complex expressions:
>>> is_hipster = BoolRule('address.postcode.outcode in ("E1","E2") or user.has_beard = true') >>> address = { >>> 'postcode': { >>> 'outcode': 'E1' >>> } >>> } >>> is_hipster.test({'has_beard': False, 'address': address}) True
Credits
Made possible by the excellent pyparsing library.
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
0.3.3 (2021-07-15)
Upgrade dependencies.
0.3.2 (2020-09-23)
Add Type hinting.
0.3.1 (2020-09-09)
Raise an exception when the whole expression cannot be parsed. Previous behaviour would discard the segment that didn’t match the expression grammar.
0.3.0 (2018-01-15)
Add None type and is/isnot operators (contributed by ocurero)
0.2.0 (2016-10-27)
Fixed error caused by refactor from internal codebase that was preventing deep context level values from being referenced in a substitution value
0.1.2 (2016-09-30)
Improved documentation
0.1.1 (2016-09-30)
Made context optional
Improved documentation
0.1.0 (2016-09-30)
First release on PyPI.
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
Built Distribution
Hashes for boolrule-0.3.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c88d4ad7df4976c476095afb84666b51543c15d30d1f2ff4b5201360efb5d592 |
|
MD5 | 394e65ef61107a6187f89e3075b613ae |
|
BLAKE2b-256 | 8e483ce33beabaf1970f0331f0f2018e8d1368b5a49b76f6ba0d4775c1399961 |