LSST Applications  21.0.0-1-g8760c09+64c1bc5aa5,21.0.0-1-ga51b5d4+5491f2a448,21.0.0-12-gbc0a1a5+a13491cd7a,21.0.0-16-gec61338+c1a0df68cc,21.0.0-17-g535a0ce+2ce1b35d7c,21.0.0-17-gd94932e+3011406107,21.0.0-18-g7027a3f+ff861a2432,21.0.0-18-ga7882e3+3bf3df37a8,21.0.0-2-g103fe59+61779578b6,21.0.0-2-g45278ab+64c1bc5aa5,21.0.0-2-g5242d73+d85392d81f,21.0.0-2-g7f82c8f+b7a913d2e8,21.0.0-2-ga326454+b7a913d2e8,21.0.0-2-gde069b7+4f46bdaea8,21.0.0-2-gecfae73+34aa867395,21.0.0-2-gfc62afb+d85392d81f,21.0.0-21-gbccb7aa+25657be8c9,21.0.0-24-g07df93d+5d47c285b5,21.0.0-25-g98a1dda9+87b78843fe,21.0.0-3-g357aad2+26c44b7683,21.0.0-3-g4a4ce7f+d85392d81f,21.0.0-3-g4be5c26+d85392d81f,21.0.0-3-gd7ab7aa+fdc5edd43f,21.0.0-3-ge02ed75+2ce1b35d7c,21.0.0-36-g68b03cce9+fb0e51fe34,21.0.0-4-g65b4814+25657be8c9,21.0.0-4-g7dab645+8dd487cf55,21.0.0-4-ge8a399c+718fb879c1,21.0.0-5-g19a7531+2ce1b35d7c,21.0.0-5-g8c1d971+7b9a448d34,21.0.0-5-gcc89fd6+fdc5edd43f,21.0.0-5-gd00fb1e+0be1da2719,21.0.0-6-g0bf7090+18535a8d22,21.0.0-6-gc675373+d85392d81f,21.0.0-7-gdf92d54+64c1bc5aa5,21.0.0-8-g5674e7b+8087abed30,21.0.0-86-gac3e7760+06ac5cc073,master-gac4afde19b+2ce1b35d7c,w.2021.21
LSST Data Management Base Package
Functions | Variables
lsst.pipe.base.executionButlerBuilder Namespace Reference

Functions

Butler buildExecutionButler (Butler butler, QuantumGraph graph, Union[str, ButlerURI] outputLocation, str run, *bool clobber=False, Optional[Callable[[Butler], Butler]] butlerModifier=None, Optional[Iterable[str]] collections=None)
 

Variables

 DataSetTypeMap = Mapping[DatasetType, Set[DataCoordinate]]
 

Function Documentation

◆ buildExecutionButler()

Butler lsst.pipe.base.executionButlerBuilder.buildExecutionButler ( Butler  butler,
QuantumGraph  graph,
Union[str, ButlerURI]  outputLocation,
str  run,
*bool   clobber = False,
Optional[Callable[[Butler], Butler]]   butlerModifier = None,
Optional[Iterable[str]]   collections = None 
)
buildExecutionButler is a function that is responsible for exporting
input `QuantumGraphs` into a new minimal `~lsst.daf.butler.Butler` which
only contains datasets specified by the `QuantumGraph`. These datasets are
both those that already exist in the input `~lsst.daf.butler.Butler`, and
those that are expected to be produced during the execution of the
`QuantumGraph`.

Parameters
----------
butler : `lsst.daf.butler.Bulter`
    This is the existing `~lsst.daf.butler.Butler` instance from which
    existing datasets will be exported. This should be the
    `~lsst.daf.butler.Butler` which was used to create any `QuantumGraphs`
    that will be converted with this object.
graph : `QuantumGraph`
    Graph containing nodes that are to be exported into an execution
    butler
outputLocation : `str` or `~lsst.daf.butler.ButlerURI`
    URI Location at which the execution butler is to be exported. May be
    specified as a string or a ButlerURI instance.
run : `str` optional
    The run collection that the exported datasets are to be placed in. If
    None, the default value in registry.defaults will be used.
clobber : `bool`, Optional
    By default a butler will not be created if a file or directory
    already exists at the output location. If this is set to `True`
    what is at the location will be deleted prior to running the
    export. Defaults to `False`
butlerModifier : `~typing.Callable`, Optional
    If supplied this should be a callable that accepts a
    `~lsst.daf.butler.Butler`, and returns an instantiated
    `~lsst.daf.butler.Butler`. This callable may be used to make any
    modifications to the `~lsst.daf.butler.Butler` desired. This
    will be called after importing all datasets that exist in the input
    `~lsst.daf.butler.Butler` but prior to inserting Datasets expected
    to be produced. Examples of what this method could do include
    things such as creating collections/runs/ etc.
collections : `~typing.Iterable` of `str`, Optional
    An iterable of collection names that will be exported from the input
    `~lsst.daf.butler.Butler` when creating the execution butler. If not
    supplied the `~lsst.daf.butler.Butler`\ 's `~lsst.daf.butler.Registry`
    default collections will be used.

Returns
-------
executionButler : `lsst.daf.butler.Butler`
    An instance of the newly created execution butler

Raises
------
FileExistsError
    Raised if something exists in the filesystem at the specified output
    location and clobber is `False`
NotADirectoryError
    Raised if specified output URI does not correspond to a directory

Definition at line 183 of file executionButlerBuilder.py.

191  ) -> Butler:
192  r"""buildExecutionButler is a function that is responsible for exporting
193  input `QuantumGraphs` into a new minimal `~lsst.daf.butler.Butler` which
194  only contains datasets specified by the `QuantumGraph`. These datasets are
195  both those that already exist in the input `~lsst.daf.butler.Butler`, and
196  those that are expected to be produced during the execution of the
197  `QuantumGraph`.
198 
199  Parameters
200  ----------
201  butler : `lsst.daf.butler.Bulter`
202  This is the existing `~lsst.daf.butler.Butler` instance from which
203  existing datasets will be exported. This should be the
204  `~lsst.daf.butler.Butler` which was used to create any `QuantumGraphs`
205  that will be converted with this object.
206  graph : `QuantumGraph`
207  Graph containing nodes that are to be exported into an execution
208  butler
209  outputLocation : `str` or `~lsst.daf.butler.ButlerURI`
210  URI Location at which the execution butler is to be exported. May be
211  specified as a string or a ButlerURI instance.
212  run : `str` optional
213  The run collection that the exported datasets are to be placed in. If
214  None, the default value in registry.defaults will be used.
215  clobber : `bool`, Optional
216  By default a butler will not be created if a file or directory
217  already exists at the output location. If this is set to `True`
218  what is at the location will be deleted prior to running the
219  export. Defaults to `False`
220  butlerModifier : `~typing.Callable`, Optional
221  If supplied this should be a callable that accepts a
222  `~lsst.daf.butler.Butler`, and returns an instantiated
223  `~lsst.daf.butler.Butler`. This callable may be used to make any
224  modifications to the `~lsst.daf.butler.Butler` desired. This
225  will be called after importing all datasets that exist in the input
226  `~lsst.daf.butler.Butler` but prior to inserting Datasets expected
227  to be produced. Examples of what this method could do include
228  things such as creating collections/runs/ etc.
229  collections : `~typing.Iterable` of `str`, Optional
230  An iterable of collection names that will be exported from the input
231  `~lsst.daf.butler.Butler` when creating the execution butler. If not
232  supplied the `~lsst.daf.butler.Butler`\ 's `~lsst.daf.butler.Registry`
233  default collections will be used.
234 
235  Returns
236  -------
237  executionButler : `lsst.daf.butler.Butler`
238  An instance of the newly created execution butler
239 
240  Raises
241  ------
242  FileExistsError
243  Raised if something exists in the filesystem at the specified output
244  location and clobber is `False`
245  NotADirectoryError
246  Raised if specified output URI does not correspond to a directory
247  """
248  outputLocation = ButlerURI(outputLocation)
249 
250  # Do this first to Fail Fast if the output exists
251  if (dirExists := outputLocation.exists()) and not clobber:
252  raise FileExistsError("Cannot create a butler at specified location, location exists")
253  if not outputLocation.isdir():
254  raise NotADirectoryError("The specified output URI does not appear to correspond to a directory")
255 
256  exports, inserts = _accumulate(graph)
257  yamlBuffer = _export(butler, collections, exports)
258 
259  newButler = _setupNewButler(butler, outputLocation, dirExists)
260 
261  return _import(yamlBuffer, newButler, inserts, run, butlerModifier)

Variable Documentation

◆ DataSetTypeMap

lsst.pipe.base.executionButlerBuilder.DataSetTypeMap = Mapping[DatasetType, Set[DataCoordinate]]

Definition at line 38 of file executionButlerBuilder.py.