lsst.pipe.base  13.0-11-gdf6a56c+1
 All Classes Namespaces Files Functions Variables Pages
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:

Public Member Functions

def applyOverrides
 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
 Parse an argument list and run the command. More...
 
def writeConfig
 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
 Write the schemas returned by getAllSchemaCatalogs. More...
 
def writeMetadata
 Write the metadata produced from processing the data. More...
 
def writePackageVersions
 Compare and write package versions. More...
 

Static Public Attributes

 RunnerClass = TaskRunner
 
 canMultiprocess = True
 

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

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.

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.

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.

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.

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.

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

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

Definition at line 470 of file cmdLineTask.py.

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: