MCPcopy Index your code
hub / github.com/sartography/SpiffWorkflow / __init__

Method __init__

SpiffWorkflow/util/task.py:182–215  ·  view source on GitHub ↗

Iterate over the task tree and return the tasks matching the filter parameters. Args: task (`Task`): the task to start from Keyword Args: end_at (str):stop when a task spec with this name is reached max_depth (int): stop when this depth is rea

(self, task, end_at_spec=None, max_depth=1000, depth_first=True, task_filter=None, **kwargs)

Source from the content-addressed store, hash-verified

180 """Default task iteration class."""
181
182 def __init__(self, task, end_at_spec=None, max_depth=1000, depth_first=True, task_filter=None, **kwargs):
183 """Iterate over the task tree and return the tasks matching the filter parameters.
184
185 Args:
186 task (`Task`): the task to start from
187
188 Keyword Args:
189 end_at (str):stop when a task spec with this name is reached
190 max_depth (int): stop when this depth is reached
191 depth_first (bool): return results in depth first order
192 task_filter (`TaskFilter`): return only tasks matching this filter
193
194 Notes:
195 Keyword args not used by this class will be passed into `TaskFilter` if no `task_filter` is provided.
196 This is for convenience (filter values can be used directly from `Workflow.get_tasks`) as well as
197 backwards compatilibity for queries about `TaskState`.
198 """
199 self.task_filter = task_filter or TaskFilter(**kwargs)
200 self.end_at_spec = end_at_spec
201 self.max_depth = max_depth
202 self.depth_first = depth_first
203
204 self.task_list = [task]
205 self.depth = 0
206 # Figure out which states need to be traversed.
207 # Predicted tasks can follow definite tasks but not vice versa; definite tasks can follow finished tasks but not vice versa
208 # The dream is for a child task to always have a lower task state than its parent; currently we have parents that wait for
209 # their children
210 if self.task_filter.state & TaskState.PREDICTED_MASK:
211 self.min_state = TaskState.MAYBE
212 elif self.task_filter.state & TaskState.DEFINITE_MASK:
213 self.min_state = TaskState.FUTURE
214 else:
215 self.min_state = TaskState.COMPLETED
216
217 def __iter__(self):
218 return self

Callers

nothing calls this directly

Calls 1

TaskFilterClass · 0.85

Tested by

no test coverage detected