SingleQuantumExecutor¶
-
class
lsst.ctrl.mpexec.SingleQuantumExecutor(taskFactory, skipExisting=False, enableLsstDebug=False)¶ Bases:
lsst.ctrl.mpexec.QuantumExecutorExecutor class which runs one Quantum at a time.
Parameters: - butler :
Butler Data butler.
- taskFactory :
TaskFactory Instance of a task factory.
- skipExisting :
bool, optional If True then quanta with all existing outputs are not executed.
- enableLsstDebug :
bool, optional Enable debugging with
lsstDebugfacility for a task.
Methods Summary
execute(taskDef, quantum, butler)Execute single quantum. initGlobals(quantum, butler)Initialize global state needed for task execution. makeTask(taskClass, config, butler)Make new task instance. quantumOutputsExist(quantum, butler)Decide whether this quantum needs to be executed. runQuantum(task, quantum, taskDef, butler)Execute task on a single quantum. setupLogging(taskClass, config, quantum)Configure logging system for execution of this task. updateQuantumInputs(quantum, butler)Update quantum with extra information. Methods Documentation
-
execute(taskDef, quantum, butler)¶ Execute single quantum.
Parameters:
-
initGlobals(quantum, butler)¶ Initialize global state needed for task execution.
Parameters: Notes
There is an issue with initializing filters singleton which is done by instrument, to avoid requiring tasks to do it in runQuantum() we do it here when any dataId has an instrument dimension. Also for now we only allow single instrument, verify that all instrument names in all dataIds are identical.
This will need revision when filter singleton disappears.
-
makeTask(taskClass, config, butler)¶ Make new task instance.
Parameters: - taskClass :
type Sub-class of
PipelineTask.- config :
PipelineTaskConfig Configuration object for this task
Returns: - task :
PipelineTask Instance of
taskClasstype.- butler :
Butler Data butler.
- taskClass :
-
quantumOutputsExist(quantum, butler)¶ Decide whether this quantum needs to be executed.
Parameters: Returns: - exist :
bool True if all quantum’s outputs exist in a collection, False otherwise.
Raises: - RuntimeError
Raised if some outputs exist and some not.
- exist :
-
runQuantum(task, quantum, taskDef, butler)¶ Execute task on a single quantum.
Parameters: - task :
PipelineTask Task object.
- quantum :
Quantum Single Quantum instance.
- taskDef :
TaskDef Task definition structure.
- butler :
Butler Data butler.
- task :
-
setupLogging(taskClass, config, quantum)¶ Configure logging system for execution of this task.
Ths method can setup logging to attach task- or quantum-specific information to log messages. Potentially this can take into accout some info from task configuration as well.
Parameters: - taskClass :
type Sub-class of
PipelineTask.- config :
PipelineTaskConfig Configuration object for this task
- quantum :
Quantum Single Quantum instance.
- taskClass :
-
updateQuantumInputs(quantum, butler)¶ Update quantum with extra information.
Some methods may require input DatasetRefs to have non-None
dataset_id, but in case of intermediate dataset it may not be filled during QuantumGraph construction. This method will retrieve missing info from registry.Parameters:
- butler :