|
| def | __attrs_post_init__ (self) |
| | Assigns node's name and id. More...
|
| |
| def | end_step (self) |
| |
| def | make_sequence (self) |
| | Creates the Loop execution graph. More...
|
| |
| def | set_block (self, *args) |
| | Assigns the sequence to the loop's block. More...
|
| |
| def | make_task (self, node, input_list, resume) |
| | Creates the task object that executes the node. More...
|
| |
| def | nodes (self) |
| | Return nodes from Graph. More...
|
| |
| def | get_node (self, node_id) |
| | Get node by id. More...
|
| |
| def | __iter__ (self) |
| |
| def | context (self) |
| | Get context dictionary, preferably from root node. More...
|
| |
| def | context (self, ctx) |
| |
| def | seq (self) |
| | Retrieves the sequence list. More...
|
| |
| def | seq (self, s) |
| | List used to create the Sequence's graph. More...
|
| |
| def | G (self) |
| | returns the graph object More...
|
| |
| def | start_step (self) |
| |
| def | start_node (self) |
| | Returns the start node. More...
|
| |
| def | end_node (self) |
| | Returns the end node. More...
|
| |
| def | append (self, s) |
| | Appends a node to the Sequence. More...
|
| |
| def | create_node_tasks (self, resume=False) |
| | Creates Task object associated to this node. More...
|
| |
| def | reschedule_node (self, node_id) |
| | Reschedule a node for execution. More...
|
| |
| def | start (self, make_sequence=True, resume=False) |
| | This is the entry point for Sequence execution. More...
|
| |
| def | run (self) |
| |
| def | execute (self, resume=False) |
| |
| def | resume (self) |
| |
| def | main_task (self) |
| | Returns the objective node of the sequence – the end node. More...
|
| |
| def | __call__ (self, resume=False) |
| |
| def | abort (self) |
| | Aborts the sequence. More...
|
| |
| def | get_task (self, node_id) |
| | Get task by node_id. More...
|
| |
| def | state (self) |
| | Gets the node state. More...
|
| |
| def | state (self, value) |
| | Sets the node state. More...
|
| |
| def | publish_state (self) |
| |
| def | state (self, value) |
| | Sets the node state. More...
|
| |
| def | result (self) |
| | Node's result. More...
|
| |
| def | result (self, val) |
| |
| def | full_state (self) |
| | Gets the node state. More...
|
| |
| def | in_error (self) |
| |
| def | skip (self) |
| |
| def | skip (self, flag=True) |
| |
| def | in_error (self, flag=True) |
| |
| def | pause (self) |
| |
|
| | block_args = attr.ib(kw_only=True, default=attr.Factory(list), repr=False) |
| |
| | condition = attr.ib(kw_only=True, default=None, repr=False) |
| |
| | init = attr.ib(kw_only=True, default=None, repr=False) |
| |
| | block = attr.ib(init=False, default=None, repr=False) |
| |
| | index = cv.ContextVar("index", default=0) |
| |
| | graph = attr.ib(init=False, default=attr.Factory(nx.DiGraph), repr=False) |
| |
| | debug = attr.ib(init=False, default=False, repr=False) |
| |
| | current_tpl = cv.ContextVar("current_tpl", default=None) |
| |
| | root = cv.ContextVar("root", default=None) |
| |
| | serial_number = attr.ib(default=0, kw_only=True) |
| |
| | id = attr.ib(default=None, kw_only=True) |
| |
| | name = attr.ib(default=None, kw_only=True) |
| |
| | runtime_flags = attr.ib(default=0, init=False) |
| |
| | deps = attr.ib(default=attr.Factory(list), repr=False, kw_only=True, init=False) |
| |
| | description = attr.ib(default="", kw_only=True) |
| |
| | exception = attr.ib(init=False, default=None, repr=False) |
| |
| | can_skip = attr.ib(default=True, init=False) |
| |
| | hide = attr.ib(default=False, init=False) |
| |
| | t_start = attr.ib(init=False, default=None, repr=False) |
| |
| | t_end = attr.ib(init=False, default=None, repr=False) |
| |
| | running_checkpoint |
| |
Loop node definition.
Use the :meth:create method to build properly :class:Loop node. Since it inherits from :class:Sequence it has access to the same context variables.
============ =======================================================
Context Variables
Name Desc ============ ======================================================= current_tpl The parent of the current node (from :class:Sequence) root Top level DAG's root (from :class:Sequence) index The Loop's current index (starts at 0) ============ =======================================================
id (Optional str): Node id.
name (Optional str): Node name.
- Parameters
-
| init | Initialization node. |
| condition | A Python method that returns a boolean value. |
| block | The loop's body. |
| def lib.nodes.loop.Loop.create |
( |
* |
args, |
|
|
** |
kw |
|
) |
| |
|
static |
Creates a :class:Loop node.
*args: Variable length list of nodes or coroutines that comprises the Loop`s body.
- Parameters
-
| id | Node id |
| name | node name |
| init | initialization node :class:Action or :class:ActionInThread. |
| condition | condition node :class:Action or :class:ActionInThread. |
- Returns
- A new :class:
Loop object
Examples
Creating a loop.
.. code-block:: python
def eval_condition():
return False
class Tpl:
def initialize(self, context):
async def a(): pass async def b(): pass
@staticmethod def create()
t = MyClass()
l = Loop.create(t.a, t.b, condition=eval_condition, init=t.initialize)
Reimplemented from lib.nodes.sequence.Sequence.