lsst.pipe.base  13.0-12-gaf0c0ec+8
Public Member Functions | Static Public Attributes | List of all members
lsst.pipe.base.cmdLineTask.CmdLineTask Class Reference

Base class for command-line tasks: tasks that may be executed from the command line. More...

Inheritance diagram for lsst.pipe.base.cmdLineTask.CmdLineTask:
lsst.pipe.base.task.Task

Public Member Functions

def applyOverrides (cls, config)
 A hook to allow a task to change the values of its config after the camera-specific overrides are loaded but before any command-line overrides are applied. More...
 
def parseAndRun (cls, args=None, config=None, log=None, doReturnResults=False)
 Parse an argument list and run the command. More...
 
def writeConfig (self, butler, clobber=False, doBackup=True)
 Write the configuration used for processing the data, or check that an existing one is equal to the new one if present. More...
 
def writeSchemas (self, butler, clobber=False, doBackup=True)
 Write the schemas returned by getAllSchemaCatalogs. More...
 
def writeMetadata (self, dataRef)
 Write the metadata produced from processing the data. More...
 
def writePackageVersions (self, butler, clobber=False, doBackup=True, dataset="packages")
 Compare and write package versions. More...
 
- Public Member Functions inherited from lsst.pipe.base.task.Task
def __init__ (self, config=None, name=None, parentTask=None, log=None)
 Create a Task. More...
 
def emptyMetadata (self)
 Empty (clear) the metadata for this Task and all sub-Tasks. More...
 
def getSchemaCatalogs (self)
 Return the schemas generated by this task. More...
 
def getAllSchemaCatalogs (self)
 Call getSchemaCatalogs() on all tasks in the hiearchy, combining the results into a single dict. More...
 
def getFullMetadata (self)
 Get metadata for all tasks. More...
 
def getFullName (self)
 Return the task name as a hierarchical name including parent task names. More...
 
def getName (self)
 Return the name of the task. More...
 
def getTaskDict (self)
 Return a dictionary of all tasks as a shallow copy. More...
 
def makeSubtask (self, name, keyArgs)
 Create a subtask as a new instance self. More...
 
def timer (self, name, logLevel=Log.DEBUG)
 Context manager to log performance data for an arbitrary block of code. More...
 
def makeField (cls, doc)
 Make an lsst.pex.config.ConfigurableField for this task. More...
 
def __reduce__ (self)
 

Static Public Attributes

 RunnerClass = TaskRunner
 
bool canMultiprocess = True
 

Additional Inherited Members

- Public Attributes inherited from lsst.pipe.base.task.Task
 metadata
 
 log
 
 config
 

Detailed Description

Base class for command-line tasks: tasks that may be executed from the command line.

See pipe_base introduction to learn what tasks are, and how to write a command-line task for more information about writing command-line tasks. If the second link is broken (as it will be before the documentation is cross-linked) then look at the main page of pipe_tasks documentation for a link.

Subclasses must specify the following class variables:

Subclasses may also specify the following class variables:

Subclasses must specify a method named "run":

Definition at line 439 of file cmdLineTask.py.

Member Function Documentation

◆ applyOverrides()

def lsst.pipe.base.cmdLineTask.CmdLineTask.applyOverrides (   cls,
  config 
)

A hook to allow a task to change the values of its config after the camera-specific overrides are loaded but before any command-line overrides are applied.

This is necessary in some cases because the camera-specific overrides may retarget subtasks, wiping out changes made in ConfigClass.setDefaults. See LSST Trac ticket #2282 for more discussion.

Warning
This is called by CmdLineTask.parseAndRun; other ways of constructing a config will not apply these overrides.
Parameters
[in]clsthe class object
[in]configtask configuration (an instance of cls.ConfigClass)

Definition at line 473 of file cmdLineTask.py.

◆ parseAndRun()

def lsst.pipe.base.cmdLineTask.CmdLineTask.parseAndRun (   cls,
  args = None,
  config = None,
  log = None,
  doReturnResults = False 
)

Parse an argument list and run the command.

Calling this method with no arguments specified is the standard way to run a command-line task from the command line. For an example see pipe_tasks bin/makeSkyMap.py or almost any other file in that directory.

Parameters
clsthe class object
argslist of command-line arguments; if None use sys.argv
configconfig for task (instance of pex_config Config); if None use cls.ConfigClass()
loglog (instance of lsst.log.Log); if None use the default log
doReturnResultsReturn the collected results from each invocation of the task? This is only intended for unit tests and similar use. It can easily exhaust memory (if the task returns enough data and you call it enough times) and it will fail when using multiprocessing if the returned data cannot be pickled.
Returns
a Struct containing:
  • argumentParser: the argument parser
  • parsedCmd: the parsed command returned by the argument parser's parse_args method
  • taskRunner: the task runner used to run the task (an instance of cls.RunnerClass)
  • resultList: results returned by the task runner's run method, one entry per invocation. This will typically be a list of None unless doReturnResults is True; see cls.RunnerClass (TaskRunner by default) for more information.

If one or more of the dataIds fails then this routine will exit (with a status giving the number of failed dataIds) rather than returning this struct; this behaviour can be overridden by specifying the –noExit option.

Definition at line 489 of file cmdLineTask.py.

◆ writeConfig()

def lsst.pipe.base.cmdLineTask.CmdLineTask.writeConfig (   self,
  butler,
  clobber = False,
  doBackup = True 
)

Write the configuration used for processing the data, or check that an existing one is equal to the new one if present.

Parameters
[in]butlerdata butler used to write the config. The config is written to dataset type self._getConfigName()
[in]clobbera boolean flag that controls what happens if a config already has been saved:
  • True: overwrite or rename the existing config, depending on doBackup
  • False: raise TaskError if this config does not match the existing config
[in]doBackupif clobbering, should we backup the old files?

Definition at line 571 of file cmdLineTask.py.

◆ writeMetadata()

def lsst.pipe.base.cmdLineTask.CmdLineTask.writeMetadata (   self,
  dataRef 
)

Write the metadata produced from processing the data.

Parameters
[in]dataRefbutler data reference used to write the metadata. The metadata is written to dataset type self._getMetadataName()

Definition at line 635 of file cmdLineTask.py.

◆ writePackageVersions()

def lsst.pipe.base.cmdLineTask.CmdLineTask.writePackageVersions (   self,
  butler,
  clobber = False,
  doBackup = True,
  dataset = "packages" 
)

Compare and write package versions.

We retrieve the persisted list of packages and compare with what we're currently using. We raise TaskError if there's a version mismatch.

Note that this operation is subject to a race condition.

Parameters
[in]butlerdata butler used to read/write the package versions
[in]clobbera boolean flag that controls what happens if versions already have been saved:
  • True: overwrite or rename the existing version info, depending on doBackup
  • False: raise TaskError if this version info does not match the existing
[in]doBackupif clobbering, should we backup the old files?
[in]datasetname of dataset to read/write

Definition at line 648 of file cmdLineTask.py.

◆ writeSchemas()

def lsst.pipe.base.cmdLineTask.CmdLineTask.writeSchemas (   self,
  butler,
  clobber = False,
  doBackup = True 
)

Write the schemas returned by getAllSchemaCatalogs.

Parameters
[in]butlerdata butler used to write the schema. Each schema is written to the dataset type specified as the key in the dict returned by getAllSchemaCatalogs.
[in]clobbera boolean flag that controls what happens if a schema already has been saved:
  • True: overwrite or rename the existing schema, depending on doBackup
  • False: raise TaskError if this schema does not match the existing schema
[in]doBackupif clobbering, should we backup the old files?
Warning
if clobber is False and an existing schema does not match a current schema, then some schemas may have been saved successfully and others may not, and there is no easy way to tell which is which.

Definition at line 606 of file cmdLineTask.py.

Member Data Documentation

◆ canMultiprocess

bool lsst.pipe.base.cmdLineTask.CmdLineTask.canMultiprocess = True
static

Definition at line 470 of file cmdLineTask.py.

◆ RunnerClass

lsst.pipe.base.cmdLineTask.CmdLineTask.RunnerClass = TaskRunner
static

Definition at line 469 of file cmdLineTask.py.


The documentation for this class was generated from the following file: