Imperium is a python package that allows you to easily evaluate python expressions
Project description
Imperium
Imperium is a python package that allows you to easily evaluate python expressions
Installation
pip install imperium
Usage
from imperium.evaluator import Expression obj = { 'name': 'iPhone', 'model': '11 Pro', 'price': 1299.90, 'state': 'new' } expr = Expression() if expr.evaluate('$subject.state == "new"', obj): # "$subject" is a reserved key # Your logic
To access the data in the given subject, use the "$subject" key as shown above.
Check if the subject has an attribute
from imperium.evaluator import Expression obj = { 'name': 'iPhone', 'model': '11 Pro', 'price': 1299.90, 'state': 'new' } someother_obj = { 'name': 'John Doe' } expr = Expression() res = expr.evaluate('exists("$subject.price", $subject)', subject=obj, source=someother_obj) # REMINDER: "$subject" key let's you access the object that you passed to the evaluate method (obj in this case) print(res) # Output: True
Testing regular expressions
from imperium.evaluator import Expression obj = { 'name': 'iPhone', 'model': '11 Pro', 'price': 1299.90, 'state': 'new' } buyer = { 'fullname': 'John Doe' } # Passing the name attribute of the subject # REMINDER: "$subject" let's you access the object/subject passed to the evaluate method (obj in this case) # and "$source" let's you access the optional source object passed to the evaluate method expression = "exists('$subject.name', $subject) && matches('IPHONE', $subject['name'], 'i')" expr = Expression() res = expr.evaluate(expression, subject=obj, source=buyer) print(res) # Output: True
Imperium has built-in functions to simplify certain actions/verifications.
Function | Argument(s) | Description |
---|---|---|
exists() | key (Ex: $subject.price), $subject | Checks if the given attribute/key exists in the given subject. |
matches() | regex, value, flag (i or m) | Tests a regular expression |
date() | datestring, format | datestring and format are both optional, provide them to the function if you want to convert a date string to date object. If these two arguments are left emtpy, the function returns date object with current date and time. |
date_modify() | date, operation (+ | -), valuetype (days | months | years), value: int | This function can add and subtract days, months and years from a date object. |
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.
Built Distribution
Close
Hashes for imperium-0.0.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d0ae80bd2e1ab07155f98297479dc1e42ad11e90c9c99c64d676ac829f9518d |
|
MD5 | 56c4521b4530e4ef8fa6d566e89accce |
|
BLAKE2-256 | 13de0b5ca38d704cc963ee3d3b164737e3431ebde9612504301df6a095077252 |