The DMN API reference
Copyright 2020 Simon Vandevelde, Joost Vennekens This code is licensed under GNU GPLv3 license (see LICENSE) for more information. This file is part of the cDMN solver.
- class API.DMN(path: str | None = None, xml: str | None = None, auto_propagate: bool = False)[source]
A class representing DMN objects.
- Parameters:
_specification (str) – the xml specification
variables (Dict[str]:
cdmn.API.Variable
) – a dict containing all the variables found in the specificationprop_variables – a dict containing the values of propagated variables
dependency_tree (Dict[str]: List[str]) – a dictionary containing for every variable what other variables define it
_idp (Dict[str]: str) – a dictionary containing the IDP blocks
- dependencies_of(var: str)[source]
Returns the list of dependencies of a variable.
- Parameters:
var (str) – the name of the variable
- Returns:
list of variable dependencies
- Return type:
List[str]
- get_all_values(propagated: bool = True)[source]
Get a dictionary mapping every variable on their value. If the value is not known, it is None. If propagated is True, then we also include the values of propagated variables. Else, we exclude them, and set them as None.
- Parameters:
propagated (bool) – True if propagated variables are included.
- Returns:
dict mapping variables on their (propagated) values.
- Return type:
Dict[str, str]
- get_certain_variables()[source]
Get a list of all the variables for which the value is known.
- Returns:
list of variables for which the value is known
- Return type:
List[str]
- get_inputs()[source]
Get a list of the input variables.
- Returns:
the list of inputs
- Return type:
List[str]
- get_intermediary()[source]
Get a list of intermediary variables. An intermediary variable is a variable that is not
- Returns:
list of intermediary variables
- Return type:
List[str]
- get_outputs()[source]
Get a list of the output variables.
- Returns:
list of the output variables
- Return type:
List[str]
- get_unknown_variables()[source]
Get a list of all variables with unknown values
- Returns:
the list of variables that are still missing
- Return type:
List[str]
- get_variable_names() List [source]
Get all variable names.
- Returns:
a list containing all variable names.
- Return type:
List[str]
- property idp
Getter for idp.
- Returns:
the idp code
- Return type:
str
- is_certain(var: str)[source]
Method to check if a variable is certain. A variable is certain if it has been given a value using set_value, or if it has been propagated a value (i.e. all of the symbols it depends on are also certain)
- Parameters:
var (str) – the variable
- Returns:
whether the variable’s value is certain
- Return type:
bool
- missing_for(variable: str)[source]
Get a list of dependencies of varuable without known value.
- Parameters:
variable (str)
- Returns:
list of variables needed that are still unknown
- Return type:
List[str]
- possible_values_of(var: str) List [source]
Returns the possible values of a variable. Only strings have a set of possible values in DMN.
- Parameters:
var (Variable) – the variable
- Returns:
list of possible values
- Return type:
List[str]
- propagate()[source]
Method to propagate.
- Returns:
None
- Return type:
None
- Throws NotSatisfiableError:
thrown when model resulted in unsat
- set_value(variable: str, value)[source]
Set a variable’s value.
- Parameters:
variable (str) – the name of the variable
value (str or int) – the value for the variable
- property specification
Getter for specification.
- Returns:
the specification
- Return type:
str
- class API.Variable(name: str, var_type: str, logical_type: str, possible_values: List, dependent_on: Dict, dependency_of: Dict)[source]
Class representing (c)DMN variables. On top of variable name, type, logical type and value, we also gather what dependencies (both upstream and downstream) a variable has.
- Parameters:
name (str) – the name of the variable
type (str) – if the variable is a constant, the type can be string, integer, float. If the variable is a boolean, the type is None.
logical_type (str) – the variable type from a logical viewpoint. This can be boolean, constant, predicate or function.
value (List[str]) – the value that a symbol has.
possible_values – a list containing possible values. This list is only relevant for symbols with type string.
dependent_on (List[str]) – a Dict of symbols on which this variable depends, together with their ‘dependency level’
dependency_of (List[str]) – a Dict of symbols that depend on this variable, together with their ‘dependency level’