Developer Documentation¶
-
pyungo.core.
topological_sort
(data)¶ Topological sort algorithm
- Parameters
data (dict) – dictionnary representing dependencies Example: {‘a’: [‘b’, ‘c’]} node id ‘a’ depends on node id ‘b’ and ‘c’
- Returns
- list of list of node ids
Example: [[‘a’], [‘b’, ‘c’], [‘d’]] The sequence is representing the order to be run. The nested lists are node ids that can be run in parallel
- Return type
ordered (list)
- Raises
PyungoError – In case a cyclic dependency exists
-
class
pyungo.core.
Node
(fct, inputs, outputs, args=None, kwargs=None)¶ Node object (aka vertex in graph theory)
- Parameters
fct (function) – The Python function attached to the node
inputs (list) – List of inputs (which can be Input, str or dict)
outputs (list) – List of outputs (Output or str)
args (list) – Optional list of args
kwargs (list) – Optional list of kwargs
- Raises
PyungoError – In case inputs have the wrong type
-
class
pyungo.core.
Graph
(inputs=None, outputs=None, parallel=False, pool_size=2, schema=None)¶ Graph object, collection of related nodes
- Parameters
inputs (list) – List of optional Input if defined separately
outputs (list) – List of optional Output if defined separately
parallel (bool) – Parallelism flag
pool_size (int) – Size of the pool in case parallelism is enabled
schema (dict) – Optional JSON schema to validate inputs data
- Raises
ImportError will raise in case parallelism is chosen and multiprocess – not installed
-
add_node
(function, **kwargs)¶ explicit method to add a node to the graph
- Parameters
function (function) – Python function attached to the node
inputs (list) – List of inputs (Input, str, or dict)
outputs (list) – List of outputs (Output or str)
args (list) – List of optional args
kwargs (list) – List of optional kwargs
-
calculate
(data)¶ run graph calculations
-
property
dag
¶ return the ordered nodes graph
-
property
data
¶ return the data of the graph (inputs + outputs)
-
register
(**kwargs)¶ register decorator
-
static
run_node
(node)¶ run the node
- Parameters
node (Node) – The node to run
- Returns
node id, node output values
- Return type
results (tuple)
-
property
sim_inputs
¶ return input names (mapped) of every nodes
-
property
sim_kwargs
¶ return kwarg names (mapped) of every nodes
-
property
sim_outputs
¶ return output names (mapped) of every nodes
-
class
pyungo.io.
Input
(name, map=None, meta=None, contract=None)¶ Object representing a function input
- Parameters
name (str) – The variable name of the input / output
map (str) – Optional mapping name. This is the name referenced in the data inputs / outputs
meta (dict) – Not used yet
contract (str) – Optional contract rule used by pycontracts
-
class
pyungo.io.
Output
(name, map=None, meta=None, contract=None)¶ Object representing a function output
- Parameters
name (str) – The variable name of the input / output
map (str) – Optional mapping name. This is the name referenced in the data inputs / outputs
meta (dict) – Not used yet
contract (str) – Optional contract rule used by pycontracts