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. |
Release files for imperium 0.0.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| imperium-0.0.11-py3-none-any.whl | Python 3 | none | any | Details |
Release files / imperium-0.0.11-py3-none-any.whl
| Download URL | imperium-0.0.11-py3-none-any.whl |
|---|---|
| Size | 4.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d0ae80bd2e1ab07155f98297479dc1e42ad11e90c9c99c64d676ac829f9518d
|
|
BLAKE2b-256 checksum How to use checksums |
13de0b5ca38d704cc963ee3d3b164737e3431ebde9612504301df6a095077252
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.9
|