lsst-pipe-base v25.0.0 (2023-02-28)¶
This is the first release without any support for the Generation 2 middleware.
New Features¶
- Added - PipelineStepTesterclass, to enable testing that multi-step pipelines are able to run without error. (DM-33779)
- QuantumGraphnow saves the- DimensionUniverseit was created with when it is persisted. This removes the need to explicitly pass the- DimensionUniversewhen loading a saved graph. (DM-35082)
- Added support for transferring files into execution butler. (DM-35494) 
 
- A new class - InMemoryDatasetHandleis now available. This class provides a variant of- lsst.daf.butler.DeferredDatasetHandlethat does not require a butler and lets you store your in-memory objects in something that looks like one and so can be passed to- Task.run()methods that expect to be able to do deferred loading. (DM-35741)
- Add unit test to cover the new - getNumberOfQuantaForTaskmethod.
- Add graph interface, - getNumberOfQuantaForTask, to determine number of quanta associated with a given- taskDef.
- Modifications to - getQuantaForTaskto support showing added additional quanta information in the logger. (DM-36145)
 
- Allow - PipelineTasksto provide defaults for the- --dataset-query-constraintsoption for the- pipetasktool. (DM-37786)
API Changes¶
- ButlerQuantumContext.getmethod can accept- Noneas a reference and returns- Noneas a result object. (DM-35752)
- GraphBuilder.makeGraphmethod adds- bindparameter for bind values to use with the user expression. (DM-36487)
- InMemoryDatasetHandlenow supports storage class conversion on- get(). (DM-4551)
Bug Fixes¶
- lsst.pipe.base.testUtils.makeQuantumno longer crashes if given a connection that is set to a dataset component. (DM-35721)
- Ensure - QuantumGraphsare given a- DimensionUniverseat construction.- This fixes a mostly-spurious dimension universe inconsistency warning when reading QuantumGraphs, introduced on DM-35082. (DM-35681) 
- Fixed an error message that says that repository state has changed during - QuantumGraphgeneration when init input datasets are just missing. (DM-37786)
Other Changes and Additions¶
- Make diagnostic logging for empty - QuantumGraphsharder to ignore.- Log messages have been upgraded from - WARNINGto- FATAL, and an exception traceback that tends to hide them has been removed. (DM-36360)
An API Removal or Deprecation¶
- Removed the - Task.getSchemaCatalogsand- Task.getAllSchemaCatalogsAPIs. These were used by- CmdLineTaskbut are no longer used in the current middleware. (DM-2850)
- Relocated - lsst.pipe.base.cmdLineTask.profileto- lsst.utils.timer.profile. This was relocated as part of the Gen2 removal that includes the removal of- CmdLineTask. (DM-35697)
- ArgumentParser,- CmdLineTask, and- TaskRunnerclasses have been removed and associated gen2 documentation.
- The - PipelineIR.from_file()method has been removed.
- The - getTaskLoggerfunction has been removed. (DM-35917)
 
- Replaced - CmdLineTaskand- ArgumentParserwith non-functioning stubs, disabling all Gen2 functionality. A deprecation message is now issued but the classes do nothing. (DM-35675)
lsst-pipe-base v24.0.0 (2022-08-26)¶
New Features¶
- Add the ability for user control over dataset constraints in - QuantumGraphcreation. (DM-31769)
- Builds using - setuptoolsnow calculate versions from the Git repository, including the use of alpha releases for those associated with weekly tags. (DM-32408)
- Improve diagnostics for empty - QuantumGraph. (DM-32459)
- A new class has been written for handling - Taskmetadata.- lsst.pipe.base.TaskMetadatawill in future become the default metadata class for- Task, replacing- lsst.daf.base.PropertySet. The new metadata class is not yet enabled by default. (DM-32682)
- Add - TaskMetadata.to_dict()method (this is now used by the- lsst.daf.base.PropertySet.from_mapping()method and triggered by the Butler if type conversion is needed).
- Use the existing metadata storage class definition if one already exists in a repository. 
- Switch - Taskto use- TaskMetadatafor storing task metadata, rather than- lsst.daf.base.PropertySet. This removes a C++ dependency from the middleware. (DM-33155)
 
- Added - lsst.pipe.base.Instrumentto represent an instrument in Butler registry.
- Added - butler register-instrumentcommand (relocated from- obs_base).
 
Bug Fixes¶
- Fixed a bug where imported pipeline parameters were taking preference over “top-level” preferences (DM-32080) 
Other Changes and Additions¶
- If a - PipelineTaskhas connections that have a different storage class for a dataset type than the one defined in registry, this will now be allowed if the storage classes are compatible. The- Task- run()method will be given the Python type it expects and can return the Python type it has declared it returns. The Butler will do the type conversion automatically. (DM-33303)
- Topological sorting of pipelines on write has been disabled; the order in which the pipeline tasks were read/added is preserved instead. This makes it unnecessary to import all tasks referenced by the pipeline in order to write it. (DM-34155) 
lsst-pipe-base v23.0.1 (2022-02-02)¶
Miscellaneous Changes of Minor Interest¶
- Execution butler creation time has been reduced significantly by avoiding unnecessary checks for existence of files in the datastore. (DM-33345) 
lsst-pipe-base v23.0.0 (2021-12-10)¶
New Features¶
- Added a new facility for creating “lightweight” (execution) butlers that pre-fills a local SQLite registry. This can allow a pipeline to be executed without talking to the main registry. (DM-28646) 
- Allow - PipelineTasksinputs and outputs to be optional under certain conditions, so tasks with no work to do can be skipped without blocking downstream tasks from running. (DM-30649)
- Log diagnostic information when QuantumGraphs are empty because the initial query yielded no results. - At present, these diagnostics only cover missing input datasets, which is a common way to get an empty QuantumGraph, but not the only way. (DM-31583) 
API Changes¶
- GraphBuilderconstructor boolean argument- skipExistingis replaced with- skipExistingInwhich accepts collections to check for existing quantum outputs. (DM-27492)
Other Changes and Additions¶
- The logger associated with - Taskis now derived from a Python- logging.Loggerand not- lsst.log.Log. This logger includes a new- verbose()log method as an intermediate between- INFOand- DEBUG. (DM-30301)
- Added metadata to QuantumGraphs. This changed the on disk save format, but is backwards compatible with graphs saved with previous versions of the QuantumGraph code. (DM-30702) 
- All Doxygen documentation has been removed and replaced by Sphinx. (DM-23330) 
- New documentation on writing pipelines has been added. (DM-27416) 
lsst-pipe-base v22.0 (2021-04-01)¶
New Features¶
- Add ways to test a PipelineTask’s init inputs/outputs [DM-23156] 
- Pipelines can now support URIs [DM-28036] 
- Graph files can now be loaded and saved via URIs [DM-27682] 
- A new format for saving graphs has been developed (with a - .qgraphextension). This format supports the ability to read a subset of a graph from an object store. [DM-27784]
- Graph building with a pipeline that specifies an instrument no longer needs an explicit instrument to be given. [DM-27985] 
- A - parameterssection has been added to pipeline definitions. [DM-27633]