seq  4.0.0-pre3
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Properties | List of all members
lib.nodes.sequence.Sequence Class Reference

Basic sequencer node. More...

Inheritance diagram for lib.nodes.sequence.Sequence:
lib.nodes.interface._BaseNode lib.nodes.loop.Loop lib.nodes.observing_block.ObservingBlock lib.nodes.parallel.Parallel lib.nodes.template.Template lib.nodes.recover.RLoop

Public Member Functions

def __attrs_post_init__ (self)
 Assigns node's name and id. More...
 
def __iter__ (self)
 
def start_step (self)
 Standard sequence's start step. More...
 
def end_step (self)
 Standard sequence's end step. More...
 
def append (self, s)
 Appends a node to the Sequence. More...
 
def make_sequence (self, parent_tpl=None)
 Builds this sequence execution graph. 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)
 Runs the node – This executes the task. More...
 
def execute (self, resume=False, propagate=False)
 Executes this just creates the asyncio task. More...
 
def resume (self)
 Resume node execution. More...
 
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 nodes (self)
 Return nodes from Graph. More...
 
def get_node (self, node_id)
 Get node by id. More...
 
def get_task (self, node_id)
 Get task by node_id. More...
 
def par (self, k)
 Get a parameter value. More...
 
def set (self, p)
 Sets the value of a parameter. More...
 
- Public Member Functions inherited from lib.nodes.interface._BaseNode
def make_sequence (self)
 does nothing More...
 
def make_task (self, node, input_list, resume)
 Creates the task object that executes the node. More...
 
def pause (self)
 

Static Public Member Functions

def get_context ()
 
def create (*args, **kw)
 Sequence node constructor. More...
 

Public Attributes

 name
 
 id
 
 in_error
 
 runtime_flags
 
 t_start
 
 skip
 
 exception
 
 t_end
 

Static Public Attributes

 graph = attr.ib(init=False, default=attr.Factory(nx.DiGraph), repr=False)
 
 debug = attr.ib(init=False, default=False, repr=False)
 
 current_seq = cv.ContextVar("current_seq", default=None)
 
 root = cv.ContextVar("root", default=None)
 
- Static Public Attributes inherited from lib.nodes.interface._BaseNode
 id = attr.ib(default=None, kw_only=True)
 
 name = attr.ib(default=None, kw_only=True)
 
 runtime_flags = attr.ib(default=0, kw_only=True)
 
 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
 
 serial_number = attr.ib(init=False)
 

Properties

 context = property
 Get context dictionary, preferably from root node. More...
 
 seq = property
 Retrieves the sequence list. More...
 
 G = property
 returns the graph object More...
 
 start_node = property
 Returns the start node. More...
 
 end_node = property
 Returns the end node. More...
 
 parameters = property
 Return parameters. More...
 
 state = property
 node state More...
 
 full_state = property
 
- Properties inherited from lib.nodes.interface._BaseNode
 result = property
 Node's result. More...
 
 end_node = property
 
 start_node = property
 
 state = property
 Gets the node state. More...
 
 full_state = property
 Gets the node state. More...
 
 in_error = property
 
 skip = property
 

Detailed Description

Basic sequencer node.

Use :meth:create to properly build :class:Sequence objects.

Table 1
Context Variables
---------------------------------------------
Name        |  Desc
-           | -
current_seq | The parent of the current node
root        | Top level DAG's root
-           | -

Examples

>>> s = Sequence.create(a,b, name="my sequence")
# execute Sequence
>>> await s.start()
# Get running Sequence from Inside function a():
>>> def a():
... current_seq = Sequence.current_seq
... # now current_seq is the node s
def a()
Simply do_a.
Definition: a.py:17

... assert current_seq == s

Member Function Documentation

◆ __attrs_post_init__()

def lib.nodes.sequence.Sequence.__attrs_post_init__ (   self)

◆ __call__()

def lib.nodes.sequence.Sequence.__call__ (   self,
  resume = False 
)

◆ __iter__()

def lib.nodes.sequence.Sequence.__iter__ (   self)

◆ abort()

def lib.nodes.sequence.Sequence.abort (   self)

Aborts the sequence.

   Goes trough the full graph and aborts the tasks associated to nodes (if any).
   Do not allow nodes to run by taking away its running_checkpoint attribute.

◆ append()

def lib.nodes.sequence.Sequence.append (   self,
  s 
)

Appends a node to the Sequence.

◆ create()

def lib.nodes.sequence.Sequence.create ( args,
**  kw 
)
static

Sequence node constructor.

        *args: Variable length list of nodes or coroutines that compose the
Parameters
sequence.
idNode id
namenode name

Reimplemented in lib.nodes.parallel.Parallel, and lib.nodes.loop.Loop.

◆ create_node_tasks()

def lib.nodes.sequence.Sequence.create_node_tasks (   self,
  resume = False 
)

Creates Task object associated to this node.

◆ end_step()

def lib.nodes.sequence.Sequence.end_step (   self)

Standard sequence's end step.

   Evaluates the sequence's final state.
   Collects node's result and put them in the sequence's result attribute.

Reimplemented in lib.nodes.loop.Loop.

◆ execute()

def lib.nodes.sequence.Sequence.execute (   self,
  resume = False,
  propagate = False 
)

Executes this just creates the asyncio task.

Reimplemented in lib.nodes.template.Template.

◆ get_context()

def lib.nodes.sequence.Sequence.get_context ( )
static

◆ get_node()

def lib.nodes.sequence.Sequence.get_node (   self,
  node_id 
)

Get node by id.

Reimplemented in lib.nodes.loop.Loop.

◆ get_task()

def lib.nodes.sequence.Sequence.get_task (   self,
  node_id 
)

Get task by node_id.

◆ main_task()

def lib.nodes.sequence.Sequence.main_task (   self)

Returns the objective node of the sequence – the end node.

◆ make_sequence()

def lib.nodes.sequence.Sequence.make_sequence (   self,
  parent_tpl = None 
)

Builds this sequence execution graph.

Joins the Sequence's nodes together.

Reimplemented in lib.nodes.template.Template, lib.nodes.parallel.Parallel, and lib.nodes.loop.Loop.

◆ nodes()

def lib.nodes.sequence.Sequence.nodes (   self)

Return nodes from Graph.

Reimplemented in lib.nodes.loop.Loop.

◆ par()

def lib.nodes.sequence.Sequence.par (   self,
  k 
)

Get a parameter value.

◆ reschedule_node()

def lib.nodes.sequence.Sequence.reschedule_node (   self,
  node_id 
)

Reschedule a node for execution.

◆ resume()

def lib.nodes.sequence.Sequence.resume (   self)

Resume node execution.

Reimplemented from lib.nodes.interface._BaseNode.

◆ run()

def lib.nodes.sequence.Sequence.run (   self)

Runs the node – This executes the task.

◆ set()

def lib.nodes.sequence.Sequence.set (   self,
  p 
)

Sets the value of a parameter.

◆ start()

def lib.nodes.sequence.Sequence.start (   self,
  make_sequence = True,
  resume = False 
)

This is the entry point for Sequence execution.

Returns
Returns the :class:SeqTask object that executes the sequence
Exceptions
ExceptionAny exception received is re-raised and the sequence is aborted.

◆ start_step()

def lib.nodes.sequence.Sequence.start_step (   self)

Standard sequence's start step.

   Sets the sequence's state to RUNNING

Member Data Documentation

◆ current_seq

lib.nodes.sequence.Sequence.current_seq = cv.ContextVar("current_seq", default=None)
static

◆ debug

lib.nodes.sequence.Sequence.debug = attr.ib(init=False, default=False, repr=False)
static

◆ exception

lib.nodes.sequence.Sequence.exception

◆ graph

lib.nodes.sequence.Sequence.graph = attr.ib(init=False, default=attr.Factory(nx.DiGraph), repr=False)
static

◆ id

lib.nodes.sequence.Sequence.id

◆ in_error

lib.nodes.sequence.Sequence.in_error

◆ name

lib.nodes.sequence.Sequence.name

◆ root

lib.nodes.sequence.Sequence.root = cv.ContextVar("root", default=None)
static

◆ runtime_flags

lib.nodes.sequence.Sequence.runtime_flags

◆ skip

lib.nodes.sequence.Sequence.skip

◆ t_end

lib.nodes.sequence.Sequence.t_end

◆ t_start

lib.nodes.sequence.Sequence.t_start

Property Documentation

◆ context

lib.nodes.sequence.Sequence.context = property
static

Get context dictionary, preferably from root node.

◆ end_node

lib.nodes.sequence.Sequence.end_node = property
static

Returns the end node.

   If it does not exist, it creates it.

◆ full_state

lib.nodes.sequence.Sequence.full_state = property
static

◆ G

lib.nodes.sequence.Sequence.G = property
static

returns the graph object

◆ parameters

lib.nodes.sequence.Sequence.parameters = property
static

Return parameters.

◆ seq

lib.nodes.sequence.Sequence.seq = property
static

Retrieves the sequence list.

   :meta private:

◆ start_node

lib.nodes.sequence.Sequence.start_node = property
static

Returns the start node.

   If it does not exist, it creates it.

◆ state

lib.nodes.sequence.Sequence.state = property
static

node state


The documentation for this class was generated from the following file: