lsst-pipe-base 29.2025.1300__tar.gz → 29.2025.1400__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lsst_pipe_base-29.2025.1300/python/lsst_pipe_base.egg-info → lsst_pipe_base-29.2025.1400}/PKG-INFO +1 -1
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/all_dimensions_quantum_graph_builder.py +4 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/quantum_graph_skeleton.py +7 -0
- lsst_pipe_base-29.2025.1400/python/lsst/pipe/base/version.py +2 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400/python/lsst_pipe_base.egg-info}/PKG-INFO +1 -1
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_graphBuilder.py +70 -2
- lsst_pipe_base-29.2025.1300/python/lsst/pipe/base/version.py +0 -2
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/COPYRIGHT +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/LICENSE +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/MANIFEST.in +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/README.md +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/bsd_license.txt +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/doc/lsst.pipe.base/CHANGES.rst +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/doc/lsst.pipe.base/creating-a-pipeline.rst +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/doc/lsst.pipe.base/creating-a-pipelinetask.rst +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/doc/lsst.pipe.base/creating-a-task.rst +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/doc/lsst.pipe.base/index.rst +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/doc/lsst.pipe.base/task-framework-overview.rst +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/doc/lsst.pipe.base/task-retargeting-howto.rst +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/doc/lsst.pipe.base/testing-a-pipeline-task.rst +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/doc/lsst.pipe.base/testing-pipelines-with-mocks.rst +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/doc/lsst.pipe.base/working-with-pipeline-graphs.rst +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/gpl-v3.0.txt +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/pyproject.toml +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_datasetQueryConstraints.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_dataset_handle.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_instrument.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_observation_dimension_packer.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_quantumContext.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_status.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_task_metadata.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/automatic_connection_constants.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/caching_limited_butler.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/cli/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/cli/_get_cli_subcommands.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/cli/cmd/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/cli/cmd/commands.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/cli/opt/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/cli/opt/arguments.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/cli/opt/options.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/config.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/configOverrides.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/connectionTypes.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/connections.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/dot_tools.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/executionButlerBuilder.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/execution_reports.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/formatters/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/formatters/pexConfig.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/graph/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/graph/_implDetails.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/graph/_loadHelpers.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/graph/_versionDeserializers.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/graph/graph.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/graph/graphSummary.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/graph/quantumNode.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/mermaid_tools.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipelineIR.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipelineTask.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/__main__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/_dataset_types.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/_edges.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/_exceptions.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/_mapping_views.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/_nodes.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/_pipeline_graph.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/_task_subsets.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/_tasks.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/io.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/visualization/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/visualization/_dot.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/visualization/_formatting.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/visualization/_layout.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/visualization/_merge.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/visualization/_mermaid.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/visualization/_options.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/visualization/_printer.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline_graph/visualization/_show.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/prerequisite_helpers.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/py.typed +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/quantum_graph_builder.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/quantum_provenance_graph.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/script/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/script/register_instrument.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/script/retrieve_artifacts_for_quanta.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/script/transfer_from_graph.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/script/zip_from_graph.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/struct.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/task.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/taskFactory.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/testUtils.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/tests/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/tests/mocks/__init__.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/tests/mocks/_data_id_match.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/tests/mocks/_pipeline_task.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/tests/mocks/_storage_class.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/tests/no_dimensions.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/tests/pipelineStepTester.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/tests/simpleQGraph.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/tests/util.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/utils.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst_pipe_base.egg-info/SOURCES.txt +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst_pipe_base.egg-info/dependency_links.txt +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst_pipe_base.egg-info/entry_points.txt +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst_pipe_base.egg-info/requires.txt +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst_pipe_base.egg-info/top_level.txt +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst_pipe_base.egg-info/zip-safe +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/setup.cfg +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_adjust_all_quanta.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_caching_limited_butler.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_cliCmdRegisterInstrument.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_configOverrides.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_config_formatter.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_connections.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_dataid_match.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_dataset_handle.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_dot_tools.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_dynamic_connections.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_executionButler.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_execution_reports.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_init_output_run.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_instrument.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_mermaid.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_pipeline.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_pipelineIR.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_pipelineLoadSubset.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_pipelineTask.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_pipeline_graph.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_quantumGraph.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_quantum_provenance_graph.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_quantum_success_caveats.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_struct.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_task.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_taskmetadata.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_testUtils.py +0 -0
- {lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_utils.py +0 -0
{lsst_pipe_base-29.2025.1300/python/lsst_pipe_base.egg-info → lsst_pipe_base-29.2025.1400}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-pipe-base
|
|
3
|
-
Version: 29.2025.
|
|
3
|
+
Version: 29.2025.1400
|
|
4
4
|
Summary: Pipeline infrastructure for the Rubin Science Pipelines.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License: BSD 3-Clause License
|
|
@@ -130,6 +130,10 @@ class AllDimensionsQuantumGraphBuilder(QuantumGraphBuilder):
|
|
|
130
130
|
tree = _DimensionGroupTree(subgraph)
|
|
131
131
|
self._query_for_data_ids(tree)
|
|
132
132
|
skeleton = self._make_subgraph_skeleton(tree)
|
|
133
|
+
if not skeleton.has_any_quanta:
|
|
134
|
+
# QG is going to be empty; exit early not just for efficiency, but
|
|
135
|
+
# also so downstream code doesn't have to guard against this case.
|
|
136
|
+
return skeleton
|
|
133
137
|
self._find_followup_datasets(tree, skeleton)
|
|
134
138
|
dimension_records = self._fetch_most_dimension_records(tree)
|
|
135
139
|
leftovers = self._attach_most_dimension_records(skeleton, dimension_records)
|
|
@@ -194,6 +194,13 @@ class QuantumGraphSkeleton:
|
|
|
194
194
|
"""The total number of edges."""
|
|
195
195
|
return len(self._xgraph.edges)
|
|
196
196
|
|
|
197
|
+
@property
|
|
198
|
+
def has_any_quanta(self) -> bool:
|
|
199
|
+
"""Test whether this graph has any quanta."""
|
|
200
|
+
for _ in self.iter_all_quanta():
|
|
201
|
+
return True
|
|
202
|
+
return False
|
|
203
|
+
|
|
197
204
|
def has_task(self, task_label: str) -> bool:
|
|
198
205
|
"""Test whether the given task is in this skeleton.
|
|
199
206
|
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400/python/lsst_pipe_base.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-pipe-base
|
|
3
|
-
Version: 29.2025.
|
|
3
|
+
Version: 29.2025.1400
|
|
4
4
|
Summary: Pipeline infrastructure for the Rubin Science Pipelines.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License: BSD 3-Clause License
|
|
@@ -32,10 +32,21 @@ import logging
|
|
|
32
32
|
import unittest
|
|
33
33
|
|
|
34
34
|
import lsst.utils.tests
|
|
35
|
+
from lsst.daf.butler import Butler, DatasetType
|
|
35
36
|
from lsst.daf.butler.registry import UserExpressionError
|
|
36
|
-
from lsst.pipe.base import QuantumGraph
|
|
37
|
-
from lsst.pipe.base.all_dimensions_quantum_graph_builder import
|
|
37
|
+
from lsst.pipe.base import PipelineGraph, QuantumGraph
|
|
38
|
+
from lsst.pipe.base.all_dimensions_quantum_graph_builder import (
|
|
39
|
+
AllDimensionsQuantumGraphBuilder,
|
|
40
|
+
DatasetQueryConstraintVariant,
|
|
41
|
+
)
|
|
38
42
|
from lsst.pipe.base.tests import simpleQGraph
|
|
43
|
+
from lsst.pipe.base.tests.mocks import (
|
|
44
|
+
DynamicConnectionConfig,
|
|
45
|
+
DynamicTestPipelineTask,
|
|
46
|
+
DynamicTestPipelineTaskConfig,
|
|
47
|
+
MockDataset,
|
|
48
|
+
MockStorageClass,
|
|
49
|
+
)
|
|
39
50
|
from lsst.utils.tests import temporaryDirectory
|
|
40
51
|
|
|
41
52
|
_LOG = logging.getLogger(__name__)
|
|
@@ -82,6 +93,63 @@ class GraphBuilderTestCase(unittest.TestCase):
|
|
|
82
93
|
)
|
|
83
94
|
self.assertEqual(len(qgraph3), 5)
|
|
84
95
|
|
|
96
|
+
def test_empty_qg(self):
|
|
97
|
+
"""Test that making an empty QG doesn't raise exceptions."""
|
|
98
|
+
config = DynamicTestPipelineTaskConfig()
|
|
99
|
+
config.inputs["i"] = DynamicConnectionConfig(
|
|
100
|
+
dataset_type_name="input",
|
|
101
|
+
storage_class="StructuredDataDict",
|
|
102
|
+
dimensions=["detector"],
|
|
103
|
+
)
|
|
104
|
+
config.init_inputs["ii"] = DynamicConnectionConfig(
|
|
105
|
+
dataset_type_name="init_input",
|
|
106
|
+
storage_class="StructuredDataDict",
|
|
107
|
+
)
|
|
108
|
+
config.outputs["o"] = DynamicConnectionConfig(
|
|
109
|
+
dataset_type_name="output",
|
|
110
|
+
storage_class="StructuredDataDict",
|
|
111
|
+
dimensions=["detector"],
|
|
112
|
+
)
|
|
113
|
+
config.init_outputs["io"] = DynamicConnectionConfig(
|
|
114
|
+
dataset_type_name="init_output",
|
|
115
|
+
storage_class="StructuredDataDict",
|
|
116
|
+
)
|
|
117
|
+
pipeline_graph = PipelineGraph()
|
|
118
|
+
pipeline_graph.add_task("a", DynamicTestPipelineTask, config)
|
|
119
|
+
with temporaryDirectory() as repo_path:
|
|
120
|
+
Butler.makeRepo(repo_path)
|
|
121
|
+
butler = Butler.from_config(repo_path, writeable=True, run="test_empty_qg")
|
|
122
|
+
MockStorageClass.get_or_register_mock("StructuredDataDict")
|
|
123
|
+
butler.registry.registerDatasetType(
|
|
124
|
+
DatasetType(
|
|
125
|
+
"input",
|
|
126
|
+
dimensions=butler.dimensions.conform(["detector"]),
|
|
127
|
+
storageClass="_mock_StructuredDataDict",
|
|
128
|
+
)
|
|
129
|
+
)
|
|
130
|
+
init_input_dataset_type = DatasetType(
|
|
131
|
+
"init_input",
|
|
132
|
+
dimensions=butler.dimensions.empty,
|
|
133
|
+
storageClass="_mock_StructuredDataDict",
|
|
134
|
+
)
|
|
135
|
+
butler.registry.registerDatasetType(init_input_dataset_type)
|
|
136
|
+
# Init-input initially exists, but input does not (hence empty QG).
|
|
137
|
+
butler.put(
|
|
138
|
+
MockDataset(
|
|
139
|
+
dataset_id=None,
|
|
140
|
+
dataset_type=init_input_dataset_type.to_simple(),
|
|
141
|
+
data_id={},
|
|
142
|
+
run=butler.run,
|
|
143
|
+
),
|
|
144
|
+
"init_input",
|
|
145
|
+
)
|
|
146
|
+
# Attempt to make QG; should just be empty, with no exceptions.
|
|
147
|
+
self.assertFalse(AllDimensionsQuantumGraphBuilder(pipeline_graph, butler).build())
|
|
148
|
+
# Initialize the output run, try again, with same expected result.
|
|
149
|
+
pipeline_graph.register_dataset_types(butler)
|
|
150
|
+
pipeline_graph.init_output_run(butler)
|
|
151
|
+
self.assertFalse(AllDimensionsQuantumGraphBuilder(pipeline_graph, butler).build())
|
|
152
|
+
|
|
85
153
|
# Inconsistent governor dimensions are no longer an error, so this test
|
|
86
154
|
# fails with the new query system. We should probably check instead that
|
|
87
155
|
# logging includes an explanation for the empty QG, but it might not
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/doc/lsst.pipe.base/creating-a-task.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_dataset_handle.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_instrument.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_quantumContext.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_status.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/_task_metadata.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/cli/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/cli/opt/options.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/configOverrides.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/connectionTypes.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/connections.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/dot_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/graph/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/graph/graph.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/mermaid_tools.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipeline.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipelineIR.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/pipelineTask.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/script/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/taskFactory.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/testUtils.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/tests/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst/pipe/base/tests/util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/python/lsst_pipe_base.egg-info/zip-safe
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_caching_limited_butler.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_cliCmdRegisterInstrument.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_dynamic_connections.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_pipelineLoadSubset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_quantum_provenance_graph.py
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1300 → lsst_pipe_base-29.2025.1400}/tests/test_quantum_success_caveats.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|