doot.control.tracker.naive_tracker
Abstract Specs: A[n] Concrete Specs: C[n] Task: T[n]
Expansion: ∀x ∈ C[n].depends_on => A[x] -> C[x] Head: C[1].depends_on[A[n].$head$] => A[n] -> C[n], A[n].head -> C[n].head, connect
Type Aliases
Classes
Specific implementations for the default naive tracker |
Module Contents
- doot.control.tracker.naive_tracker.Abstract: TypeAlias = T
- class doot.control.tracker.naive_tracker.NaiveTracker(**kwargs: Any)[source]
Bases:
doot.control.tracker._base.Tracker_absSpecific implementations for the default naive tracker
- Parameters:
kwargs (Any)
- _registry: doot.control.tracker.registry.TrackRegistry
- next_for(
- target: jgdv.Maybe[str | doot.workflow._interface.TaskName_p] = None,
ask for the next task that can be performed
Returns a Task or Artifact that needs to be executed or created Returns None if it loops too many times trying to find a target, or if theres nothing left in the queue
- Parameters:
target (jgdv.Maybe[str | doot.workflow._interface.TaskName_p])
- Return type:
jgdv.Maybe[doot.workflow._interface.Task_p | doot.workflow._interface.Artifact_i]
- _next_for_task( ) jgdv.Maybe[doot.workflow._interface.Task_p][source]
logic for handling a dequed task
- Parameters:
- Return type:
jgdv.Maybe[doot.workflow._interface.Task_p]
- _next_for_artifact( ) jgdv.Maybe[doot.workflow._interface.Artifact_i][source]
logic for handling a dequed artifact
- Parameters:
- Return type:
jgdv.Maybe[doot.workflow._interface.Artifact_i]
- _instantiate(
- target: doot.workflow._interface.TaskName_p | doot.workflow._interface.RelationSpec_i,
- *args: Any,
- task: bool = False,
- **kwargs: Any,
extends base instantiation to add late injection for tasks
- Parameters:
target (doot.workflow._interface.TaskName_p | doot.workflow._interface.RelationSpec_i)
args (Any)
task (bool)
kwargs (Any)
- Return type:
jgdv.Maybe[doot.workflow._interface.TaskName_p]
- _dependency_states_of( ) list[tuple][source]
- Parameters:
focus (doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i)
- Return type:
- _successor_states_of( ) list[tuple][source]
- Parameters:
focus (doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i)
- Return type:
- get_status(
- *,
- target: jgdv.Maybe[Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i] = None,
- Parameters:
target (jgdv.Maybe[Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i])
- Return type:
tuple[doot.workflow._interface.TaskStatus_e | doot.workflow._interface.ArtifactStatus_e, int]
- set_status(
- task: Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i | doot.workflow._interface.Task_p,
- internal_state: doot.workflow._interface.TaskStatus_e,
- Parameters:
task (Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i | doot.workflow._interface.Task_p)
internal_state (doot.workflow._interface.TaskStatus_e)
- Return type:
- _apply_injections(
- name: doot.workflow._interface.TaskName_p,
- *,
- parent: jgdv.Maybe[doot.workflow._interface.TaskName_p] = None,
After a task is created, values can be injected into it. these include, in order: - parent internal_state, - cli params - instantiator internal_state injection
- Parameters:
parent (jgdv.Maybe[doot.workflow._interface.TaskName_p])
- Return type:
None
- _get_parent_data(
- parent: jgdv.Maybe[doot.workflow._interface.TaskName_p] = None,
- Parameters:
parent (jgdv.Maybe[doot.workflow._interface.TaskName_p])
- Return type:
jgdv.Maybe[dict]