.. _doot.control.tracker.queue: ========================== doot.control.tracker.queue ========================== .. py:module:: doot.control.tracker.queue Type Aliases ------------ .. autoapisummary:: doot.control.tracker.queue.Abstract Classes ------- .. autoapisummary:: doot.control.tracker.queue.TrackQueue Module Contents =============== .. py:data:: Abstract :type: TypeAlias :value: T .. _doot.control.tracker.queue.TrackQueue: .. py:class:: TrackQueue(*, tracker: doot.control.tracker._interface.WorkflowTracker_p) The queue of active tasks. .. py:attribute:: active_set :type: set[Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i] .. py:attribute:: execution_trace :type: list[Concrete[doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i]] .. py:attribute:: _tracker :type: doot.control.tracker._interface.WorkflowTracker_i .. py:attribute:: _queue :type: boltons.queueutils.HeapPriorityQueue .. py:method:: queue_entry(target: str | doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i, *, from_user: int | bool = False) -> jgdv.Maybe[Concrete[doot.workflow._interface.TaskName_p | doot.workflow._interface.Artifact_i]] Queue a task by name|spec|Task_i. registers and instantiates the relevant spec, inserts it into the _tracker._network Does *not* rebuild the _tracker._network returns a task name if the _tracker._network has changed, else None. kwarg 'from_user' signifies the enty is a starting target, adding cli args if necessary and linking to the root. .. py:method:: deque_entry(*, peek: bool = False) -> Concrete[doot.workflow._interface.TaskName_p] | doot.workflow._interface.Artifact_i remove (or peek) the top task from the _queue. .. py:method:: clear_queue() -> None Remove everything from the task queue, .. py:method:: _queue_task(name: str | doot.workflow._interface.TaskName_p, *, from_user: int | bool = False) -> jgdv.Maybe[doot.workflow._interface.TaskName_p] .. py:method:: _queue_artifact(art: doot.workflow._interface.Artifact_i, *, from_user: int | bool = False) -> jgdv.Maybe[doot.workflow._interface.Artifact_i] .. py:method:: _queue_prep_name(name: str | doot.workflow._interface.TaskName_p) -> jgdv.Maybe[doot.workflow._interface.TaskName_p] Heuristics for queueing task names