Skip to main content

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)

Table of built distributions (wheels) for imperium 0.0.11
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.11 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page