doot.control.tracker._interface
Type Aliases
Enums
Enum describing the possible edges of the task tracker's task network |
|
How the task execution will be ordered |
Protocols
Base class for protocol classes. |
|
Base class for protocol classes. |
|
Base class for protocol classes. |
|
Track tasks that have run, need to run, are running, |
|
Track tasks that have run, need to run, are running, |
Classes
Registry data for a spec. |
|
Module Contents
- doot.control.tracker._interface.Abstract: TypeAlias = T
- class doot.control.tracker._interface.EdgeType_e(*args, **kwds)[source]
Bases:
enum.EnumEnum describing the possible edges of the task tracker’s task network
- TASK
- ARTIFACT_UP
- ARTIFACT_DOWN
- TASK_CROSS
- ARTIFACT_CROSS
- default
- class doot.control.tracker._interface.ExecutionPolicy_e(*args, **kwds)[source]
Bases:
enum.EnumHow the task execution will be ordered PRIORITY : Priority Queue with retry, job expansion, dynamic walk of network. DEPTH : No (priority,retry,jobs). basic DFS of the pre-run dependency network BREADTH : No (priority,retry,jobs). basic BFS of the pre-run dependency-network
- PRIORITY
- DEPTH
- BREADTH
- default
- class doot.control.tracker._interface.Registry_p[source]
Bases:
ProtocolBase class for protocol classes.
Protocol classes are defined as:
class Proto(Protocol): def meth(self) -> int: ...
Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing).
For example:
class C: def meth(self) -> int: return 0 def func(x: Proto) -> int: return x.meth() func(C()) # Passes static type check
See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:
class GenProto[T](Protocol): def meth(self) -> T: ...
- register_spec(
- *specs: doot.workflow._interface.TaskSpec_i,
- Parameters:
- Return type:
None
- instantiate_spec(
- name: Abstract[doot.workflow._interface.TaskName_p],
- *,
- force: jgdv.Maybe[bool | int] = None,
- extra: jgdv.Maybe[dict | jgdv.structs.chainguard.ChainGuard | bool] = None,
- Parameters:
name (Abstract[doot.workflow._interface.TaskName_p])
extra (jgdv.Maybe[dict | jgdv.structs.chainguard.ChainGuard | bool])
- Return type:
jgdv.Maybe[Concrete[doot.workflow._interface.TaskName_p]]
- instantiate_relation(
- rel: doot.workflow._interface.RelationSpec_i,
- *,
- control: Concrete[doot.workflow._interface.TaskName_p],
- Parameters:
control (Concrete[doot.workflow._interface.TaskName_p])
- Return type:
Concrete[doot.workflow._interface.TaskName_p]
- make_task(
- name: Concrete[doot.workflow._interface.TaskName_p],
- *,
- task_obj: jgdv.Maybe[doot.workflow._interface.Task_i] = None,
- parent: jgdv.Maybe[Concrete[doot.workflow._interface.TaskName_p]] = None,
- Parameters:
name (Concrete[doot.workflow._interface.TaskName_p])
task_obj (jgdv.Maybe[doot.workflow._interface.Task_i])
parent (jgdv.Maybe[Concrete[doot.workflow._interface.TaskName_p]])
- Return type:
Concrete[doot.workflow._interface.TaskName_p]
- class doot.control.tracker._interface.Network_p[source]
Bases:
ProtocolBase class for protocol classes.
Protocol classes are defined as:
class Proto(Protocol): def meth(self) -> int: ...
Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing).
For example:
class C: def meth(self) -> int: return 0 def func(x: Proto) -> int: return x.meth() func(C()) # Passes static type check
See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:
class GenProto[T](Protocol): def meth(self) -> T: ...
- _graph: Any
- _root_node: doot.workflow._interface.TaskName_p
- succ: collections.abc.Mapping
- pred: collections.abc.Mapping
- non_expanded: set[doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i]
- build_network(
- *,
- sources: jgdv.Maybe[Literal[True] | list[Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i]] = None,
- Parameters:
sources (jgdv.Maybe[Literal[True] | list[Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i]])
- Return type:
None
- connect(
- left: Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i,
- right: jgdv.Maybe[Literal[False] | Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i] = None,
- **kwargs: Any,
- Parameters:
left (Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i)
right (jgdv.Maybe[Literal[False] | Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i])
kwargs (Any)
- Return type:
None
- class doot.control.tracker._interface.Queue_p[source]
Bases:
ProtocolBase class for protocol classes.
Protocol classes are defined as:
class Proto(Protocol): def meth(self) -> int: ...
Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing).
For example:
class C: def meth(self) -> int: return 0 def func(x: Proto) -> int: return x.meth() func(C()) # Passes static type check
See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:
class GenProto[T](Protocol): def meth(self) -> T: ...
- queue_entry(
- target: str | doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i,
- *,
- from_user: int | bool = False,
- Parameters:
- Return type:
jgdv.Maybe[Concrete[doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i]]
- deque_entry(
- *,
- peek: bool = False,
- Parameters:
peek (bool)
- Return type:
Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i
- class doot.control.tracker._interface.WorkflowTracker_p[source]
Bases:
ProtocolTrack tasks that have run, need to run, are running, and have failed. Does not execute anything itself
- property active: set[doot.workflow._interface.TaskName_p][source]
- Return type:
- property specs: dict[doot.workflow._interface.TaskName_p, SpecMeta_d][source]
- Return type:
- property artifacts: dict[doot.workflow._interface.Artifact_i, ArtifactMeta_d][source]
- Return type:
- property concrete: set[doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i][source]
- property abstract: set[doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i][source]
- property network: collections.abc.Mapping[source]
- Return type:
- register(
- *specs: doot.workflow._interface.TaskSpec_i | doot.workflow._interface.Artifact_i | doot.workflow._interface.DelayedSpec,
- Parameters:
specs (doot.workflow._interface.TaskSpec_i | doot.workflow._interface.Artifact_i | doot.workflow._interface.DelayedSpec)
- Return type:
None
- queue(
- name: str | jgdv.Ident | Concrete[doot.workflow._interface.TaskSpec_i] | doot.workflow._interface.DelayedSpec,
- *,
- from_user: int | bool = False,
- status: jgdv.Maybe[doot.workflow._interface.TaskStatus_e] = None,
- Parameters:
name (str | jgdv.Ident | Concrete[doot.workflow._interface.TaskSpec_i] | doot.workflow._interface.DelayedSpec)
status (jgdv.Maybe[doot.workflow._interface.TaskStatus_e])
- Return type:
jgdv.Maybe[Concrete[jgdv.Ident]]
- build(
- *,
- sources: jgdv.Maybe[Literal[True] | list[Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i]] = None,
- Parameters:
sources (jgdv.Maybe[Literal[True] | list[Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i]])
- Return type:
None
- plan(
- *,
- policy: jgdv.Maybe[ExecutionPolicy_e] = None,
- Parameters:
policy (jgdv.Maybe[ExecutionPolicy_e])
- Return type:
list[doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i]
- next_for(
- target: jgdv.Maybe[str | Concrete[jgdv.Ident]] = None,
- Parameters:
target (jgdv.Maybe[str | Concrete[jgdv.Ident]])
- Return type:
jgdv.Maybe[doot.workflow._interface.Task_p | doot.workflow._interface.Artifact_i]
- _instantiate(
- name: Abstract[doot.workflow._interface.TaskName_p],
- *,
- extra: jgdv.Maybe[dict | jgdv.structs.chainguard.ChainGuard | bool] = None,
- _instantiate(
- rel: doot.workflow._interface.RelationSpec_i,
- *,
- control: Concrete[doot.workflow._interface.TaskName_p],
- _instantiate(
- name: Concrete[doot.workflow._interface.TaskName_p],
- **kwargs: Any,
- _connect(
- left: Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i,
- right: jgdv.Maybe[Literal[False] | Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i] = None,
- **kwargs: Any,
- Parameters:
left (Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i)
right (jgdv.Maybe[Literal[False] | Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i])
kwargs (Any)
- Return type:
None
- class doot.control.tracker._interface.WorkflowTracker_i[source]
Bases:
WorkflowTracker_p,ProtocolTrack tasks that have run, need to run, are running, and have failed. Does not execute anything itself
- _root_node: doot.workflow._interface.TaskName_p
- _factory: doot.workflow._interface.TaskFactory_p
- _subfactory: doot.workflow._interface.SubTaskFactory_p
- class doot.control.tracker._interface.SpecMeta_d(
- *,
- spec: doot.workflow._interface.TaskSpec_i,
Registry data for a spec. When spec is abstract, related are the concrete instantiations when spec is concrete, related are the implicit subtasks
blocked_by are the dependencies not mentioned in the spec injection_source is the injection to run just before executing the task injection_targets are tasks that block this task cleaning up
- Parameters:
- injection_source: jgdv.Maybe[tuple[doot.workflow._interface.TaskName_p, doot.workflow._interface.InjectSpec_i]]
- injection_targets: set[doot.workflow._interface.TaskName_p]
- class doot.control.tracker._interface.ArtifactMeta_d(
- *,
- artifact: doot.workflow._interface.Artifact_i,
- Parameters:
artifact (doot.workflow._interface.Artifact_i)
- artifact: doot.workflow._interface.Artifact_i
- builders: set[doot.workflow._interface.TaskName_p]
- consumers: set[doot.workflow._interface.TaskName_p]
- class doot.control.tracker._interface.Registry_d(*, tracker: WorkflowTracker_p)[source]
- Parameters:
tracker (WorkflowTracker_p)
- _tracker: WorkflowTracker_p
- artifacts: dict[doot.workflow._interface.Artifact_i, ArtifactMeta_d]
- abstract: set[Abstract[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i]
- concrete: set[Abstract[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i]