lsst-pipe-base 30.0.0rc3__py3-none-any.whl → 30.0.1rc1__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.
Files changed (66) hide show
  1. lsst/pipe/base/_instrument.py +25 -15
  2. lsst/pipe/base/_quantumContext.py +3 -3
  3. lsst/pipe/base/_status.py +43 -10
  4. lsst/pipe/base/_task_metadata.py +2 -2
  5. lsst/pipe/base/all_dimensions_quantum_graph_builder.py +8 -3
  6. lsst/pipe/base/automatic_connection_constants.py +20 -1
  7. lsst/pipe/base/cli/cmd/__init__.py +18 -2
  8. lsst/pipe/base/cli/cmd/commands.py +149 -4
  9. lsst/pipe/base/connectionTypes.py +72 -160
  10. lsst/pipe/base/connections.py +6 -9
  11. lsst/pipe/base/execution_reports.py +0 -5
  12. lsst/pipe/base/graph/graph.py +11 -10
  13. lsst/pipe/base/graph/quantumNode.py +4 -4
  14. lsst/pipe/base/graph_walker.py +8 -10
  15. lsst/pipe/base/log_capture.py +1 -1
  16. lsst/pipe/base/log_on_close.py +4 -7
  17. lsst/pipe/base/pipeline.py +5 -6
  18. lsst/pipe/base/pipelineIR.py +2 -8
  19. lsst/pipe/base/pipelineTask.py +5 -7
  20. lsst/pipe/base/pipeline_graph/_dataset_types.py +2 -2
  21. lsst/pipe/base/pipeline_graph/_edges.py +32 -22
  22. lsst/pipe/base/pipeline_graph/_mapping_views.py +4 -7
  23. lsst/pipe/base/pipeline_graph/_pipeline_graph.py +14 -7
  24. lsst/pipe/base/pipeline_graph/expressions.py +2 -2
  25. lsst/pipe/base/pipeline_graph/io.py +7 -10
  26. lsst/pipe/base/pipeline_graph/visualization/_dot.py +13 -12
  27. lsst/pipe/base/pipeline_graph/visualization/_layout.py +16 -18
  28. lsst/pipe/base/pipeline_graph/visualization/_merge.py +4 -7
  29. lsst/pipe/base/pipeline_graph/visualization/_printer.py +10 -10
  30. lsst/pipe/base/pipeline_graph/visualization/_status_annotator.py +7 -0
  31. lsst/pipe/base/prerequisite_helpers.py +2 -1
  32. lsst/pipe/base/quantum_graph/_common.py +15 -17
  33. lsst/pipe/base/quantum_graph/_multiblock.py +36 -20
  34. lsst/pipe/base/quantum_graph/_predicted.py +7 -3
  35. lsst/pipe/base/quantum_graph/_provenance.py +501 -61
  36. lsst/pipe/base/quantum_graph/aggregator/__init__.py +0 -1
  37. lsst/pipe/base/quantum_graph/aggregator/_communicators.py +187 -240
  38. lsst/pipe/base/quantum_graph/aggregator/_config.py +87 -9
  39. lsst/pipe/base/quantum_graph/aggregator/_ingester.py +13 -12
  40. lsst/pipe/base/quantum_graph/aggregator/_scanner.py +15 -7
  41. lsst/pipe/base/quantum_graph/aggregator/_structs.py +3 -3
  42. lsst/pipe/base/quantum_graph/aggregator/_supervisor.py +19 -34
  43. lsst/pipe/base/quantum_graph/aggregator/_workers.py +303 -0
  44. lsst/pipe/base/quantum_graph/aggregator/_writer.py +3 -3
  45. lsst/pipe/base/quantum_graph/formatter.py +74 -4
  46. lsst/pipe/base/quantum_graph/ingest_graph.py +413 -0
  47. lsst/pipe/base/quantum_graph/visualization.py +5 -1
  48. lsst/pipe/base/quantum_graph_builder.py +21 -8
  49. lsst/pipe/base/quantum_graph_skeleton.py +31 -29
  50. lsst/pipe/base/quantum_provenance_graph.py +29 -12
  51. lsst/pipe/base/separable_pipeline_executor.py +1 -1
  52. lsst/pipe/base/single_quantum_executor.py +15 -8
  53. lsst/pipe/base/struct.py +4 -0
  54. lsst/pipe/base/testUtils.py +3 -3
  55. lsst/pipe/base/tests/mocks/_storage_class.py +2 -1
  56. lsst/pipe/base/version.py +1 -1
  57. {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/METADATA +3 -3
  58. {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/RECORD +66 -64
  59. {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/WHEEL +1 -1
  60. {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/entry_points.txt +0 -0
  61. {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/licenses/COPYRIGHT +0 -0
  62. {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/licenses/LICENSE +0 -0
  63. {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/licenses/bsd_license.txt +0 -0
  64. {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/licenses/gpl-v3.0.txt +0 -0
  65. {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/top_level.txt +0 -0
  66. {lsst_pipe_base-30.0.0rc3.dist-info → lsst_pipe_base-30.0.1rc1.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, TypeAlias
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: TypeAlias = QuantumKey | TaskInitKey | DatasetKey | PrerequisiteDatasetKey
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 `DatasetRef` instance.
574
+ """Associate a dataset node with a `~lsst.daf.butler.DatasetRef`
575
+ instance.
575
576
 
576
577
  Parameters
577
578
  ----------
578
- ref : `DatasetRef`
579
- `DatasetRef` to associate with the node.
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 `DatasetRef` that represents an
590
- existing output in a collection where such outputs can cause a quantum
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 : `DatasetRef`
596
- `DatasetRef` to associate with the node.
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 `DatasetRef` that represents an
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 : `DatasetRef`
608
- `DatasetRef` to associate with the node.
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 `DatasetRef` associated with the given node.
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 : `DatasetRef` or `None`
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 `DatasetRef` associated with the given node in a
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 : `DatasetRef` or `None`
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 `DatasetRef` associated with the given node in 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 : `DatasetRef` or `None`
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 `DatasetRef` associated with this node in the output RUN
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 `DatasetRef`.
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 `DatasetRef` objects associated with
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 : `DataCoordinate`
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 : `DataCoordinate`
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 catch issues
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
- `DatasetType`.
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 : `Sequence[Summary]`
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 `DatasetType`-dataID
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
- _LOG.verbose("Using quantum-backed butler for metadata loads.")
1517
- self._butler_wrappers[output_run] = _ThreadLocalButlerWrapper.wrap_qbb(butler, qgraph)
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
- butler : `lsst.daf.butler.Butler`
1781
- The Butler used for this report. This should match the Butler
1782
- used for the run associated with the executed quantum graph.
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 : iterable [`str`], optional
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
- Expressions representing the collections to search for existing output
82
- datasets. See :ref:`daf_butler_ordered_collection_searches` for allowed
83
- types. This class only checks for the presence of butler output run in
84
- the list of collections. If the output run is present in the list then
85
- the quanta whose complete outputs exist in the output run will be
86
- skipped. `None` or empty string/sequence disables skipping.
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 : `Callable`, optional
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(quantum, report, skipped_existing=False, adjusted_no_work=True)
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
@@ -116,6 +116,10 @@ class Struct(SimpleNamespace):
116
116
  *nameList : `str`
117
117
  All remaining arguments are names of items to copy.
118
118
 
119
+ Returns
120
+ -------
121
+ None
122
+
119
123
  Raises
120
124
  ------
121
125
  RuntimeError
@@ -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 for mock datasets.
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.0rc3"
2
+ __version__ = "30.0.1rc1"
@@ -1,20 +1,20 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lsst-pipe-base
3
- Version: 30.0.0rc3
3
+ Version: 30.0.1rc1
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.11.0
17
+ Requires-Python: >=3.12.0
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: COPYRIGHT
20
20
  License-File: LICENSE
@@ -3,51 +3,51 @@ lsst/pipe/__init__.py,sha256=_2bZAHuDVAx7MM7KA7pt3DYp641NY4RzSoRAwesWKfU,67
3
3
  lsst/pipe/base/__init__.py,sha256=qBLN0yYQjIcLBLb4jFKM_ppopuqTnCehcUdFcEe69Js,970
4
4
  lsst/pipe/base/_datasetQueryConstraints.py,sha256=bFH0_lVc49NS2_4v_i6r9POr500c0K-OHLMhMX5FjkQ,6373
5
5
  lsst/pipe/base/_dataset_handle.py,sha256=ft_ke1LbhLLndDPARsHSQJUA05LgUFnfWOq2vbwH3wI,11353
6
- lsst/pipe/base/_instrument.py,sha256=yZTTgEPmGcEKG4WnAkfWGM1K5f3PxALcQRFqrtVp57A,30215
6
+ lsst/pipe/base/_instrument.py,sha256=T7cLScH1I0sVDpPdW2LpXdTRP4n2EDpiSD4SKdy2zzc,30621
7
7
  lsst/pipe/base/_observation_dimension_packer.py,sha256=78Jg2OVFOdXIK62TS2Y3X4095xqCzmiIx9o4TXyADYA,8027
8
- lsst/pipe/base/_quantumContext.py,sha256=gb60mTHbgOIEptYvJ64SaChvViXyeKJlG6kEHq4nYVw,19345
9
- lsst/pipe/base/_status.py,sha256=7gJPrqt03t1fO5tREc_sfQaN7XmDBvruihORXPnRqUE,21216
10
- lsst/pipe/base/_task_metadata.py,sha256=Y4rjrYWvYxYCJwy86VvzxKMkNxEJbYVgLVuXo6KiXac,25638
11
- lsst/pipe/base/all_dimensions_quantum_graph_builder.py,sha256=nazY74jrdSCr6CFfPp78JecM_-udW95EYP7grLPO2hg,70830
12
- lsst/pipe/base/automatic_connection_constants.py,sha256=H5uuh1rYRpjndgPdb0dh1L_-OyLKdT6VWOZTAb__xCU,3298
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
13
  lsst/pipe/base/caching_limited_butler.py,sha256=FEQK_QesUWG9sK0w9m6_SA5OPcrd6vqyq8oDKE9Wu6I,7858
14
14
  lsst/pipe/base/config.py,sha256=yNipVEc6awwhU_O9I01g20OnvQrs28dAwkXuI1hrlYE,11982
15
15
  lsst/pipe/base/configOverrides.py,sha256=B0An8EaX76VzWnC5dJxvyZ2AhVzawMtq7qlE9ma5lkc,14661
16
- lsst/pipe/base/connectionTypes.py,sha256=inUDyzbM1sKMCtHaRkhx3dWSPHPBIDVMHOPhzB13Kdw,16720
17
- lsst/pipe/base/connections.py,sha256=UIe1km5_bOth5o9LZtjpT2r9vc44K4TGmz5Fvmqu5rA,67178
16
+ lsst/pipe/base/connectionTypes.py,sha256=RbhGQpEdwpnDlexV_FoWoYBwcayHXsW0TZevtvK1s5c,11251
17
+ lsst/pipe/base/connections.py,sha256=cQcHSxL59-3EnUM4JF-G_paHKDY-d45gWXWGKXsmUZ0,67068
18
18
  lsst/pipe/base/dot_tools.py,sha256=vriWMaB8YTEKKvhJE5KYdVGE4gB5XmiYfD2f18Fue-c,4285
19
19
  lsst/pipe/base/exec_fixup_data_id.py,sha256=9OjOcH-6AHZ1JnD_CemieI0wWX90J_VdaY9v1oXwMdQ,4187
20
20
  lsst/pipe/base/execution_graph_fixup.py,sha256=ND0x4hlpeEW-gudo-i2K7HT7MoM5sp_mcoqRMCopSqQ,3815
21
- lsst/pipe/base/execution_reports.py,sha256=jYtWCD4PkEAeVUpKIxuiJJVgsCm7qiwCorWVgNHkVgU,17270
22
- lsst/pipe/base/graph_walker.py,sha256=Ij7JfYF0srA29VgM_DhbNBxUBeOHDOnujrTQPjVNha0,4694
23
- lsst/pipe/base/log_capture.py,sha256=6fq1L53FUYsbILX-tQixXUhxQjvKxFGDjYELRDAXnsw,11072
24
- lsst/pipe/base/log_on_close.py,sha256=rauQYvsWQF9GuxoaZRjPJJ7VjATGyRUo0RyHEoUVTnQ,2666
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
25
  lsst/pipe/base/mermaid_tools.py,sha256=cdlDJQ1x8k7-VvCLEUqvSC3GR1zCsB-aUTxOjYejNWc,5216
26
26
  lsst/pipe/base/mp_graph_executor.py,sha256=bbsJD0i-WpW1Qc6lAvagIIx__jZfeOqN8dyt3IsyEq0,37350
27
- lsst/pipe/base/pipeline.py,sha256=FVaiLhgw9Pzo-nzXKS0dLNafegP0AMZKLtPlSvOSkRU,37563
28
- lsst/pipe/base/pipelineIR.py,sha256=UuZ02NLhVmzzekbuWlyar7cPLCf_4yfzD5qFEmGHs_A,45821
29
- lsst/pipe/base/pipelineTask.py,sha256=K3GdjJLvy8A7I-jzQiERQZaYF7mC1LM3iB5TmUtbOCI,8394
30
- lsst/pipe/base/prerequisite_helpers.py,sha256=bmiebQ4veSrypZgAXjmCBFfj8fUtPW9eRQaVShhxdBQ,28446
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
31
  lsst/pipe/base/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- lsst/pipe/base/quantum_graph_builder.py,sha256=YM3pvt4ignAZnpO9bpBc_Yl8V-y2r3SQmYJdWnyQQNI,68742
32
+ lsst/pipe/base/quantum_graph_builder.py,sha256=sic8D2OzXtccwjyHDjOSHER1ahykjUd24pmOUmv8NYs,69274
33
33
  lsst/pipe/base/quantum_graph_executor.py,sha256=-bbeR9wZ5_Etcqpx6cDS_R-oEvfUVv9gmW0Wc4QuQNc,8127
34
- lsst/pipe/base/quantum_graph_skeleton.py,sha256=hxSbeNhdCSBO2aqdIMRyQaejiUxKQfE6bSn0S0qWBNo,28395
35
- lsst/pipe/base/quantum_provenance_graph.py,sha256=33S5iCVxD9Co4oJSU_N8AJXL14Nw0UwGzPEc3gpQiqk,91981
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
36
  lsst/pipe/base/quantum_reports.py,sha256=ut235L88v7SXaeVUvMA9qFl7tpeMwGnzob3X0QoOI_s,14210
37
37
  lsst/pipe/base/resource_usage.py,sha256=LfH7Qf6taI3lxw0aB90riRMn1UxUTMBSqtBjKPJ-XuY,6759
38
- lsst/pipe/base/separable_pipeline_executor.py,sha256=y3ZnQJApocxusHGG1R5Rnpke3B0vren1h4dcuyZLivs,17717
38
+ lsst/pipe/base/separable_pipeline_executor.py,sha256=Yh0EXqiBfXBkA9WJYC54sqobg6_VaM_Y4q0MW1TkF-Q,17736
39
39
  lsst/pipe/base/simple_pipeline_executor.py,sha256=_HGeAOgHUiRdQwsmD_qira-vcHZXlLbf_LmhLJffh2U,29563
40
- lsst/pipe/base/single_quantum_executor.py,sha256=BgmRtouSIKMeh44hbihdyWsYG4sH1fvoN1PoyVNjxUI,29283
41
- lsst/pipe/base/struct.py,sha256=Fa-UkpuXOxdzKWbHrMUkJYOszZuBXCm2NesXNR0IOPQ,5048
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
42
  lsst/pipe/base/task.py,sha256=XHBd-7m1a4-6LgobBYA1DgY4H7EV-_RWKfxbhZbMmD4,15145
43
43
  lsst/pipe/base/taskFactory.py,sha256=MsDGECJqZLSZk8SGhpuVhNaP32UWuNvxZiDcZExPFG8,3412
44
- lsst/pipe/base/testUtils.py,sha256=lSBKMhoKflbi8JkMNYfEqqHNl-rtFI8UYT3QneDYpLo,18477
44
+ lsst/pipe/base/testUtils.py,sha256=2C34i7FeZF9hJzWLKgvEAJMMzrx_F2-BNJ3yGlekUIo,18474
45
45
  lsst/pipe/base/utils.py,sha256=JmEt3l0xrh9uayKrSXuQEq12aXOhDr2YXmbYduaxCko,1940
46
- lsst/pipe/base/version.py,sha256=Tt7y1Knxuicvk026_H8m0GXmxEFM8XEWyfbDoHcAxbs,52
46
+ lsst/pipe/base/version.py,sha256=-auEgPcWk4qAWrWVMJY7Of7dAJ0dNQHoqQraCNdAEN4,52
47
47
  lsst/pipe/base/cli/__init__.py,sha256=861tXIAW7SqtqNUYkjbeEdfg8lDswXsjJQca0gVCFz4,54
48
48
  lsst/pipe/base/cli/_get_cli_subcommands.py,sha256=g_af64klRybBGKAg7fmBSZBdw2LYBAsFON_yQIMZON0,1289
49
- lsst/pipe/base/cli/cmd/__init__.py,sha256=3UF2IQEEBor4YMGRNPdcZAVCAI5yFyeHp5nGul4IoyM,1557
50
- lsst/pipe/base/cli/cmd/commands.py,sha256=ilwKms1Gq4vc6Mddz3MB0fFcgWidseZeYlxTrOQlg8Q,9743
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
51
  lsst/pipe/base/cli/opt/__init__.py,sha256=DN17wUbMwNIgbDBfF35sdyGfaMT81f3b_CA5Pp8POdk,1347
52
52
  lsst/pipe/base/cli/opt/arguments.py,sha256=9LhDnsM98_2zOqqm-eyv_nnZmAQcBG5OpHzeJYw_eTw,1484
53
53
  lsst/pipe/base/cli/opt/options.py,sha256=d5mC2WXZJiUbkdaIo_VUsvNxShD3GmredbEN5jQD64Q,1900
@@ -57,47 +57,49 @@ lsst/pipe/base/graph/__init__.py,sha256=Zs2vwSFNiu1bYDsgrWQZ0qegG5F6PIjiQ5ZGT3Eq
57
57
  lsst/pipe/base/graph/_implDetails.py,sha256=QQHVnCW78UnIbALXX_v7EW7g6MTUTuuR1Q_Ss_squUw,6784
58
58
  lsst/pipe/base/graph/_loadHelpers.py,sha256=qUfjIgFezaXZRCFV7PFzmz1SSKFjRWOMWJePuyKiD24,12064
59
59
  lsst/pipe/base/graph/_versionDeserializers.py,sha256=Xwq-MHfxaml2bL5cxSF8qmb6rjEHHZBuSengX8iggRg,28011
60
- lsst/pipe/base/graph/graph.py,sha256=AZzq8HXUbWLcRKIGnKpwcCA8q0Fz-BT2pn0tFU1zulo,75148
60
+ lsst/pipe/base/graph/graph.py,sha256=RUnqfkpuiTUWBYF9N0OzEtnSqc0jg0uJWlxbrS1Ezdg,75250
61
61
  lsst/pipe/base/graph/graphSummary.py,sha256=F0ET5H4cBFYNPXvHuUBa3nTCj99rpf0JwxPG5Kfi7iw,6352
62
- lsst/pipe/base/graph/quantumNode.py,sha256=l4mslxBgyUzBAqwjpx6XRP-UPxe-oRMxHJWt-_y3Dm0,7196
62
+ lsst/pipe/base/graph/quantumNode.py,sha256=at7UuzMmco1eh-XraEnRih6aLScNcxGU9nY376D-wBk,7199
63
63
  lsst/pipe/base/pipeline_graph/__init__.py,sha256=yTEuvlzbeKIHIm7GeRmGSsma1wpZFNv8j12WfSH-deY,1516
64
64
  lsst/pipe/base/pipeline_graph/__main__.py,sha256=E6ugEwJbds22wjgcfcgzeyO04JofQwVhn_Y8kZYY1lQ,20769
65
- lsst/pipe/base/pipeline_graph/_dataset_types.py,sha256=MzpiI4bOUgwUpnse4Bj_KFAUFm_uERCHWd0BwAhKksc,11333
66
- lsst/pipe/base/pipeline_graph/_edges.py,sha256=n6iCYql-TvAyM1xrINt7m02efjebJlIwhk254CCzfn8,35300
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
67
  lsst/pipe/base/pipeline_graph/_exceptions.py,sha256=3jvCXms0_5ThLGtsOlKxsI1vWiq3gY4hba8fRBW0tgI,3943
68
- lsst/pipe/base/pipeline_graph/_mapping_views.py,sha256=9nLKPA8j7sS09haShbJnEtGXbb4vy_cWpbLeMLBmVvs,9194
68
+ lsst/pipe/base/pipeline_graph/_mapping_views.py,sha256=H7IPiVwwgLfgFPnv-hEi2TqH-DqcQy-nve-IF08LuUs,9132
69
69
  lsst/pipe/base/pipeline_graph/_nodes.py,sha256=GGXfzXvrjNbwPt-0w8cC0l_I6CCNskoDNjA8Ds4ILS0,4236
70
- lsst/pipe/base/pipeline_graph/_pipeline_graph.py,sha256=V5xvlH0VxPsSctWYD5kDT-HybfZqYjMtnZi6n48GEM4,122536
70
+ lsst/pipe/base/pipeline_graph/_pipeline_graph.py,sha256=UpzW3U884Isa6URW9FYo47TU7RdgZYE_zkkD_lkVXww,122641
71
71
  lsst/pipe/base/pipeline_graph/_task_subsets.py,sha256=lLvcndSGcZigteWd4eeAM8LxQ1lHPBoysY8PjJTxx1c,13244
72
72
  lsst/pipe/base/pipeline_graph/_tasks.py,sha256=jTLpm5dZMXRNrGi3L45-3DtF95PGwhmejWLZ-zcSTzo,42802
73
- lsst/pipe/base/pipeline_graph/expressions.py,sha256=wNNVSWVMDZs_dp4Xd30rt1Xj8PfzWikJKo-amaJ-leM,7690
74
- lsst/pipe/base/pipeline_graph/io.py,sha256=zVIybq5JyR1u1FwqF60wG0bIhz_SkgzzQiw2A7a1oNk,30943
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
75
  lsst/pipe/base/pipeline_graph/visualization/__init__.py,sha256=qQctfWuFpcmgRdgu8Y6OsJ_pXpLKrCK-alqfVtIecls,1551
76
- lsst/pipe/base/pipeline_graph/visualization/_dot.py,sha256=hgy5Wk4GXptb9GbjPn8-0D9EjWsXKBEEVs1ocHLh_MA,13535
76
+ lsst/pipe/base/pipeline_graph/visualization/_dot.py,sha256=e03GTkSAKIM2z9b9c80MJwrms12I8MJ3YPJIWuVSRf0,13621
77
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=aMFl2Sgw_2-AfCBr_JBIWSs7VbSfSP7Nuol0mP9lkUo,17157
79
- lsst/pipe/base/pipeline_graph/visualization/_merge.py,sha256=cBKhNjgymDkzYtVutrXd9IGa-eE4Q9jnHO9F18e64dY,15435
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
80
  lsst/pipe/base/pipeline_graph/visualization/_mermaid.py,sha256=V_LesIauJStjrxLO-cbvrhaZo5kDYG-JIMuErVu0EPk,20255
81
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=yJMRJ-aXd3nYDgs1FqS2l_hzNbQ50HUVm55VVaNi71s,16537
82
+ lsst/pipe/base/pipeline_graph/visualization/_printer.py,sha256=-HEmoNT4z8_ouLdU5NuFzr3haf6pDb8TdM6alnRGKN4,16516
83
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=dp7PXl9Cu7GfWjBi5g8KjXZgnF1KGg_idKKxtICL53Q,8679
84
+ lsst/pipe/base/pipeline_graph/visualization/_status_annotator.py,sha256=qX-j0Azys3fU1kHDl-G60PmYt-QOPzZ3b1bxBKf6ILg,8829
85
85
  lsst/pipe/base/quantum_graph/__init__.py,sha256=-Gp3LihB0AXCvhG387wKAEpHRM-NrHGSXMti8cHee90,1437
86
- lsst/pipe/base/quantum_graph/_common.py,sha256=jBNmuVK0RaD6nFNk2cmRQY5ej0v_wADRREcAPlhneNs,22841
87
- lsst/pipe/base/quantum_graph/_multiblock.py,sha256=lw--3Ol-nmQPkC5gzC95xUTkGXOVAfPoa1bb21cFHXE,27412
88
- lsst/pipe/base/quantum_graph/_predicted.py,sha256=vUbKXfIPLtH4YZmgAlxJBwCqwMJ9X-2dSFh35vgvntg,91216
89
- lsst/pipe/base/quantum_graph/_provenance.py,sha256=eGCs2K9UYg5bILEPY6x6xsoA1x-mTTgzn5opFq1bL6k,84207
90
- lsst/pipe/base/quantum_graph/formatter.py,sha256=PZhn6I7HAdBjhm-_vcWoXdhwm9hDsK5QQ07GnIGJtPU,3948
91
- lsst/pipe/base/quantum_graph/visualization.py,sha256=EbTWhk9aPq7sX6bcHmnEIsr2xuuR6d1SxspQbRe8D0Q,12235
92
- lsst/pipe/base/quantum_graph/aggregator/__init__.py,sha256=4CK8sP_ZjUKmxKS3LnCH1zG7XSk9IEwijrluRBHhEMU,7436
93
- lsst/pipe/base/quantum_graph/aggregator/_communicators.py,sha256=deLXCdKlSM2GXGW4LdtfzOS7aa3Yd9QVajtyjJE4u3s,35197
94
- lsst/pipe/base/quantum_graph/aggregator/_config.py,sha256=iV1Ejfk-UnFoQ8TkpJE_jMZYHsmZcdLm5R-FnQEqO7s,5167
95
- lsst/pipe/base/quantum_graph/aggregator/_ingester.py,sha256=lhu8I0R3IwoLkVcrqF1ypoHAFamNapSoMcG9aYFjbQ4,14158
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
96
97
  lsst/pipe/base/quantum_graph/aggregator/_progress.py,sha256=jiz9Np73uUQ03CtH7pI6TXxXrwFUChh5hSj_gbMGHr0,7207
97
- lsst/pipe/base/quantum_graph/aggregator/_scanner.py,sha256=HxW8F4smuV3-0g4SFwlQ3SKrktpPDcRkvckz8oVV-s0,12872
98
- lsst/pipe/base/quantum_graph/aggregator/_structs.py,sha256=tkFh6-XaEoXGqfMH9RQq8rZqXXco1jUtiYCJKPsGus8,2401
99
- lsst/pipe/base/quantum_graph/aggregator/_supervisor.py,sha256=NuUQiC-ZtLQkK_sJ1bktRiRv4ObdwjeE6vOJLjDrepc,9559
100
- lsst/pipe/base/quantum_graph/aggregator/_writer.py,sha256=hd3zALTm9uTicQyPukN34fjcUJ3TIogf_EONy5nsywU,7917
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
101
103
  lsst/pipe/base/script/__init__.py,sha256=cLEXE7aq5UZ0juL_ScmRw0weFgp4tDgwEX_ts-NEYic,1522
102
104
  lsst/pipe/base/script/register_instrument.py,sha256=neQ2MTPtAiV_Hl2yatQ8-vQC24xHjhpI7VJUHf5kPX4,2445
103
105
  lsst/pipe/base/script/retrieve_artifacts_for_quanta.py,sha256=Cr0HpzXm_C3LnIOQg5tNJht02O6xoqtWWIphjugasMA,3957
@@ -114,14 +116,14 @@ lsst/pipe/base/tests/mocks/__init__.py,sha256=fDy9H9vRAIBpKDJEXNZuDWJMzWZfpcBT4T
114
116
  lsst/pipe/base/tests/mocks/_data_id_match.py,sha256=jVekStcrItC0tqOCc01VjYaiE9exYm3MRkwB0Gh_3J0,7465
115
117
  lsst/pipe/base/tests/mocks/_pipeline_task.py,sha256=N3fC4OMAMWWnYtyLkVdMfb9ZiFse39HniRDvlAOofOY,30691
116
118
  lsst/pipe/base/tests/mocks/_repo.py,sha256=SH-jzynS-H2xc_3GLjF7ln-kHdRoSeVVaal5qLd2hXI,28359
117
- lsst/pipe/base/tests/mocks/_storage_class.py,sha256=12IFfJMbZ5GkYlMX6ZMWiG8pMZc2Jlxke3qQW-bljdU,27434
118
- lsst_pipe_base-30.0.0rc3.dist-info/licenses/COPYRIGHT,sha256=kB3Z9_f6a6uFLGpEmNJT_n186CE65H6wHu4F6BNt_zA,368
119
- lsst_pipe_base-30.0.0rc3.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
120
- lsst_pipe_base-30.0.0rc3.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
121
- lsst_pipe_base-30.0.0rc3.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
122
- lsst_pipe_base-30.0.0rc3.dist-info/METADATA,sha256=v-PIw7-tNmgiZbq1LmCijq7c2EO70ugAcNVgBphTpdI,2254
123
- lsst_pipe_base-30.0.0rc3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
124
- lsst_pipe_base-30.0.0rc3.dist-info/entry_points.txt,sha256=bnmUhJBsChxMdqST9VmFBYYKxLQoToOfqW1wjW7khjk,64
125
- lsst_pipe_base-30.0.0rc3.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
126
- lsst_pipe_base-30.0.0rc3.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
127
- lsst_pipe_base-30.0.0rc3.dist-info/RECORD,,
119
+ lsst/pipe/base/tests/mocks/_storage_class.py,sha256=YD9iyOSs_JqfZYOejHy1AQkbfM2wJFT5zkscjrYU0Rc,27457
120
+ lsst_pipe_base-30.0.1rc1.dist-info/licenses/COPYRIGHT,sha256=kB3Z9_f6a6uFLGpEmNJT_n186CE65H6wHu4F6BNt_zA,368
121
+ lsst_pipe_base-30.0.1rc1.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
122
+ lsst_pipe_base-30.0.1rc1.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
123
+ lsst_pipe_base-30.0.1rc1.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
124
+ lsst_pipe_base-30.0.1rc1.dist-info/METADATA,sha256=8f_z1jwcLGZF5GGwIZHJm1uPZxwrQ6wK7rCT1SK-9kU,2258
125
+ lsst_pipe_base-30.0.1rc1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
126
+ lsst_pipe_base-30.0.1rc1.dist-info/entry_points.txt,sha256=bnmUhJBsChxMdqST9VmFBYYKxLQoToOfqW1wjW7khjk,64
127
+ lsst_pipe_base-30.0.1rc1.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
128
+ lsst_pipe_base-30.0.1rc1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
129
+ lsst_pipe_base-30.0.1rc1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5