Skip to main content

A python rules engine

Project description

Ruleau

A Python Rules Engine library

Using the library

from ruleau import execute, rule, ApiAdapter

# create a rule
@rule(rule_id="rul_1", name="Is adult")
def over_18(_, payload):
    return "age" in payload and payload["age"] >= 18

# create a payload (the answers to the rule's questions)
payload = {"age": 17}

# execute the rule against the payload
result = execute(over_18, payload)

# integrate with the backend web API
api_adapter = ApiAdapter(base_url="http://localhost:8000/")

# send the results
result = execute(
    over_18, payload, api_adapter=api_adapter, case_id="ca_1280"
)
# result.result will be False due to applicant being 17

# if the rule for this case is overriden in the backend
# then running again will return True

Testing Rules

Rules should be tested using doctest.

Example of these tests can be found in the Kitchen Sink example.

Generating Documentation

Documentation for the rules can be generated using the ruleau-docs command.

The usage is as follows:

ruleau-docs [--output-dir=<argument>] filename

For example for a file of rules called rules.py run:

ruleau-docs rules.py

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

ruleau-0.2.0.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ruleau-0.2.0-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file ruleau-0.2.0.tar.gz.

File metadata

  • Download URL: ruleau-0.2.0.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for ruleau-0.2.0.tar.gz
Algorithm Hash digest
SHA256 74b4e509a1e36176163786dd2f50560fe201a581cb422527429163d45d2dc9f5
MD5 cb0c60338aa0e508e1e1fefc2e76b18b
BLAKE2b-256 7ad5ff200459bff76fbe1061c98d156cdeb63df470c84c92d455cc77f6d6f7d8

See more details on using hashes here.

File details

Details for the file ruleau-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: ruleau-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for ruleau-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d11d6fd4addef7063594693ab9c2b1035ffe3878db185fa3285eebb2f4f8a720
MD5 3719f19c23f05a727e63e9447b980fb2
BLAKE2b-256 7a9c4a7dd72fa1ded93182a44577671956fecc4bb1cda36842766cad27be5568

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page