lsst-pipe-base 30.0.0rc2__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 (69) hide show
  1. lsst/pipe/base/_instrument.py +31 -20
  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 +40 -80
  16. lsst/pipe/base/log_on_close.py +76 -0
  17. lsst/pipe/base/mp_graph_executor.py +51 -15
  18. lsst/pipe/base/pipeline.py +5 -6
  19. lsst/pipe/base/pipelineIR.py +2 -8
  20. lsst/pipe/base/pipelineTask.py +5 -7
  21. lsst/pipe/base/pipeline_graph/_dataset_types.py +2 -2
  22. lsst/pipe/base/pipeline_graph/_edges.py +32 -22
  23. lsst/pipe/base/pipeline_graph/_mapping_views.py +4 -7
  24. lsst/pipe/base/pipeline_graph/_pipeline_graph.py +14 -7
  25. lsst/pipe/base/pipeline_graph/expressions.py +2 -2
  26. lsst/pipe/base/pipeline_graph/io.py +7 -10
  27. lsst/pipe/base/pipeline_graph/visualization/_dot.py +13 -12
  28. lsst/pipe/base/pipeline_graph/visualization/_layout.py +16 -18
  29. lsst/pipe/base/pipeline_graph/visualization/_merge.py +4 -7
  30. lsst/pipe/base/pipeline_graph/visualization/_printer.py +10 -10
  31. lsst/pipe/base/pipeline_graph/visualization/_status_annotator.py +7 -0
  32. lsst/pipe/base/prerequisite_helpers.py +2 -1
  33. lsst/pipe/base/quantum_graph/_common.py +19 -20
  34. lsst/pipe/base/quantum_graph/_multiblock.py +37 -31
  35. lsst/pipe/base/quantum_graph/_predicted.py +113 -15
  36. lsst/pipe/base/quantum_graph/_provenance.py +1136 -45
  37. lsst/pipe/base/quantum_graph/aggregator/__init__.py +0 -1
  38. lsst/pipe/base/quantum_graph/aggregator/_communicators.py +204 -289
  39. lsst/pipe/base/quantum_graph/aggregator/_config.py +87 -9
  40. lsst/pipe/base/quantum_graph/aggregator/_ingester.py +13 -12
  41. lsst/pipe/base/quantum_graph/aggregator/_scanner.py +49 -235
  42. lsst/pipe/base/quantum_graph/aggregator/_structs.py +6 -116
  43. lsst/pipe/base/quantum_graph/aggregator/_supervisor.py +29 -39
  44. lsst/pipe/base/quantum_graph/aggregator/_workers.py +303 -0
  45. lsst/pipe/base/quantum_graph/aggregator/_writer.py +34 -351
  46. lsst/pipe/base/quantum_graph/formatter.py +171 -0
  47. lsst/pipe/base/quantum_graph/ingest_graph.py +413 -0
  48. lsst/pipe/base/quantum_graph/visualization.py +5 -1
  49. lsst/pipe/base/quantum_graph_builder.py +33 -9
  50. lsst/pipe/base/quantum_graph_executor.py +116 -13
  51. lsst/pipe/base/quantum_graph_skeleton.py +31 -35
  52. lsst/pipe/base/quantum_provenance_graph.py +29 -12
  53. lsst/pipe/base/separable_pipeline_executor.py +19 -3
  54. lsst/pipe/base/single_quantum_executor.py +67 -42
  55. lsst/pipe/base/struct.py +4 -0
  56. lsst/pipe/base/testUtils.py +3 -3
  57. lsst/pipe/base/tests/mocks/_storage_class.py +2 -1
  58. lsst/pipe/base/version.py +1 -1
  59. {lsst_pipe_base-30.0.0rc2.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/METADATA +3 -3
  60. lsst_pipe_base-30.0.1rc1.dist-info/RECORD +129 -0
  61. {lsst_pipe_base-30.0.0rc2.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/WHEEL +1 -1
  62. lsst_pipe_base-30.0.0rc2.dist-info/RECORD +0 -125
  63. {lsst_pipe_base-30.0.0rc2.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/entry_points.txt +0 -0
  64. {lsst_pipe_base-30.0.0rc2.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/licenses/COPYRIGHT +0 -0
  65. {lsst_pipe_base-30.0.0rc2.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/licenses/LICENSE +0 -0
  66. {lsst_pipe_base-30.0.0rc2.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/licenses/bsd_license.txt +0 -0
  67. {lsst_pipe_base-30.0.0rc2.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/licenses/gpl-v3.0.txt +0 -0
  68. {lsst_pipe_base-30.0.0rc2.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/top_level.txt +0 -0
  69. {lsst_pipe_base-30.0.0rc2.dist-info → lsst_pipe_base-30.0.1rc1.dist-info}/zip-safe +0 -0
@@ -37,13 +37,13 @@ from typing import Any
37
37
 
38
38
  from lsst.daf.butler import (
39
39
  Butler,
40
- ButlerMetrics,
41
40
  DatasetRef,
42
41
  DatasetType,
43
42
  LimitedButler,
44
43
  NamedKeyDict,
45
44
  Quantum,
46
45
  )
46
+ from lsst.daf.butler.logging import ButlerLogRecords
47
47
  from lsst.utils.introspection import get_full_type_name
48
48
  from lsst.utils.timer import logInfo
49
49
 
@@ -59,7 +59,7 @@ from .connections import AdjustQuantumHelper
59
59
  from .log_capture import LogCapture, _ExecutionLogRecordsExtra
60
60
  from .pipeline_graph import TaskNode
61
61
  from .pipelineTask import PipelineTask
62
- from .quantum_graph_executor import QuantumExecutor
62
+ from .quantum_graph_executor import QuantumExecutionResult, QuantumExecutor
63
63
  from .quantum_reports import QuantumReport
64
64
  from .task import _TASK_FULL_METADATA_TYPE, _TASK_METADATA_TYPE
65
65
  from .taskFactory import TaskFactory
@@ -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.
@@ -157,21 +157,28 @@ class SingleQuantumExecutor(QuantumExecutor):
157
157
  self._previous_process_quanta: list[uuid.UUID] = []
158
158
 
159
159
  def execute(
160
- self, task_node: TaskNode, /, quantum: Quantum, quantum_id: uuid.UUID | None = None
161
- ) -> tuple[Quantum, QuantumReport | None]:
160
+ self,
161
+ task_node: TaskNode,
162
+ /,
163
+ quantum: Quantum,
164
+ quantum_id: uuid.UUID | None = None,
165
+ *,
166
+ log_records: ButlerLogRecords | None = None,
167
+ ) -> QuantumExecutionResult:
162
168
  # Docstring inherited from QuantumExecutor.execute
163
- assert quantum.dataId is not None, "Quantum DataId cannot be None"
164
-
165
169
  if self._butler is not None:
166
170
  self._butler.registry.refresh()
167
-
168
- result = self._execute(task_node, quantum, quantum_id=quantum_id)
169
- report = QuantumReport(quantumId=quantum_id, dataId=quantum.dataId, taskLabel=task_node.label)
170
- return result, report
171
+ return self._execute(task_node, quantum, quantum_id=quantum_id, log_records=log_records)
171
172
 
172
173
  def _execute(
173
- self, task_node: TaskNode, /, quantum: Quantum, quantum_id: uuid.UUID | None = None
174
- ) -> Quantum:
174
+ self,
175
+ task_node: TaskNode,
176
+ /,
177
+ quantum: Quantum,
178
+ quantum_id: uuid.UUID | None = None,
179
+ *,
180
+ log_records: ButlerLogRecords | None = None,
181
+ ) -> QuantumExecutionResult:
175
182
  """Execute the quantum.
176
183
 
177
184
  Internal implementation of `execute()`.
@@ -189,7 +196,7 @@ class SingleQuantumExecutor(QuantumExecutor):
189
196
 
190
197
  try:
191
198
  return self._execute_with_limited_butler(
192
- task_node, limited_butler, quantum=quantum, quantum_id=quantum_id
199
+ task_node, limited_butler, quantum=quantum, quantum_id=quantum_id, log_records=log_records
193
200
  )
194
201
  finally:
195
202
  if used_butler_factory:
@@ -202,14 +209,17 @@ class SingleQuantumExecutor(QuantumExecutor):
202
209
  /,
203
210
  quantum: Quantum,
204
211
  quantum_id: uuid.UUID | None = None,
205
- ) -> Quantum:
212
+ *,
213
+ log_records: ButlerLogRecords | None = None,
214
+ ) -> QuantumExecutionResult:
206
215
  startTime = time.time()
207
-
216
+ assert quantum.dataId is not None, "Quantum DataId cannot be None"
217
+ report = QuantumReport(quantumId=quantum_id, dataId=quantum.dataId, taskLabel=task_node.label)
208
218
  if self._butler is not None:
209
219
  log_capture = LogCapture.from_full(self._butler)
210
220
  else:
211
221
  log_capture = LogCapture.from_limited(limited_butler)
212
- with log_capture.capture_logging(task_node, quantum) as captureLog:
222
+ with log_capture.capture_logging(task_node, quantum, records=log_records) as captureLog:
213
223
  # Save detailed resource usage before task start to metadata.
214
224
  quantumMetadata = _TASK_METADATA_TYPE()
215
225
  logInfo(None, "prep", metadata=quantumMetadata) # type: ignore[arg-type]
@@ -228,7 +238,7 @@ class SingleQuantumExecutor(QuantumExecutor):
228
238
  task_node.label,
229
239
  quantum.dataId,
230
240
  )
231
- return quantum
241
+ return QuantumExecutionResult(quantum, report, skipped_existing=True, adjusted_no_work=False)
232
242
  captureLog.store = True
233
243
 
234
244
  captureLog.extra.previous_process_quanta.extend(self._previous_process_quanta)
@@ -244,6 +254,7 @@ class SingleQuantumExecutor(QuantumExecutor):
244
254
  str(exc),
245
255
  )
246
256
  quantumMetadata["caveats"] = QuantumSuccessCaveats.from_adjust_quantum_no_work().value
257
+ quantumMetadata["outputs"] = []
247
258
  # Make empty metadata that looks something like what a
248
259
  # do-nothing task would write (but we don't bother with empty
249
260
  # nested PropertySets for subtasks). This is slightly
@@ -256,7 +267,13 @@ class SingleQuantumExecutor(QuantumExecutor):
256
267
  if self._job_metadata is not None:
257
268
  fullMetadata["job"] = self._job_metadata
258
269
  self._write_metadata(quantum, fullMetadata, task_node, limited_butler)
259
- return quantum
270
+ return QuantumExecutionResult(
271
+ quantum,
272
+ report,
273
+ skipped_existing=False,
274
+ adjusted_no_work=True,
275
+ task_metadata=fullMetadata,
276
+ )
260
277
 
261
278
  # enable lsstDebug debugging
262
279
  if self._enable_lsst_debug:
@@ -278,10 +295,12 @@ class SingleQuantumExecutor(QuantumExecutor):
278
295
  )
279
296
  task = self._task_factory.makeTask(task_node, limited_butler, init_input_refs)
280
297
  logInfo(None, "start", metadata=quantumMetadata) # type: ignore[arg-type]
298
+ outputs_put: list[uuid.UUID] = []
281
299
  try:
282
- caveats, outputsPut, butler_metrics = self._run_quantum(
283
- task, quantum, task_node, limited_butler, quantum_id=quantum_id
284
- )
300
+ with limited_butler.record_metrics() as butler_metrics:
301
+ caveats = self._run_quantum(
302
+ task, quantum, task_node, limited_butler, quantum_id=quantum_id, ids_put=outputs_put
303
+ )
285
304
  except Exception as e:
286
305
  _LOG.error(
287
306
  "Execution of task '%s' on quantum %s failed. Exception %s: %s",
@@ -301,10 +320,10 @@ class SingleQuantumExecutor(QuantumExecutor):
301
320
  quantumMetadata["caveats"] = caveats.value
302
321
  # Stringify the UUID for easier compatibility with
303
322
  # PropertyList.
304
- quantumMetadata["outputs"] = [str(output) for output in outputsPut]
305
323
  finally:
306
324
  logInfo(None, "end", metadata=quantumMetadata) # type: ignore[arg-type]
307
325
  fullMetadata = task.getFullMetadata()
326
+ quantumMetadata["outputs"] = [str(output) for output in outputs_put]
308
327
  fullMetadata["quantum"] = quantumMetadata
309
328
  if self._job_metadata is not None:
310
329
  fullMetadata["job"] = self._job_metadata
@@ -317,7 +336,13 @@ class SingleQuantumExecutor(QuantumExecutor):
317
336
  quantum.dataId,
318
337
  stopTime - startTime,
319
338
  )
320
- return quantum
339
+ return QuantumExecutionResult(
340
+ quantum,
341
+ report,
342
+ skipped_existing=False,
343
+ adjusted_no_work=False,
344
+ task_metadata=fullMetadata,
345
+ )
321
346
 
322
347
  def _check_existing_outputs(
323
348
  self,
@@ -519,8 +544,9 @@ class SingleQuantumExecutor(QuantumExecutor):
519
544
  task_node: TaskNode,
520
545
  /,
521
546
  limited_butler: LimitedButler,
522
- quantum_id: uuid.UUID | None = None,
523
- ) -> tuple[QuantumSuccessCaveats, list[uuid.UUID], ButlerMetrics]:
547
+ quantum_id: uuid.UUID | None,
548
+ ids_put: list[uuid.UUID],
549
+ ) -> QuantumSuccessCaveats:
524
550
  """Execute task on a single quantum.
525
551
 
526
552
  Parameters
@@ -533,18 +559,17 @@ class SingleQuantumExecutor(QuantumExecutor):
533
559
  Task definition structure.
534
560
  limited_butler : `~lsst.daf.butler.LimitedButler`
535
561
  Butler to use for dataset I/O.
536
- quantum_id : `uuid.UUID` or `None`, optional
562
+ quantum_id : `uuid.UUID` or `None`
537
563
  ID of the quantum being executed.
564
+ ids_put : list[ `uuid.UUID` ]
565
+ List to be populated with the dataset IDs that were written by this
566
+ quantum. This is an output parameter in order to allow it to be
567
+ populated even when an exception is raised.
538
568
 
539
569
  Returns
540
570
  -------
541
571
  flags : `QuantumSuccessCaveats`
542
572
  Flags that describe qualified successes.
543
- ids_put : list[ `uuid.UUID` ]
544
- Record of all the dataset IDs that were written by this quantum
545
- being executed.
546
- metrics : `lsst.daf.butler.ButlerMetrics`
547
- Butler metrics recorded for this quantum.
548
573
  """
549
574
  flags = QuantumSuccessCaveats.NO_CAVEATS
550
575
 
@@ -556,8 +581,7 @@ class SingleQuantumExecutor(QuantumExecutor):
556
581
 
557
582
  # Call task runQuantum() method.
558
583
  try:
559
- with limited_butler.record_metrics() as butler_metrics:
560
- task.runQuantum(butlerQC, inputRefs, outputRefs)
584
+ task.runQuantum(butlerQC, inputRefs, outputRefs)
561
585
  except NoWorkFound as err:
562
586
  # Not an error, just an early exit.
563
587
  _LOG.info(
@@ -595,12 +619,13 @@ class SingleQuantumExecutor(QuantumExecutor):
595
619
  )
596
620
  _LOG.error(error, exc_info=error)
597
621
  flags |= caught.FLAGS
622
+ finally:
623
+ ids_put.extend(output[2] for output in butlerQC.outputsPut)
598
624
  if not butlerQC.outputsPut:
599
625
  flags |= QuantumSuccessCaveats.ALL_OUTPUTS_MISSING
600
626
  if not butlerQC.outputsPut == butlerQC.allOutputs:
601
627
  flags |= QuantumSuccessCaveats.ANY_OUTPUTS_MISSING
602
- ids_put = [output[2] for output in butlerQC.outputsPut]
603
- return flags, ids_put, butler_metrics
628
+ return flags
604
629
 
605
630
  def _write_metadata(
606
631
  self, quantum: Quantum, metadata: Any, task_node: TaskNode, /, limited_butler: LimitedButler
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.0rc2"
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.0rc2
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
@@ -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=-auEgPcWk4qAWrWVMJY7Of7dAJ0dNQHoqQraCNdAEN4,52
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.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
 
@@ -1,125 +0,0 @@
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=I9UTaj81krR1zkTZ1owfOPBzHN29PY3Egg7fIE5obxQ,30057
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
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=inUDyzbM1sKMCtHaRkhx3dWSPHPBIDVMHOPhzB13Kdw,16720
17
- lsst/pipe/base/connections.py,sha256=UIe1km5_bOth5o9LZtjpT2r9vc44K4TGmz5Fvmqu5rA,67178
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=jYtWCD4PkEAeVUpKIxuiJJVgsCm7qiwCorWVgNHkVgU,17270
22
- lsst/pipe/base/graph_walker.py,sha256=Ij7JfYF0srA29VgM_DhbNBxUBeOHDOnujrTQPjVNha0,4694
23
- lsst/pipe/base/log_capture.py,sha256=5r99_Ek2A75vYOMo-z52ltWLdfYfWExm55UU9a4nqmM,12909
24
- lsst/pipe/base/mermaid_tools.py,sha256=cdlDJQ1x8k7-VvCLEUqvSC3GR1zCsB-aUTxOjYejNWc,5216
25
- lsst/pipe/base/mp_graph_executor.py,sha256=FKlFxjtU2-6SFzX_wsdtMMAj5P09ZE8V65-Sg585g2Y,35501
26
- lsst/pipe/base/pipeline.py,sha256=FVaiLhgw9Pzo-nzXKS0dLNafegP0AMZKLtPlSvOSkRU,37563
27
- lsst/pipe/base/pipelineIR.py,sha256=UuZ02NLhVmzzekbuWlyar7cPLCf_4yfzD5qFEmGHs_A,45821
28
- lsst/pipe/base/pipelineTask.py,sha256=K3GdjJLvy8A7I-jzQiERQZaYF7mC1LM3iB5TmUtbOCI,8394
29
- lsst/pipe/base/prerequisite_helpers.py,sha256=bmiebQ4veSrypZgAXjmCBFfj8fUtPW9eRQaVShhxdBQ,28446
30
- lsst/pipe/base/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- lsst/pipe/base/quantum_graph_builder.py,sha256=nJsrGx5P4NLTBZo2ZXGpHO8JU05yZkJYxKxWk3ZecEI,67940
32
- lsst/pipe/base/quantum_graph_executor.py,sha256=WP41iQmihy1jfgaHV6eu2aSrqQx_Fydq3mbEF6CLQ-s,4419
33
- lsst/pipe/base/quantum_graph_skeleton.py,sha256=GhSQjRHaErneGY4A4E0tERqg9QPEeYrlpmdLzqFXy6E,28586
34
- lsst/pipe/base/quantum_provenance_graph.py,sha256=33S5iCVxD9Co4oJSU_N8AJXL14Nw0UwGzPEc3gpQiqk,91981
35
- lsst/pipe/base/quantum_reports.py,sha256=ut235L88v7SXaeVUvMA9qFl7tpeMwGnzob3X0QoOI_s,14210
36
- lsst/pipe/base/resource_usage.py,sha256=LfH7Qf6taI3lxw0aB90riRMn1UxUTMBSqtBjKPJ-XuY,6759
37
- lsst/pipe/base/separable_pipeline_executor.py,sha256=vXqJrRI5GNezzGV9QsiaRHEhioDF2Y_W7JQYQCzHR7A,16720
38
- lsst/pipe/base/simple_pipeline_executor.py,sha256=_HGeAOgHUiRdQwsmD_qira-vcHZXlLbf_LmhLJffh2U,29563
39
- lsst/pipe/base/single_quantum_executor.py,sha256=yCpDS_eHsJTOu34mHYv8DJjj8UG0GjPdCuXdb74A2p8,28543
40
- lsst/pipe/base/struct.py,sha256=Fa-UkpuXOxdzKWbHrMUkJYOszZuBXCm2NesXNR0IOPQ,5048
41
- lsst/pipe/base/task.py,sha256=XHBd-7m1a4-6LgobBYA1DgY4H7EV-_RWKfxbhZbMmD4,15145
42
- lsst/pipe/base/taskFactory.py,sha256=MsDGECJqZLSZk8SGhpuVhNaP32UWuNvxZiDcZExPFG8,3412
43
- lsst/pipe/base/testUtils.py,sha256=lSBKMhoKflbi8JkMNYfEqqHNl-rtFI8UYT3QneDYpLo,18477
44
- lsst/pipe/base/utils.py,sha256=JmEt3l0xrh9uayKrSXuQEq12aXOhDr2YXmbYduaxCko,1940
45
- lsst/pipe/base/version.py,sha256=CrAQNQjb1NNXqaNvScI53U2GvkmrnpRtyOiy0bIrcl4,52
46
- lsst/pipe/base/cli/__init__.py,sha256=861tXIAW7SqtqNUYkjbeEdfg8lDswXsjJQca0gVCFz4,54
47
- lsst/pipe/base/cli/_get_cli_subcommands.py,sha256=g_af64klRybBGKAg7fmBSZBdw2LYBAsFON_yQIMZON0,1289
48
- lsst/pipe/base/cli/cmd/__init__.py,sha256=3UF2IQEEBor4YMGRNPdcZAVCAI5yFyeHp5nGul4IoyM,1557
49
- lsst/pipe/base/cli/cmd/commands.py,sha256=ilwKms1Gq4vc6Mddz3MB0fFcgWidseZeYlxTrOQlg8Q,9743
50
- lsst/pipe/base/cli/opt/__init__.py,sha256=DN17wUbMwNIgbDBfF35sdyGfaMT81f3b_CA5Pp8POdk,1347
51
- lsst/pipe/base/cli/opt/arguments.py,sha256=9LhDnsM98_2zOqqm-eyv_nnZmAQcBG5OpHzeJYw_eTw,1484
52
- lsst/pipe/base/cli/opt/options.py,sha256=d5mC2WXZJiUbkdaIo_VUsvNxShD3GmredbEN5jQD64Q,1900
53
- lsst/pipe/base/formatters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
- lsst/pipe/base/formatters/pexConfig.py,sha256=MA-08FIDV7PmpcV-VtDaBegR6YO6_pEhMB37WKMwup8,2163
55
- lsst/pipe/base/graph/__init__.py,sha256=Zs2vwSFNiu1bYDsgrWQZ0qegG5F6PIjiQ5ZGT3EqcfA,118
56
- lsst/pipe/base/graph/_implDetails.py,sha256=QQHVnCW78UnIbALXX_v7EW7g6MTUTuuR1Q_Ss_squUw,6784
57
- lsst/pipe/base/graph/_loadHelpers.py,sha256=qUfjIgFezaXZRCFV7PFzmz1SSKFjRWOMWJePuyKiD24,12064
58
- lsst/pipe/base/graph/_versionDeserializers.py,sha256=Xwq-MHfxaml2bL5cxSF8qmb6rjEHHZBuSengX8iggRg,28011
59
- lsst/pipe/base/graph/graph.py,sha256=AZzq8HXUbWLcRKIGnKpwcCA8q0Fz-BT2pn0tFU1zulo,75148
60
- lsst/pipe/base/graph/graphSummary.py,sha256=F0ET5H4cBFYNPXvHuUBa3nTCj99rpf0JwxPG5Kfi7iw,6352
61
- lsst/pipe/base/graph/quantumNode.py,sha256=l4mslxBgyUzBAqwjpx6XRP-UPxe-oRMxHJWt-_y3Dm0,7196
62
- lsst/pipe/base/pipeline_graph/__init__.py,sha256=yTEuvlzbeKIHIm7GeRmGSsma1wpZFNv8j12WfSH-deY,1516
63
- lsst/pipe/base/pipeline_graph/__main__.py,sha256=E6ugEwJbds22wjgcfcgzeyO04JofQwVhn_Y8kZYY1lQ,20769
64
- lsst/pipe/base/pipeline_graph/_dataset_types.py,sha256=MzpiI4bOUgwUpnse4Bj_KFAUFm_uERCHWd0BwAhKksc,11333
65
- lsst/pipe/base/pipeline_graph/_edges.py,sha256=n6iCYql-TvAyM1xrINt7m02efjebJlIwhk254CCzfn8,35300
66
- lsst/pipe/base/pipeline_graph/_exceptions.py,sha256=3jvCXms0_5ThLGtsOlKxsI1vWiq3gY4hba8fRBW0tgI,3943
67
- lsst/pipe/base/pipeline_graph/_mapping_views.py,sha256=9nLKPA8j7sS09haShbJnEtGXbb4vy_cWpbLeMLBmVvs,9194
68
- lsst/pipe/base/pipeline_graph/_nodes.py,sha256=GGXfzXvrjNbwPt-0w8cC0l_I6CCNskoDNjA8Ds4ILS0,4236
69
- lsst/pipe/base/pipeline_graph/_pipeline_graph.py,sha256=V5xvlH0VxPsSctWYD5kDT-HybfZqYjMtnZi6n48GEM4,122536
70
- lsst/pipe/base/pipeline_graph/_task_subsets.py,sha256=lLvcndSGcZigteWd4eeAM8LxQ1lHPBoysY8PjJTxx1c,13244
71
- lsst/pipe/base/pipeline_graph/_tasks.py,sha256=jTLpm5dZMXRNrGi3L45-3DtF95PGwhmejWLZ-zcSTzo,42802
72
- lsst/pipe/base/pipeline_graph/expressions.py,sha256=wNNVSWVMDZs_dp4Xd30rt1Xj8PfzWikJKo-amaJ-leM,7690
73
- lsst/pipe/base/pipeline_graph/io.py,sha256=zVIybq5JyR1u1FwqF60wG0bIhz_SkgzzQiw2A7a1oNk,30943
74
- lsst/pipe/base/pipeline_graph/visualization/__init__.py,sha256=qQctfWuFpcmgRdgu8Y6OsJ_pXpLKrCK-alqfVtIecls,1551
75
- lsst/pipe/base/pipeline_graph/visualization/_dot.py,sha256=hgy5Wk4GXptb9GbjPn8-0D9EjWsXKBEEVs1ocHLh_MA,13535
76
- lsst/pipe/base/pipeline_graph/visualization/_formatting.py,sha256=NsBxXwdmISitr8_4wPc-T8CqVB-Mq4pv7DmUefFm3JU,17845
77
- lsst/pipe/base/pipeline_graph/visualization/_layout.py,sha256=aMFl2Sgw_2-AfCBr_JBIWSs7VbSfSP7Nuol0mP9lkUo,17157
78
- lsst/pipe/base/pipeline_graph/visualization/_merge.py,sha256=cBKhNjgymDkzYtVutrXd9IGa-eE4Q9jnHO9F18e64dY,15435
79
- lsst/pipe/base/pipeline_graph/visualization/_mermaid.py,sha256=V_LesIauJStjrxLO-cbvrhaZo5kDYG-JIMuErVu0EPk,20255
80
- lsst/pipe/base/pipeline_graph/visualization/_options.py,sha256=vOIp2T7DLA48lTm5mTyCakIByb_wM21U_Crz_83MjoM,5237
81
- lsst/pipe/base/pipeline_graph/visualization/_printer.py,sha256=yJMRJ-aXd3nYDgs1FqS2l_hzNbQ50HUVm55VVaNi71s,16537
82
- lsst/pipe/base/pipeline_graph/visualization/_show.py,sha256=lPRjO1To2n5r3f_Wgcwy-7TmyJ7UszGGFXAlOtN1wDs,10510
83
- lsst/pipe/base/pipeline_graph/visualization/_status_annotator.py,sha256=dp7PXl9Cu7GfWjBi5g8KjXZgnF1KGg_idKKxtICL53Q,8679
84
- lsst/pipe/base/quantum_graph/__init__.py,sha256=-Gp3LihB0AXCvhG387wKAEpHRM-NrHGSXMti8cHee90,1437
85
- lsst/pipe/base/quantum_graph/_common.py,sha256=tgQsIylvs5wSAKs3SVp5_XJ7XEBJwBcRUbBGR2EFuwU,22714
86
- lsst/pipe/base/quantum_graph/_multiblock.py,sha256=kc2pqezfU7xOAxYZa41mz3G4X5w4GVfovw3ZcjNgK2Y,27950
87
- lsst/pipe/base/quantum_graph/_predicted.py,sha256=VoJev2xEnNcXA1ar_cM7paUfAP5DrE95FWjgqy4FU78,87901
88
- lsst/pipe/base/quantum_graph/_provenance.py,sha256=R1SoRxyi6cNi9fXSc7ybrbri9anuYnliJ6SBmVUrh40,55102
89
- lsst/pipe/base/quantum_graph/visualization.py,sha256=EbTWhk9aPq7sX6bcHmnEIsr2xuuR6d1SxspQbRe8D0Q,12235
90
- lsst/pipe/base/quantum_graph/aggregator/__init__.py,sha256=4CK8sP_ZjUKmxKS3LnCH1zG7XSk9IEwijrluRBHhEMU,7436
91
- lsst/pipe/base/quantum_graph/aggregator/_communicators.py,sha256=w7hNEQjE1Qjhi6u4Tx4wS_1RrV3-WQRCz1FACd-vmro,36396
92
- lsst/pipe/base/quantum_graph/aggregator/_config.py,sha256=iV1Ejfk-UnFoQ8TkpJE_jMZYHsmZcdLm5R-FnQEqO7s,5167
93
- lsst/pipe/base/quantum_graph/aggregator/_ingester.py,sha256=lhu8I0R3IwoLkVcrqF1ypoHAFamNapSoMcG9aYFjbQ4,14158
94
- lsst/pipe/base/quantum_graph/aggregator/_progress.py,sha256=jiz9Np73uUQ03CtH7pI6TXxXrwFUChh5hSj_gbMGHr0,7207
95
- lsst/pipe/base/quantum_graph/aggregator/_scanner.py,sha256=4wg2cgVcAoqyuZZUBogHXWkSr9X6sVwnJLu_o96D204,22758
96
- lsst/pipe/base/quantum_graph/aggregator/_structs.py,sha256=bM-MejZz5DFUFQCH8kZDykuMBmBJYbQMl15nBm-3dtc,5499
97
- lsst/pipe/base/quantum_graph/aggregator/_supervisor.py,sha256=5-6CshU9RFyVEgYI3qJwuVEGw8YtT9Ei7cNkcghXzMk,9290
98
- lsst/pipe/base/quantum_graph/aggregator/_writer.py,sha256=fYQrJGCg3MQQQF1feWXCLyG6m5ucnzFrIINawWgnF8g,21504
99
- lsst/pipe/base/script/__init__.py,sha256=cLEXE7aq5UZ0juL_ScmRw0weFgp4tDgwEX_ts-NEYic,1522
100
- lsst/pipe/base/script/register_instrument.py,sha256=neQ2MTPtAiV_Hl2yatQ8-vQC24xHjhpI7VJUHf5kPX4,2445
101
- lsst/pipe/base/script/retrieve_artifacts_for_quanta.py,sha256=Cr0HpzXm_C3LnIOQg5tNJht02O6xoqtWWIphjugasMA,3957
102
- lsst/pipe/base/script/transfer_from_graph.py,sha256=NelxNU_aNEwPHDZnDGXA07oeuSkeXqEZ6KG0ax6VE8c,7254
103
- lsst/pipe/base/script/utils.py,sha256=zNqpHG3kXA8OaNXnwYIo0Hu_LCie1qoBAARAME3WEjs,3739
104
- lsst/pipe/base/script/zip_from_graph.py,sha256=dMyyTGzEBCMMmR6Ts8R7QXUJrbtdrac_i-iy87lFDSI,3242
105
- lsst/pipe/base/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
- lsst/pipe/base/tests/in_memory_limited_butler.py,sha256=UzLh416H67nCUhD9y3cniAAjY7VojvhOLjF3gHHgjA4,8679
107
- lsst/pipe/base/tests/no_dimensions.py,sha256=58UpyRN8cLAMZtkOmjTm3dJZyRFRekotQ-7-OgEfiAI,4710
108
- lsst/pipe/base/tests/pipelineStepTester.py,sha256=KGxdB8gdVpSey2RUGURDIzIfPL-4qvQCsBpMrhG4Z2M,7208
109
- lsst/pipe/base/tests/simpleQGraph.py,sha256=V_h1SifQ27vnjz5Fax1KZYyn6yPUDNfc8gRjc7SFbhE,20197
110
- lsst/pipe/base/tests/util.py,sha256=IXpZOC58fdRnurB5lPcNX-xRgKEV-cPNkWKJDFIr1gs,4772
111
- lsst/pipe/base/tests/mocks/__init__.py,sha256=fDy9H9vRAIBpKDJEXNZuDWJMzWZfpcBT4TmyOw4o-RY,1572
112
- lsst/pipe/base/tests/mocks/_data_id_match.py,sha256=jVekStcrItC0tqOCc01VjYaiE9exYm3MRkwB0Gh_3J0,7465
113
- lsst/pipe/base/tests/mocks/_pipeline_task.py,sha256=N3fC4OMAMWWnYtyLkVdMfb9ZiFse39HniRDvlAOofOY,30691
114
- lsst/pipe/base/tests/mocks/_repo.py,sha256=SH-jzynS-H2xc_3GLjF7ln-kHdRoSeVVaal5qLd2hXI,28359
115
- lsst/pipe/base/tests/mocks/_storage_class.py,sha256=12IFfJMbZ5GkYlMX6ZMWiG8pMZc2Jlxke3qQW-bljdU,27434
116
- lsst_pipe_base-30.0.0rc2.dist-info/licenses/COPYRIGHT,sha256=kB3Z9_f6a6uFLGpEmNJT_n186CE65H6wHu4F6BNt_zA,368
117
- lsst_pipe_base-30.0.0rc2.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
118
- lsst_pipe_base-30.0.0rc2.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
119
- lsst_pipe_base-30.0.0rc2.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
120
- lsst_pipe_base-30.0.0rc2.dist-info/METADATA,sha256=9hmmNRnCJLQILuUJWaNAa-qvOFeKOW2uhNeNrsxbh8I,2254
121
- lsst_pipe_base-30.0.0rc2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
122
- lsst_pipe_base-30.0.0rc2.dist-info/entry_points.txt,sha256=bnmUhJBsChxMdqST9VmFBYYKxLQoToOfqW1wjW7khjk,64
123
- lsst_pipe_base-30.0.0rc2.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
124
- lsst_pipe_base-30.0.0rc2.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
125
- lsst_pipe_base-30.0.0rc2.dist-info/RECORD,,