Skip to main content

A simple library for simple connecting to DecisionRules API

Project description

DecisionRulesPy

VERSION 3 CONTAINS MAJOR CHANGES IN API INTERFACES AND NOW SUPPORTS RULEFLOWS CRUD

A simple library that allows you to easily connect to DecisionRules.io from your application.

Usage

  • Solver (DecisionTables, ScriptRules, RuleFlow)
  • Management API (CRUD operations on DecisionTables and RuleFlows)

1 - Solver

Solver is designed for solving rules made in DecisionRules application.

1.1 - Defining solver init

Before you start solving rules you need to setup an SolverApi instance. How to do so is shown below.

import decisionrules

async def solver_test():
    solver = decisionrules.SolverApi(solver_api_key)

1.2 - Defining solver method with data

Solver method expects 5 arguments

  • SolverType - enum value - mandatory
  • RuleId - str - mandatory
  • Data - dict or json str - mandatory
  • SolverStrategy - enum value - mandatory
  • Version - str - optional
async def solver_test():
    data = {"say": "Hello from python"}

    solver = decisionrules.SolverApi(api_key)

    # SolverType enum defines type of solver (Rule or Compostion)
    response = await solver.solve(decisionrules.SolverType.RULE, get_rule, data, decisionrules.SolverStrategies.STANDARD)

    response2 = await solver.solve(decisionrules.SolverType.RULEFLOW, compo_rule, data, decisionrules.SolverStrategies.STANDARD)

1.3 Solver with custom domain

For using custom domain just add CustomDomain instance to the init method with url and protocol parameters.

async def solver_test():
    data = {"say": "Hello from python"}

    solver = decisionrules.SolverApi(api_key, decisionrules.CustomDomain("YOUR_URL", decisionrules.Protocols.HTTPS))
    
    response = await solver.solve(decisionrules.SolverType.RULE, get_rule, data, decisionrules.SolverStrategies.STANDARD)

    response2 = await solver.solve(decisionrules.SolverType.RULEFLOW, compo_rule, data, decisionrules.SolverStrategies.STANDARD)

2 - Management API

Management api is accessible via ManagementApi and required management api key that you can obtain in api key section in DecisionRules app.

Data for ruleflow import methods are represented as an array where index0 = RF, and index1...indexn are DTs

async def management_api_test():
    manager = decisionrules.ManagementApi(mng_key)

    #Or with custom domain

    manager = decisionrules.ManagementApi(mng_key, decisionrules.CustomDomain("YOUR_URL", decisionrules.Protocols.HTTPS))

2.1 Management API usage example

async def management_api_test():
    manager = decisionrules.ManagementApi(mng_key)

    await manager.get_rule(get_rule)
    await manager.get_rule(get_rule, "1")
    await manager.get_space(get_space)

    await manager.update_rule(put_rule, "1", put_data)
    await manager.create_rule(post_rule, post_data)
    await manager.delete_rule(delete_rule, "1")

    await manager.create_ruleflow(new_ruleflow)
    await manager.get_ruleflow(id)
    await manager.get_ruleflow(id, 1)
    await manager.update_ruleflow(id, 1, ruleflow)
    await manager.export_ruleflow(id, 1)
    await manager.export_ruleflow(id)
    await manager.import_ruleflow([new_ruleflow_with_dt], 1,)
    await manager.import_ruleflow(id, 1, [new_ruleflow_with_dt])
    await manager.import_ruleflow([new_ruleflow_with_dt])
    await manager.delele_ruleflow(id)

    await manager.getItems(tags)
    await manager.updateTags(ruleId, data, version)
    await manager.delete(ruleId, version)

2.3 All available methods in management API

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

decisionrulespy-3.0.5.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

decisionrulespy-3.0.5-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file decisionrulespy-3.0.5.tar.gz.

File metadata

  • Download URL: decisionrulespy-3.0.5.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for decisionrulespy-3.0.5.tar.gz
Algorithm Hash digest
SHA256 110cc1a4684e4ca921717429c07eacc87689485bc42e6f270e1f4b15b449cd29
MD5 90419a4be26c5fccc07234b266228daf
BLAKE2b-256 d804aae99433cfdf7c4c33864fc8f72315cc9c84f2a1aee25c8f4498864b794b

See more details on using hashes here.

File details

Details for the file decisionrulespy-3.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for decisionrulespy-3.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 79ff2c6d8b197d17e9d85bd970dbe31d005404a16b5bf080b976402b75e858c8
MD5 43790a440ae8d1df74ed7c75afc62bbf
BLAKE2b-256 aff835e9b5bbf3df801c71b15a6e3222f88ee126cd62666c02cff268a2732b11

See more details on using hashes here.

Supported by

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