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

Abstract

Classes

NaiveTracker

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_abs

Specific 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,
) jgdv.Maybe[doot.workflow._interface.Task_p | doot.workflow._interface.Artifact_i][source]

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(
focus: doot.workflow._interface.TaskName_p,
) jgdv.Maybe[doot.workflow._interface.Task_p][source]

logic for handling a dequed task

Parameters:

focus (doot.workflow._interface.TaskName_p)

Return type:

jgdv.Maybe[doot.workflow._interface.Task_p]

_next_for_artifact(
focus: doot.workflow._interface.Artifact_i,
) jgdv.Maybe[doot.workflow._interface.Artifact_i][source]

logic for handling a dequed artifact

Parameters:

focus (doot.workflow._interface.Artifact_i)

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,
) jgdv.Maybe[doot.workflow._interface.TaskName_p][source]

extends base instantiation to add late injection for tasks

Parameters:
Return type:

jgdv.Maybe[doot.workflow._interface.TaskName_p]

_dependency_states_of(
focus: doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i,
) list[tuple][source]
Parameters:

focus (doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i)

Return type:

list[tuple]

_successor_states_of(
focus: doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i,
) list[tuple][source]
Parameters:

focus (doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i)

Return type:

list[tuple]

_deque() doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i[source]
Return type:

doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i

get_status(
*,
target: jgdv.Maybe[Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i] = None,
) tuple[doot.workflow._interface.TaskStatus_e | doot.workflow._interface.ArtifactStatus_e, int][source]
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,
) bool[source]
Parameters:
Return type:

bool

_apply_injections(
name: doot.workflow._interface.TaskName_p,
*,
parent: jgdv.Maybe[doot.workflow._interface.TaskName_p] = None,
) None[source]

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:
Return type:

None

_get_parent_data(
parent: jgdv.Maybe[doot.workflow._interface.TaskName_p] = None,
) jgdv.Maybe[dict][source]
Parameters:

parent (jgdv.Maybe[doot.workflow._interface.TaskName_p])

Return type:

jgdv.Maybe[dict]

_get_cli_data(
name: doot.workflow._interface.TaskName_p,
) jgdv.Maybe[dict][source]
Parameters:

name (doot.workflow._interface.TaskName_p)

Return type:

jgdv.Maybe[dict]

_get_inject_data(
name: doot.workflow._interface.TaskName_p,
) jgdv.Maybe[dict][source]
Parameters:

name (doot.workflow._interface.TaskName_p)

Return type:

jgdv.Maybe[dict]