lsst-pipe-base 30.0.0rc3__py3-none-any.whl → 30.0.1__py3-none-any.whl
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/_instrument.py +25 -15
- lsst/pipe/base/_quantumContext.py +3 -3
- lsst/pipe/base/_status.py +43 -10
- lsst/pipe/base/_task_metadata.py +2 -2
- lsst/pipe/base/all_dimensions_quantum_graph_builder.py +8 -3
- lsst/pipe/base/automatic_connection_constants.py +20 -1
- lsst/pipe/base/cli/cmd/__init__.py +18 -2
- lsst/pipe/base/cli/cmd/commands.py +149 -4
- lsst/pipe/base/connectionTypes.py +72 -160
- lsst/pipe/base/connections.py +6 -9
- lsst/pipe/base/execution_reports.py +0 -5
- lsst/pipe/base/graph/graph.py +11 -10
- lsst/pipe/base/graph/quantumNode.py +4 -4
- lsst/pipe/base/graph_walker.py +8 -10
- lsst/pipe/base/log_capture.py +1 -1
- lsst/pipe/base/log_on_close.py +4 -7
- lsst/pipe/base/pipeline.py +5 -6
- lsst/pipe/base/pipelineIR.py +2 -8
- lsst/pipe/base/pipelineTask.py +5 -7
- lsst/pipe/base/pipeline_graph/_dataset_types.py +2 -2
- lsst/pipe/base/pipeline_graph/_edges.py +32 -22
- lsst/pipe/base/pipeline_graph/_mapping_views.py +4 -7
- lsst/pipe/base/pipeline_graph/_pipeline_graph.py +14 -7
- lsst/pipe/base/pipeline_graph/expressions.py +2 -2
- lsst/pipe/base/pipeline_graph/io.py +7 -10
- lsst/pipe/base/pipeline_graph/visualization/_dot.py +13 -12
- lsst/pipe/base/pipeline_graph/visualization/_layout.py +16 -18
- lsst/pipe/base/pipeline_graph/visualization/_merge.py +4 -7
- lsst/pipe/base/pipeline_graph/visualization/_printer.py +10 -10
- lsst/pipe/base/pipeline_graph/visualization/_status_annotator.py +7 -0
- lsst/pipe/base/prerequisite_helpers.py +2 -1
- lsst/pipe/base/quantum_graph/_common.py +15 -17
- lsst/pipe/base/quantum_graph/_multiblock.py +36 -20
- lsst/pipe/base/quantum_graph/_predicted.py +7 -3
- lsst/pipe/base/quantum_graph/_provenance.py +501 -61
- lsst/pipe/base/quantum_graph/aggregator/__init__.py +0 -1
- lsst/pipe/base/quantum_graph/aggregator/_communicators.py +187 -240
- lsst/pipe/base/quantum_graph/aggregator/_config.py +87 -9
- lsst/pipe/base/quantum_graph/aggregator/_ingester.py +13 -12
- lsst/pipe/base/quantum_graph/aggregator/_scanner.py +15 -7
- lsst/pipe/base/quantum_graph/aggregator/_structs.py +3 -3
- lsst/pipe/base/quantum_graph/aggregator/_supervisor.py +19 -34
- lsst/pipe/base/quantum_graph/aggregator/_workers.py +303 -0
- lsst/pipe/base/quantum_graph/aggregator/_writer.py +3 -3
- lsst/pipe/base/quantum_graph/formatter.py +74 -4
- lsst/pipe/base/quantum_graph/ingest_graph.py +413 -0
- lsst/pipe/base/quantum_graph/visualization.py +5 -1
- lsst/pipe/base/quantum_graph_builder.py +21 -8
- lsst/pipe/base/quantum_graph_skeleton.py +31 -29
- lsst/pipe/base/quantum_provenance_graph.py +29 -12
- lsst/pipe/base/separable_pipeline_executor.py +1 -1
- lsst/pipe/base/single_quantum_executor.py +15 -8
- lsst/pipe/base/struct.py +4 -0
- lsst/pipe/base/testUtils.py +3 -3
- lsst/pipe/base/tests/mocks/_storage_class.py +2 -1
- lsst/pipe/base/version.py +1 -1
- {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1.dist-info}/METADATA +3 -3
- lsst_pipe_base-30.0.1.dist-info/RECORD +129 -0
- {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1.dist-info}/WHEEL +1 -1
- lsst_pipe_base-30.0.0rc3.dist-info/RECORD +0 -127
- {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1.dist-info}/entry_points.txt +0 -0
- {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1.dist-info}/licenses/COPYRIGHT +0 -0
- {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1.dist-info}/licenses/LICENSE +0 -0
- {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1.dist-info}/licenses/bsd_license.txt +0 -0
- {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1.dist-info}/licenses/gpl-v3.0.txt +0 -0
- {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1.dist-info}/top_level.txt +0 -0
- {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1.dist-info}/zip-safe +0 -0
|
@@ -42,7 +42,7 @@ __all__ = (
|
|
|
42
42
|
import dataclasses
|
|
43
43
|
from collections import defaultdict
|
|
44
44
|
from collections.abc import Iterable, Iterator, MutableMapping, Set
|
|
45
|
-
from typing import TYPE_CHECKING, Any, ClassVar, Literal
|
|
45
|
+
from typing import TYPE_CHECKING, Any, ClassVar, Literal
|
|
46
46
|
|
|
47
47
|
import networkx
|
|
48
48
|
|
|
@@ -145,7 +145,7 @@ class PrerequisiteDatasetKey:
|
|
|
145
145
|
is_prerequisite: ClassVar[Literal[True]] = True
|
|
146
146
|
|
|
147
147
|
|
|
148
|
-
Key
|
|
148
|
+
type Key = QuantumKey | TaskInitKey | DatasetKey | PrerequisiteDatasetKey
|
|
149
149
|
|
|
150
150
|
|
|
151
151
|
class QuantumGraphSkeleton:
|
|
@@ -571,12 +571,13 @@ class QuantumGraphSkeleton:
|
|
|
571
571
|
def set_dataset_ref(
|
|
572
572
|
self, ref: DatasetRef, key: DatasetKey | PrerequisiteDatasetKey | None = None
|
|
573
573
|
) -> None:
|
|
574
|
-
"""Associate a dataset node with a
|
|
574
|
+
"""Associate a dataset node with a `~lsst.daf.butler.DatasetRef`
|
|
575
|
+
instance.
|
|
575
576
|
|
|
576
577
|
Parameters
|
|
577
578
|
----------
|
|
578
|
-
ref :
|
|
579
|
-
|
|
579
|
+
ref : `~lsst.daf.butler.DatasetRef`
|
|
580
|
+
`~lsst.daf.butler.DatasetRef` to associate with the node.
|
|
580
581
|
key : `DatasetKey` or `PrerequisiteDatasetKey`, optional
|
|
581
582
|
Identifier for the graph node. If not provided, a `DatasetKey`
|
|
582
583
|
is constructed from the dataset type name and data ID of ``ref``.
|
|
@@ -586,32 +587,33 @@ class QuantumGraphSkeleton:
|
|
|
586
587
|
self._xgraph.nodes[key]["ref"] = ref
|
|
587
588
|
|
|
588
589
|
def set_output_for_skip(self, ref: DatasetRef) -> None:
|
|
589
|
-
"""Associate a dataset node with a
|
|
590
|
-
existing output in a collection where such outputs can
|
|
591
|
-
to be skipped.
|
|
590
|
+
"""Associate a dataset node with a `~lsst.daf.butler.DatasetRef` that
|
|
591
|
+
represents an existing output in a collection where such outputs can
|
|
592
|
+
cause a quantum to be skipped.
|
|
592
593
|
|
|
593
594
|
Parameters
|
|
594
595
|
----------
|
|
595
|
-
ref :
|
|
596
|
-
|
|
596
|
+
ref : `~lsst.daf.butler.DatasetRef`
|
|
597
|
+
`~lsst.daf.butler.DatasetRef` to associate with the node.
|
|
597
598
|
"""
|
|
598
599
|
key = DatasetKey(ref.datasetType.name, ref.dataId.required_values)
|
|
599
600
|
self._xgraph.nodes[key]["output_for_skip"] = ref
|
|
600
601
|
|
|
601
602
|
def set_output_in_the_way(self, ref: DatasetRef) -> None:
|
|
602
|
-
"""Associate a dataset node with a
|
|
603
|
-
existing output in the output RUN collection.
|
|
603
|
+
"""Associate a dataset node with a `~lsst.daf.butler.DatasetRef` that
|
|
604
|
+
represents an existing output in the output RUN collection.
|
|
604
605
|
|
|
605
606
|
Parameters
|
|
606
607
|
----------
|
|
607
|
-
ref :
|
|
608
|
-
|
|
608
|
+
ref : `~lsst.daf.butler.DatasetRef`
|
|
609
|
+
`~lsst.daf.butler.DatasetRef` to associate with the node.
|
|
609
610
|
"""
|
|
610
611
|
key = DatasetKey(ref.datasetType.name, ref.dataId.required_values)
|
|
611
612
|
self._xgraph.nodes[key]["output_in_the_way"] = ref
|
|
612
613
|
|
|
613
614
|
def get_dataset_ref(self, key: DatasetKey | PrerequisiteDatasetKey) -> DatasetRef | None:
|
|
614
|
-
"""Return the
|
|
615
|
+
"""Return the `~lsst.daf.butler.DatasetRef` associated with the given
|
|
616
|
+
node.
|
|
615
617
|
|
|
616
618
|
This does not return "output for skip" and "output in the way"
|
|
617
619
|
datasets.
|
|
@@ -623,14 +625,14 @@ class QuantumGraphSkeleton:
|
|
|
623
625
|
|
|
624
626
|
Returns
|
|
625
627
|
-------
|
|
626
|
-
ref :
|
|
628
|
+
ref : `~lsst.daf.butler.DatasetRef` or `None`
|
|
627
629
|
Dataset reference associated with the node.
|
|
628
630
|
"""
|
|
629
631
|
return self._xgraph.nodes[key].get("ref")
|
|
630
632
|
|
|
631
633
|
def get_output_for_skip(self, key: DatasetKey) -> DatasetRef | None:
|
|
632
|
-
"""Return the
|
|
633
|
-
collection where it could lead to a quantum being skipped.
|
|
634
|
+
"""Return the `~lsst.daf.butler.DatasetRef` associated with the given
|
|
635
|
+
node in a collection where it could lead to a quantum being skipped.
|
|
634
636
|
|
|
635
637
|
Parameters
|
|
636
638
|
----------
|
|
@@ -639,14 +641,14 @@ class QuantumGraphSkeleton:
|
|
|
639
641
|
|
|
640
642
|
Returns
|
|
641
643
|
-------
|
|
642
|
-
ref :
|
|
644
|
+
ref : `~lsst.daf.butler.DatasetRef` or `None`
|
|
643
645
|
Dataset reference associated with the node.
|
|
644
646
|
"""
|
|
645
647
|
return self._xgraph.nodes[key].get("output_for_skip")
|
|
646
648
|
|
|
647
649
|
def get_output_in_the_way(self, key: DatasetKey) -> DatasetRef | None:
|
|
648
|
-
"""Return the
|
|
649
|
-
output RUN collection.
|
|
650
|
+
"""Return the `~lsst.daf.butler.DatasetRef` associated with the given
|
|
651
|
+
node in the output RUN collection.
|
|
650
652
|
|
|
651
653
|
Parameters
|
|
652
654
|
----------
|
|
@@ -655,16 +657,16 @@ class QuantumGraphSkeleton:
|
|
|
655
657
|
|
|
656
658
|
Returns
|
|
657
659
|
-------
|
|
658
|
-
ref :
|
|
660
|
+
ref : `~lsst.daf.butler.DatasetRef` or `None`
|
|
659
661
|
Dataset reference associated with the node.
|
|
660
662
|
"""
|
|
661
663
|
return self._xgraph.nodes[key].get("output_in_the_way")
|
|
662
664
|
|
|
663
665
|
def discard_output_in_the_way(self, key: DatasetKey) -> None:
|
|
664
|
-
"""Drop any
|
|
665
|
-
collection.
|
|
666
|
+
"""Drop any `~lsst.daf.butler.DatasetRef` associated with this node in
|
|
667
|
+
the output RUN collection.
|
|
666
668
|
|
|
667
|
-
Does nothing if there is no such
|
|
669
|
+
Does nothing if there is no such `~lsst.daf.butler.DatasetRef`.
|
|
668
670
|
|
|
669
671
|
Parameters
|
|
670
672
|
----------
|
|
@@ -676,8 +678,8 @@ class QuantumGraphSkeleton:
|
|
|
676
678
|
def set_data_id(self, key: Key, data_id: DataCoordinate) -> None:
|
|
677
679
|
"""Set the data ID associated with a node.
|
|
678
680
|
|
|
679
|
-
This updates the data ID in any
|
|
680
|
-
the node via `set_ref`, `set_output_for_skip`, or
|
|
681
|
+
This updates the data ID in any `~lsst.daf.butler.DatasetRef` objects
|
|
682
|
+
associated with the node via `set_ref`, `set_output_for_skip`, or
|
|
681
683
|
`set_output_in_the_way` as well, assuming it is an expanded version
|
|
682
684
|
of the original data ID.
|
|
683
685
|
|
|
@@ -685,7 +687,7 @@ class QuantumGraphSkeleton:
|
|
|
685
687
|
----------
|
|
686
688
|
key : `Key`
|
|
687
689
|
Identifier for the graph node.
|
|
688
|
-
data_id :
|
|
690
|
+
data_id : `~lsst.daf.butler.DataCoordinate`
|
|
689
691
|
Data ID for the node.
|
|
690
692
|
"""
|
|
691
693
|
state: MutableMapping[str, Any] = self._xgraph.nodes[key]
|
|
@@ -710,7 +712,7 @@ class QuantumGraphSkeleton:
|
|
|
710
712
|
|
|
711
713
|
Returns
|
|
712
714
|
-------
|
|
713
|
-
data_id :
|
|
715
|
+
data_id : `~lsst.daf.butler.DataCoordinate`
|
|
714
716
|
Expanded data ID for the node, if one is available.
|
|
715
717
|
|
|
716
718
|
Raises
|
|
@@ -79,6 +79,7 @@ from .automatic_connection_constants import (
|
|
|
79
79
|
METADATA_OUTPUT_CONNECTION_NAME,
|
|
80
80
|
METADATA_OUTPUT_STORAGE_CLASS,
|
|
81
81
|
METADATA_OUTPUT_TEMPLATE,
|
|
82
|
+
PROVENANCE_DATASET_TYPE_NAME,
|
|
82
83
|
)
|
|
83
84
|
from .graph import QuantumGraph, QuantumNode
|
|
84
85
|
|
|
@@ -586,8 +587,8 @@ class TaskSummary(pydantic.BaseModel):
|
|
|
586
587
|
|
|
587
588
|
Unpack the `QuantumInfo` object, sorting quanta of each status into
|
|
588
589
|
the correct place in the `TaskSummary`. If looking for error messages
|
|
589
|
-
in the `Butler` logs is desired, take special care to
|
|
590
|
-
with missing logs.
|
|
590
|
+
in the `lsst.daf.butler.Butler` logs is desired, take special care to
|
|
591
|
+
catch issues with missing logs.
|
|
591
592
|
|
|
592
593
|
Parameters
|
|
593
594
|
----------
|
|
@@ -866,7 +867,7 @@ class DatasetTypeSummary(pydantic.BaseModel):
|
|
|
866
867
|
class Summary(pydantic.BaseModel):
|
|
867
868
|
"""A summary of the contents of the QuantumProvenanceGraph, including
|
|
868
869
|
all information on the quanta for each task and the datasets of each
|
|
869
|
-
|
|
870
|
+
`~lsst.daf.butler.DatasetType`.
|
|
870
871
|
"""
|
|
871
872
|
|
|
872
873
|
tasks: dict[str, TaskSummary] = pydantic.Field(default_factory=dict)
|
|
@@ -885,7 +886,7 @@ class Summary(pydantic.BaseModel):
|
|
|
885
886
|
|
|
886
887
|
Parameters
|
|
887
888
|
----------
|
|
888
|
-
summaries : `
|
|
889
|
+
summaries : `~collections.abc.Sequence` [`Summary`]
|
|
889
890
|
Sequence of all `Summary` objects to aggregate.
|
|
890
891
|
"""
|
|
891
892
|
result = cls()
|
|
@@ -1245,8 +1246,8 @@ class QuantumProvenanceGraph:
|
|
|
1245
1246
|
Returns
|
|
1246
1247
|
-------
|
|
1247
1248
|
dataset_info : `DatasetInfo`
|
|
1248
|
-
The `TypedDict` with information about the
|
|
1249
|
-
pair across all runs.
|
|
1249
|
+
The `TypedDict` with information about the
|
|
1250
|
+
`~lsst.daf.butler.DatasetType`-dataID pair across all runs.
|
|
1250
1251
|
"""
|
|
1251
1252
|
return self._xgraph.nodes[key]
|
|
1252
1253
|
|
|
@@ -1262,6 +1263,7 @@ class QuantumProvenanceGraph:
|
|
|
1262
1263
|
do_store_logs : `bool`
|
|
1263
1264
|
Store the logs in the summary dictionary.
|
|
1264
1265
|
n_cores : `int`, optional
|
|
1266
|
+
Number of cores to use.
|
|
1265
1267
|
|
|
1266
1268
|
Returns
|
|
1267
1269
|
-------
|
|
@@ -1513,8 +1515,22 @@ class QuantumProvenanceGraph:
|
|
|
1513
1515
|
len(self._datasets.keys()),
|
|
1514
1516
|
)
|
|
1515
1517
|
if use_qbb:
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
+
provenance_graph_ref: DatasetRef | None = None
|
|
1519
|
+
try:
|
|
1520
|
+
provenance_graph_ref = butler.find_dataset(
|
|
1521
|
+
PROVENANCE_DATASET_TYPE_NAME, collections=output_run
|
|
1522
|
+
)
|
|
1523
|
+
except MissingDatasetTypeError:
|
|
1524
|
+
pass
|
|
1525
|
+
if provenance_graph_ref is not None:
|
|
1526
|
+
_LOG.warning(
|
|
1527
|
+
"Cannot use QBB for metadata/log reads after provenance has been ingested; "
|
|
1528
|
+
"falling back to full butler."
|
|
1529
|
+
)
|
|
1530
|
+
self._butler_wrappers[output_run] = _ThreadLocalButlerWrapper.wrap_full(butler)
|
|
1531
|
+
else:
|
|
1532
|
+
_LOG.verbose("Using quantum-backed butler for metadata loads.")
|
|
1533
|
+
self._butler_wrappers[output_run] = _ThreadLocalButlerWrapper.wrap_qbb(butler, qgraph)
|
|
1518
1534
|
else:
|
|
1519
1535
|
_LOG.verbose("Using full butler for metadata loads.")
|
|
1520
1536
|
self._butler_wrappers[output_run] = _ThreadLocalButlerWrapper.wrap_full(butler)
|
|
@@ -1777,9 +1793,10 @@ class QuantumProvenanceGraph:
|
|
|
1777
1793
|
successes. If "exhaustive", all metadata files will be read. If
|
|
1778
1794
|
"lazy", only metadata files where at least one predicted output is
|
|
1779
1795
|
missing will be read.
|
|
1780
|
-
|
|
1781
|
-
The
|
|
1782
|
-
|
|
1796
|
+
executor : `concurrent.futures.Executor`
|
|
1797
|
+
The futures executor to use.
|
|
1798
|
+
futures : `list` [ `concurrent.futures.Future` ]
|
|
1799
|
+
Current list of futures. Will be modified.
|
|
1783
1800
|
"""
|
|
1784
1801
|
if read_caveats == "lazy" and all(
|
|
1785
1802
|
self.get_dataset_info(dataset_key)["runs"][output_run].produced
|
|
@@ -1994,7 +2011,7 @@ class _ThreadLocalButlerWrapper:
|
|
|
1994
2011
|
full_butler : `~lsst.daf.butler.Butler`
|
|
1995
2012
|
Full butler to draw datastore and dimension configuration from.
|
|
1996
2013
|
qg : `QuantumGraph`
|
|
1997
|
-
Quantum graph
|
|
2014
|
+
Quantum graph.
|
|
1998
2015
|
|
|
1999
2016
|
Returns
|
|
2000
2017
|
-------
|
|
@@ -79,7 +79,7 @@ class SeparablePipelineExecutor:
|
|
|
79
79
|
clobber_output : `bool`, optional
|
|
80
80
|
If set, the pipeline execution overwrites existing output files.
|
|
81
81
|
Otherwise, any conflict between existing and new outputs is an error.
|
|
82
|
-
skip_existing_in :
|
|
82
|
+
skip_existing_in : `~collections.abc.Iterable` [`str`], optional
|
|
83
83
|
If not empty, the pipeline execution searches the listed collections
|
|
84
84
|
for existing outputs, and skips any quanta that have run to completion
|
|
85
85
|
(or have no work to do). Otherwise, all tasks are attempted (subject to
|
|
@@ -78,12 +78,12 @@ class SingleQuantumExecutor(QuantumExecutor):
|
|
|
78
78
|
Instance of a task factory. Defaults to a new instance of
|
|
79
79
|
`lsst.pipe.base.TaskFactory`.
|
|
80
80
|
skip_existing_in : `str` or `~collections.abc.Iterable` [ `str` ]
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
A collection name or list of collections to search for the existing
|
|
82
|
+
outputs of quanta, which indicates that those quanta should be skipped.
|
|
83
|
+
This class only checks for the presence of butler output run in the
|
|
84
|
+
list of collections. If the output run is present in the list then the
|
|
85
|
+
quanta whose complete outputs exist in the output run will be skipped.
|
|
86
|
+
`None` or empty string/sequence disables skipping.
|
|
87
87
|
clobber_outputs : `bool`, optional
|
|
88
88
|
If `True`, then outputs from a quantum that exist in output run
|
|
89
89
|
collection will be removed prior to executing a quantum. If
|
|
@@ -92,7 +92,7 @@ class SingleQuantumExecutor(QuantumExecutor):
|
|
|
92
92
|
`None`.
|
|
93
93
|
enable_lsst_debug : `bool`, optional
|
|
94
94
|
Enable debugging with ``lsstDebug`` facility for a task.
|
|
95
|
-
limited_butler_factory :
|
|
95
|
+
limited_butler_factory : `~collections.abc.Callable`, optional
|
|
96
96
|
A method that creates a `~lsst.daf.butler.LimitedButler` instance for a
|
|
97
97
|
given Quantum. This parameter must be defined if ``butler`` is `None`.
|
|
98
98
|
If ``butler`` is not `None` then this parameter is ignored.
|
|
@@ -254,6 +254,7 @@ class SingleQuantumExecutor(QuantumExecutor):
|
|
|
254
254
|
str(exc),
|
|
255
255
|
)
|
|
256
256
|
quantumMetadata["caveats"] = QuantumSuccessCaveats.from_adjust_quantum_no_work().value
|
|
257
|
+
quantumMetadata["outputs"] = []
|
|
257
258
|
# Make empty metadata that looks something like what a
|
|
258
259
|
# do-nothing task would write (but we don't bother with empty
|
|
259
260
|
# nested PropertySets for subtasks). This is slightly
|
|
@@ -266,7 +267,13 @@ class SingleQuantumExecutor(QuantumExecutor):
|
|
|
266
267
|
if self._job_metadata is not None:
|
|
267
268
|
fullMetadata["job"] = self._job_metadata
|
|
268
269
|
self._write_metadata(quantum, fullMetadata, task_node, limited_butler)
|
|
269
|
-
return QuantumExecutionResult(
|
|
270
|
+
return QuantumExecutionResult(
|
|
271
|
+
quantum,
|
|
272
|
+
report,
|
|
273
|
+
skipped_existing=False,
|
|
274
|
+
adjusted_no_work=True,
|
|
275
|
+
task_metadata=fullMetadata,
|
|
276
|
+
)
|
|
270
277
|
|
|
271
278
|
# enable lsstDebug debugging
|
|
272
279
|
if self._enable_lsst_debug:
|
lsst/pipe/base/struct.py
CHANGED
lsst/pipe/base/testUtils.py
CHANGED
|
@@ -341,7 +341,7 @@ def _assertAttributeMatchesConnection(obj: Any, attrName: str, connection: BaseC
|
|
|
341
341
|
|
|
342
342
|
Raises
|
|
343
343
|
------
|
|
344
|
-
AssertionError
|
|
344
|
+
AssertionError
|
|
345
345
|
Raised if ``obj.attrName`` does not match what's expected
|
|
346
346
|
from ``connection``.
|
|
347
347
|
"""
|
|
@@ -379,7 +379,7 @@ def assertValidOutput(task: PipelineTask, result: Struct) -> None:
|
|
|
379
379
|
|
|
380
380
|
Raises
|
|
381
381
|
------
|
|
382
|
-
AssertionError
|
|
382
|
+
AssertionError
|
|
383
383
|
Raised if ``result`` does not match what's expected from ``task's``
|
|
384
384
|
connections.
|
|
385
385
|
"""
|
|
@@ -402,7 +402,7 @@ def assertValidInitOutput(task: PipelineTask) -> None:
|
|
|
402
402
|
|
|
403
403
|
Raises
|
|
404
404
|
------
|
|
405
|
-
AssertionError
|
|
405
|
+
AssertionError
|
|
406
406
|
Raised if ``task`` does not have the state expected from ``task's``
|
|
407
407
|
connections.
|
|
408
408
|
"""
|
|
@@ -381,7 +381,8 @@ MockDataset.model_rebuild()
|
|
|
381
381
|
|
|
382
382
|
|
|
383
383
|
class MockStorageClassDelegate(StorageClassDelegate):
|
|
384
|
-
"""Implementation of the StorageClassDelegate interface
|
|
384
|
+
"""Implementation of the `~lsst.daf.butler.StorageClassDelegate` interface
|
|
385
|
+
for mock datasets.
|
|
385
386
|
|
|
386
387
|
This class does not implement assembly and disassembly just because it's
|
|
387
388
|
not needed right now. That could be added in the future with some
|
lsst/pipe/base/version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
__all__ = ["__version__"]
|
|
2
|
-
__version__ = "30.0.
|
|
2
|
+
__version__ = "30.0.1"
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-pipe-base
|
|
3
|
-
Version: 30.0.
|
|
3
|
+
Version: 30.0.1
|
|
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-Expression: BSD-3-Clause OR GPL-3.0-or-later
|
|
7
7
|
Project-URL: Homepage, https://github.com/lsst/pipe_base
|
|
8
|
+
Project-URL: Source, https://github.com/lsst/pipe_base
|
|
8
9
|
Keywords: lsst
|
|
9
10
|
Classifier: Intended Audience :: Science/Research
|
|
10
11
|
Classifier: Operating System :: OS Independent
|
|
11
12
|
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.14
|
|
16
16
|
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
17
|
-
Requires-Python: >=3.
|
|
17
|
+
Requires-Python: >=3.12.0
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: COPYRIGHT
|
|
20
20
|
License-File: LICENSE
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
lsst/__init__.py,sha256=_2bZAHuDVAx7MM7KA7pt3DYp641NY4RzSoRAwesWKfU,67
|
|
2
|
+
lsst/pipe/__init__.py,sha256=_2bZAHuDVAx7MM7KA7pt3DYp641NY4RzSoRAwesWKfU,67
|
|
3
|
+
lsst/pipe/base/__init__.py,sha256=qBLN0yYQjIcLBLb4jFKM_ppopuqTnCehcUdFcEe69Js,970
|
|
4
|
+
lsst/pipe/base/_datasetQueryConstraints.py,sha256=bFH0_lVc49NS2_4v_i6r9POr500c0K-OHLMhMX5FjkQ,6373
|
|
5
|
+
lsst/pipe/base/_dataset_handle.py,sha256=ft_ke1LbhLLndDPARsHSQJUA05LgUFnfWOq2vbwH3wI,11353
|
|
6
|
+
lsst/pipe/base/_instrument.py,sha256=T7cLScH1I0sVDpPdW2LpXdTRP4n2EDpiSD4SKdy2zzc,30621
|
|
7
|
+
lsst/pipe/base/_observation_dimension_packer.py,sha256=78Jg2OVFOdXIK62TS2Y3X4095xqCzmiIx9o4TXyADYA,8027
|
|
8
|
+
lsst/pipe/base/_quantumContext.py,sha256=b6gQV0z38HhDK6yZbPT3m5a2aIyO9HwixQxeJEs8xPc,19394
|
|
9
|
+
lsst/pipe/base/_status.py,sha256=ak8Cpj87-8uVp4ssfuHY6vcE5xzjIYVYHDZ_tA8zySA,22220
|
|
10
|
+
lsst/pipe/base/_task_metadata.py,sha256=ak-EZFs0DmcRA-9Onk1UuoA_zkvdVPniYPNS1Ts0uQ4,25611
|
|
11
|
+
lsst/pipe/base/all_dimensions_quantum_graph_builder.py,sha256=v04C4aKy9ctN1PXgfsloaOWOZnyArISb9AmDXyETT6E,71188
|
|
12
|
+
lsst/pipe/base/automatic_connection_constants.py,sha256=i_V6FCsP8cORlsoH8gpDYnWiPVvjY2tbfGxREgne34w,3972
|
|
13
|
+
lsst/pipe/base/caching_limited_butler.py,sha256=FEQK_QesUWG9sK0w9m6_SA5OPcrd6vqyq8oDKE9Wu6I,7858
|
|
14
|
+
lsst/pipe/base/config.py,sha256=yNipVEc6awwhU_O9I01g20OnvQrs28dAwkXuI1hrlYE,11982
|
|
15
|
+
lsst/pipe/base/configOverrides.py,sha256=B0An8EaX76VzWnC5dJxvyZ2AhVzawMtq7qlE9ma5lkc,14661
|
|
16
|
+
lsst/pipe/base/connectionTypes.py,sha256=RbhGQpEdwpnDlexV_FoWoYBwcayHXsW0TZevtvK1s5c,11251
|
|
17
|
+
lsst/pipe/base/connections.py,sha256=cQcHSxL59-3EnUM4JF-G_paHKDY-d45gWXWGKXsmUZ0,67068
|
|
18
|
+
lsst/pipe/base/dot_tools.py,sha256=vriWMaB8YTEKKvhJE5KYdVGE4gB5XmiYfD2f18Fue-c,4285
|
|
19
|
+
lsst/pipe/base/exec_fixup_data_id.py,sha256=9OjOcH-6AHZ1JnD_CemieI0wWX90J_VdaY9v1oXwMdQ,4187
|
|
20
|
+
lsst/pipe/base/execution_graph_fixup.py,sha256=ND0x4hlpeEW-gudo-i2K7HT7MoM5sp_mcoqRMCopSqQ,3815
|
|
21
|
+
lsst/pipe/base/execution_reports.py,sha256=62pY4sBQyHPCFceQzKLYQ0eQixNcmjs5m4DJAFAsPiA,17160
|
|
22
|
+
lsst/pipe/base/graph_walker.py,sha256=JbPv4uTwQ8fQ8D67mPkCRCJg6l8FXuIBZb9_BIstDcA,4639
|
|
23
|
+
lsst/pipe/base/log_capture.py,sha256=JnGFxyTp2ZDiiJ2-Zlj09hjCTWC86fCrj7NAOgdTl9I,11088
|
|
24
|
+
lsst/pipe/base/log_on_close.py,sha256=JnmponL16Jr2afOxCSQb6BfAxXOdnXjIA0_YWSGB0OE,2619
|
|
25
|
+
lsst/pipe/base/mermaid_tools.py,sha256=cdlDJQ1x8k7-VvCLEUqvSC3GR1zCsB-aUTxOjYejNWc,5216
|
|
26
|
+
lsst/pipe/base/mp_graph_executor.py,sha256=bbsJD0i-WpW1Qc6lAvagIIx__jZfeOqN8dyt3IsyEq0,37350
|
|
27
|
+
lsst/pipe/base/pipeline.py,sha256=bL5a4QQy35K8Efphy9ks-0-8VK-zyI_D9CF5Zrz2gbA,37505
|
|
28
|
+
lsst/pipe/base/pipelineIR.py,sha256=2z8mdTxQS7etxQ3bSI3e0gdR5OiCyCzylPHoakDzRFM,45649
|
|
29
|
+
lsst/pipe/base/pipelineTask.py,sha256=jCyT6F3oevQ66I33Ys6g20x0F2QxSVh5qFlDE_PMfE0,8245
|
|
30
|
+
lsst/pipe/base/prerequisite_helpers.py,sha256=p2VaThE-zUcM9vzc_kcgEbEMzXVRGpJQH6KLcQ-QXDU,28479
|
|
31
|
+
lsst/pipe/base/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
+
lsst/pipe/base/quantum_graph_builder.py,sha256=sic8D2OzXtccwjyHDjOSHER1ahykjUd24pmOUmv8NYs,69274
|
|
33
|
+
lsst/pipe/base/quantum_graph_executor.py,sha256=-bbeR9wZ5_Etcqpx6cDS_R-oEvfUVv9gmW0Wc4QuQNc,8127
|
|
34
|
+
lsst/pipe/base/quantum_graph_skeleton.py,sha256=872ypxlrt2mTsWLGWxyMCIiPv8dbfyAdMuQi9LQtRRY,28734
|
|
35
|
+
lsst/pipe/base/quantum_provenance_graph.py,sha256=LRgFmgkBj_YQop-Zfj_rsWBtQ7mlmEIi8J-wJXb_A5I,92793
|
|
36
|
+
lsst/pipe/base/quantum_reports.py,sha256=ut235L88v7SXaeVUvMA9qFl7tpeMwGnzob3X0QoOI_s,14210
|
|
37
|
+
lsst/pipe/base/resource_usage.py,sha256=LfH7Qf6taI3lxw0aB90riRMn1UxUTMBSqtBjKPJ-XuY,6759
|
|
38
|
+
lsst/pipe/base/separable_pipeline_executor.py,sha256=Yh0EXqiBfXBkA9WJYC54sqobg6_VaM_Y4q0MW1TkF-Q,17736
|
|
39
|
+
lsst/pipe/base/simple_pipeline_executor.py,sha256=_HGeAOgHUiRdQwsmD_qira-vcHZXlLbf_LmhLJffh2U,29563
|
|
40
|
+
lsst/pipe/base/single_quantum_executor.py,sha256=daQcgOp1mZhu4GvtOti5WpkJCbXewaRIW1_P2m4Q_8U,29485
|
|
41
|
+
lsst/pipe/base/struct.py,sha256=fHO9QzFtzL5-jxqhcBWbjyrdbiWO-Pt4Kx1X5bxN3SU,5094
|
|
42
|
+
lsst/pipe/base/task.py,sha256=XHBd-7m1a4-6LgobBYA1DgY4H7EV-_RWKfxbhZbMmD4,15145
|
|
43
|
+
lsst/pipe/base/taskFactory.py,sha256=MsDGECJqZLSZk8SGhpuVhNaP32UWuNvxZiDcZExPFG8,3412
|
|
44
|
+
lsst/pipe/base/testUtils.py,sha256=2C34i7FeZF9hJzWLKgvEAJMMzrx_F2-BNJ3yGlekUIo,18474
|
|
45
|
+
lsst/pipe/base/utils.py,sha256=JmEt3l0xrh9uayKrSXuQEq12aXOhDr2YXmbYduaxCko,1940
|
|
46
|
+
lsst/pipe/base/version.py,sha256=2rje6AhRlSZA0YGspwzNRmFUDs6Lw4d0LRgaVZiU0dY,49
|
|
47
|
+
lsst/pipe/base/cli/__init__.py,sha256=861tXIAW7SqtqNUYkjbeEdfg8lDswXsjJQca0gVCFz4,54
|
|
48
|
+
lsst/pipe/base/cli/_get_cli_subcommands.py,sha256=g_af64klRybBGKAg7fmBSZBdw2LYBAsFON_yQIMZON0,1289
|
|
49
|
+
lsst/pipe/base/cli/cmd/__init__.py,sha256=AOKtbbpWFb-EXRNOlUkWOsySiN0L_ZJWsaY6z264Dx8,1689
|
|
50
|
+
lsst/pipe/base/cli/cmd/commands.py,sha256=TrGmou_ZSpPYxmfm0d2vEOzUynu9qdp7svqsYz2kG2A,14531
|
|
51
|
+
lsst/pipe/base/cli/opt/__init__.py,sha256=DN17wUbMwNIgbDBfF35sdyGfaMT81f3b_CA5Pp8POdk,1347
|
|
52
|
+
lsst/pipe/base/cli/opt/arguments.py,sha256=9LhDnsM98_2zOqqm-eyv_nnZmAQcBG5OpHzeJYw_eTw,1484
|
|
53
|
+
lsst/pipe/base/cli/opt/options.py,sha256=d5mC2WXZJiUbkdaIo_VUsvNxShD3GmredbEN5jQD64Q,1900
|
|
54
|
+
lsst/pipe/base/formatters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
+
lsst/pipe/base/formatters/pexConfig.py,sha256=MA-08FIDV7PmpcV-VtDaBegR6YO6_pEhMB37WKMwup8,2163
|
|
56
|
+
lsst/pipe/base/graph/__init__.py,sha256=Zs2vwSFNiu1bYDsgrWQZ0qegG5F6PIjiQ5ZGT3EqcfA,118
|
|
57
|
+
lsst/pipe/base/graph/_implDetails.py,sha256=QQHVnCW78UnIbALXX_v7EW7g6MTUTuuR1Q_Ss_squUw,6784
|
|
58
|
+
lsst/pipe/base/graph/_loadHelpers.py,sha256=qUfjIgFezaXZRCFV7PFzmz1SSKFjRWOMWJePuyKiD24,12064
|
|
59
|
+
lsst/pipe/base/graph/_versionDeserializers.py,sha256=Xwq-MHfxaml2bL5cxSF8qmb6rjEHHZBuSengX8iggRg,28011
|
|
60
|
+
lsst/pipe/base/graph/graph.py,sha256=RUnqfkpuiTUWBYF9N0OzEtnSqc0jg0uJWlxbrS1Ezdg,75250
|
|
61
|
+
lsst/pipe/base/graph/graphSummary.py,sha256=F0ET5H4cBFYNPXvHuUBa3nTCj99rpf0JwxPG5Kfi7iw,6352
|
|
62
|
+
lsst/pipe/base/graph/quantumNode.py,sha256=at7UuzMmco1eh-XraEnRih6aLScNcxGU9nY376D-wBk,7199
|
|
63
|
+
lsst/pipe/base/pipeline_graph/__init__.py,sha256=yTEuvlzbeKIHIm7GeRmGSsma1wpZFNv8j12WfSH-deY,1516
|
|
64
|
+
lsst/pipe/base/pipeline_graph/__main__.py,sha256=E6ugEwJbds22wjgcfcgzeyO04JofQwVhn_Y8kZYY1lQ,20769
|
|
65
|
+
lsst/pipe/base/pipeline_graph/_dataset_types.py,sha256=0Y5V-apEfMkswvmgIKSs0QSHjBXvij2Eg8nFdJNmbIU,11350
|
|
66
|
+
lsst/pipe/base/pipeline_graph/_edges.py,sha256=TOLGiNiKWzUpw99xQuujkUNsi1-nMalTqhe6Glafqgs,36096
|
|
67
|
+
lsst/pipe/base/pipeline_graph/_exceptions.py,sha256=3jvCXms0_5ThLGtsOlKxsI1vWiq3gY4hba8fRBW0tgI,3943
|
|
68
|
+
lsst/pipe/base/pipeline_graph/_mapping_views.py,sha256=H7IPiVwwgLfgFPnv-hEi2TqH-DqcQy-nve-IF08LuUs,9132
|
|
69
|
+
lsst/pipe/base/pipeline_graph/_nodes.py,sha256=GGXfzXvrjNbwPt-0w8cC0l_I6CCNskoDNjA8Ds4ILS0,4236
|
|
70
|
+
lsst/pipe/base/pipeline_graph/_pipeline_graph.py,sha256=UpzW3U884Isa6URW9FYo47TU7RdgZYE_zkkD_lkVXww,122641
|
|
71
|
+
lsst/pipe/base/pipeline_graph/_task_subsets.py,sha256=lLvcndSGcZigteWd4eeAM8LxQ1lHPBoysY8PjJTxx1c,13244
|
|
72
|
+
lsst/pipe/base/pipeline_graph/_tasks.py,sha256=jTLpm5dZMXRNrGi3L45-3DtF95PGwhmejWLZ-zcSTzo,42802
|
|
73
|
+
lsst/pipe/base/pipeline_graph/expressions.py,sha256=vvyUsK0fwV0bOv_NnmUYgn92E_FYGHxVGnP9zQgwLmE,7673
|
|
74
|
+
lsst/pipe/base/pipeline_graph/io.py,sha256=__yRbbvX4FQBCUnlgyTLQzHyfSHLXDigqlMyV4rdly8,30898
|
|
75
|
+
lsst/pipe/base/pipeline_graph/visualization/__init__.py,sha256=qQctfWuFpcmgRdgu8Y6OsJ_pXpLKrCK-alqfVtIecls,1551
|
|
76
|
+
lsst/pipe/base/pipeline_graph/visualization/_dot.py,sha256=e03GTkSAKIM2z9b9c80MJwrms12I8MJ3YPJIWuVSRf0,13621
|
|
77
|
+
lsst/pipe/base/pipeline_graph/visualization/_formatting.py,sha256=NsBxXwdmISitr8_4wPc-T8CqVB-Mq4pv7DmUefFm3JU,17845
|
|
78
|
+
lsst/pipe/base/pipeline_graph/visualization/_layout.py,sha256=rvsadgasgGZKB625LmRVnEfB6r4u3Y8YrOQTdw6m1Ms,17088
|
|
79
|
+
lsst/pipe/base/pipeline_graph/visualization/_merge.py,sha256=6ml-4zkamy-q47hqIhXgmWsKn9jjqoykDW9T0qlHc5c,15391
|
|
80
|
+
lsst/pipe/base/pipeline_graph/visualization/_mermaid.py,sha256=V_LesIauJStjrxLO-cbvrhaZo5kDYG-JIMuErVu0EPk,20255
|
|
81
|
+
lsst/pipe/base/pipeline_graph/visualization/_options.py,sha256=vOIp2T7DLA48lTm5mTyCakIByb_wM21U_Crz_83MjoM,5237
|
|
82
|
+
lsst/pipe/base/pipeline_graph/visualization/_printer.py,sha256=-HEmoNT4z8_ouLdU5NuFzr3haf6pDb8TdM6alnRGKN4,16516
|
|
83
|
+
lsst/pipe/base/pipeline_graph/visualization/_show.py,sha256=lPRjO1To2n5r3f_Wgcwy-7TmyJ7UszGGFXAlOtN1wDs,10510
|
|
84
|
+
lsst/pipe/base/pipeline_graph/visualization/_status_annotator.py,sha256=qX-j0Azys3fU1kHDl-G60PmYt-QOPzZ3b1bxBKf6ILg,8829
|
|
85
|
+
lsst/pipe/base/quantum_graph/__init__.py,sha256=-Gp3LihB0AXCvhG387wKAEpHRM-NrHGSXMti8cHee90,1437
|
|
86
|
+
lsst/pipe/base/quantum_graph/_common.py,sha256=lHUILG8qhHibjUp4zwiWAMSpKe8nMKxvivXiJ3YA3wA,22868
|
|
87
|
+
lsst/pipe/base/quantum_graph/_multiblock.py,sha256=wzTteI0D9iEtVjJulN0V8h1dmo9gzDQvJJEbRAEKfS0,28180
|
|
88
|
+
lsst/pipe/base/quantum_graph/_predicted.py,sha256=ioDaBsm3juzHBTE7-YxLEREuibgcq759uGdd1j3_h2w,91362
|
|
89
|
+
lsst/pipe/base/quantum_graph/_provenance.py,sha256=mV7hTHWbDQRAyI4X2JuoOXjuVez8y7NfotnfiSSVg-s,104563
|
|
90
|
+
lsst/pipe/base/quantum_graph/formatter.py,sha256=EjwcgBkPqUxULU3yOstLOjg8MKlZozebGS8uzReDRBQ,7315
|
|
91
|
+
lsst/pipe/base/quantum_graph/ingest_graph.py,sha256=Q0CMkHYpSAfjRUiJkW9nM3yE9Auy7neMtscebyUXM4o,17934
|
|
92
|
+
lsst/pipe/base/quantum_graph/visualization.py,sha256=scDtzcG537WEbhfUE3BtAVjPuTuZTXRiLjJvxm_-Jcs,12548
|
|
93
|
+
lsst/pipe/base/quantum_graph/aggregator/__init__.py,sha256=pjLjg1wm0fWihTN5_CCHg2sO2rIa_t0Fd8uuF1kk91A,7435
|
|
94
|
+
lsst/pipe/base/quantum_graph/aggregator/_communicators.py,sha256=eA3HHAVZr4Dnqa704txsuHytVMV1kkpsowZhUyPpEGY,34375
|
|
95
|
+
lsst/pipe/base/quantum_graph/aggregator/_config.py,sha256=S8xJKE2xC-VzSfpaFB2G_lOTO7F0kqxNvT9FV8vzEAs,8556
|
|
96
|
+
lsst/pipe/base/quantum_graph/aggregator/_ingester.py,sha256=IY-5x-PXRYzheGpZrHCxKBKVRCeGUb9EJXjP3kpu1m4,14093
|
|
97
|
+
lsst/pipe/base/quantum_graph/aggregator/_progress.py,sha256=jiz9Np73uUQ03CtH7pI6TXxXrwFUChh5hSj_gbMGHr0,7207
|
|
98
|
+
lsst/pipe/base/quantum_graph/aggregator/_scanner.py,sha256=VijYSKYzQ0io8zZKLmg8TlMPwYG4fAYD3ob9nI-ciGE,13398
|
|
99
|
+
lsst/pipe/base/quantum_graph/aggregator/_structs.py,sha256=MUBk8wrThFz4CuoIFUlm4t5K3QOBbye9uI1CAAdUIoA,2374
|
|
100
|
+
lsst/pipe/base/quantum_graph/aggregator/_supervisor.py,sha256=J-17NGFCfb8uRmfDv6ivaqkB_lbRK-x5etf9IYS9T38,9251
|
|
101
|
+
lsst/pipe/base/quantum_graph/aggregator/_workers.py,sha256=E7A6mrmIjSPa5-FKDDHof_bKX6jlZldJ2lqdc8dBpxU,9356
|
|
102
|
+
lsst/pipe/base/quantum_graph/aggregator/_writer.py,sha256=Xrha3Y4PGNv_8rUrSMgCIUsx6TssvK4C_5N70p3Rmcg,7959
|
|
103
|
+
lsst/pipe/base/script/__init__.py,sha256=cLEXE7aq5UZ0juL_ScmRw0weFgp4tDgwEX_ts-NEYic,1522
|
|
104
|
+
lsst/pipe/base/script/register_instrument.py,sha256=neQ2MTPtAiV_Hl2yatQ8-vQC24xHjhpI7VJUHf5kPX4,2445
|
|
105
|
+
lsst/pipe/base/script/retrieve_artifacts_for_quanta.py,sha256=Cr0HpzXm_C3LnIOQg5tNJht02O6xoqtWWIphjugasMA,3957
|
|
106
|
+
lsst/pipe/base/script/transfer_from_graph.py,sha256=NelxNU_aNEwPHDZnDGXA07oeuSkeXqEZ6KG0ax6VE8c,7254
|
|
107
|
+
lsst/pipe/base/script/utils.py,sha256=zNqpHG3kXA8OaNXnwYIo0Hu_LCie1qoBAARAME3WEjs,3739
|
|
108
|
+
lsst/pipe/base/script/zip_from_graph.py,sha256=dMyyTGzEBCMMmR6Ts8R7QXUJrbtdrac_i-iy87lFDSI,3242
|
|
109
|
+
lsst/pipe/base/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
|
+
lsst/pipe/base/tests/in_memory_limited_butler.py,sha256=UzLh416H67nCUhD9y3cniAAjY7VojvhOLjF3gHHgjA4,8679
|
|
111
|
+
lsst/pipe/base/tests/no_dimensions.py,sha256=58UpyRN8cLAMZtkOmjTm3dJZyRFRekotQ-7-OgEfiAI,4710
|
|
112
|
+
lsst/pipe/base/tests/pipelineStepTester.py,sha256=KGxdB8gdVpSey2RUGURDIzIfPL-4qvQCsBpMrhG4Z2M,7208
|
|
113
|
+
lsst/pipe/base/tests/simpleQGraph.py,sha256=V_h1SifQ27vnjz5Fax1KZYyn6yPUDNfc8gRjc7SFbhE,20197
|
|
114
|
+
lsst/pipe/base/tests/util.py,sha256=IXpZOC58fdRnurB5lPcNX-xRgKEV-cPNkWKJDFIr1gs,4772
|
|
115
|
+
lsst/pipe/base/tests/mocks/__init__.py,sha256=fDy9H9vRAIBpKDJEXNZuDWJMzWZfpcBT4TmyOw4o-RY,1572
|
|
116
|
+
lsst/pipe/base/tests/mocks/_data_id_match.py,sha256=jVekStcrItC0tqOCc01VjYaiE9exYm3MRkwB0Gh_3J0,7465
|
|
117
|
+
lsst/pipe/base/tests/mocks/_pipeline_task.py,sha256=N3fC4OMAMWWnYtyLkVdMfb9ZiFse39HniRDvlAOofOY,30691
|
|
118
|
+
lsst/pipe/base/tests/mocks/_repo.py,sha256=SH-jzynS-H2xc_3GLjF7ln-kHdRoSeVVaal5qLd2hXI,28359
|
|
119
|
+
lsst/pipe/base/tests/mocks/_storage_class.py,sha256=YD9iyOSs_JqfZYOejHy1AQkbfM2wJFT5zkscjrYU0Rc,27457
|
|
120
|
+
lsst_pipe_base-30.0.1.dist-info/licenses/COPYRIGHT,sha256=kB3Z9_f6a6uFLGpEmNJT_n186CE65H6wHu4F6BNt_zA,368
|
|
121
|
+
lsst_pipe_base-30.0.1.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
|
|
122
|
+
lsst_pipe_base-30.0.1.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
|
|
123
|
+
lsst_pipe_base-30.0.1.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
124
|
+
lsst_pipe_base-30.0.1.dist-info/METADATA,sha256=OPu3-r5dOmut69pa4WFifdm2XlX7tZTSECP0vZ9c6KY,2255
|
|
125
|
+
lsst_pipe_base-30.0.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
126
|
+
lsst_pipe_base-30.0.1.dist-info/entry_points.txt,sha256=bnmUhJBsChxMdqST9VmFBYYKxLQoToOfqW1wjW7khjk,64
|
|
127
|
+
lsst_pipe_base-30.0.1.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
|
|
128
|
+
lsst_pipe_base-30.0.1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
129
|
+
lsst_pipe_base-30.0.1.dist-info/RECORD,,
|