lsst-pipe-base 29.2025.1500__py3-none-any.whl → 29.2025.1700__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/all_dimensions_quantum_graph_builder.py +17 -0
- lsst/pipe/base/graph/_loadHelpers.py +4 -0
- lsst/pipe/base/graph/graph.py +2 -2
- lsst/pipe/base/pipeline.py +1 -1
- lsst/pipe/base/pipelineIR.py +10 -1
- lsst/pipe/base/pipeline_graph/visualization/_mermaid.py +17 -25
- lsst/pipe/base/version.py +1 -1
- {lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/METADATA +1 -1
- {lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/RECORD +17 -17
- {lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/WHEEL +1 -1
- {lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/entry_points.txt +0 -0
- {lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/licenses/COPYRIGHT +0 -0
- {lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/licenses/LICENSE +0 -0
- {lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/licenses/bsd_license.txt +0 -0
- {lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/licenses/gpl-v3.0.txt +0 -0
- {lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/top_level.txt +0 -0
- {lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/zip-safe +0 -0
|
@@ -39,6 +39,8 @@ from collections import defaultdict
|
|
|
39
39
|
from collections.abc import Iterable, Mapping
|
|
40
40
|
from typing import TYPE_CHECKING, Any, TypeAlias, final
|
|
41
41
|
|
|
42
|
+
import astropy.table
|
|
43
|
+
|
|
42
44
|
from lsst.daf.butler import (
|
|
43
45
|
Butler,
|
|
44
46
|
DataCoordinate,
|
|
@@ -85,6 +87,11 @@ class AllDimensionsQuantumGraphBuilder(QuantumGraphBuilder):
|
|
|
85
87
|
(sometimes catastrophically bad) query plan.
|
|
86
88
|
bind : `~collections.abc.Mapping`, optional
|
|
87
89
|
Variable substitutions for the ``where`` expression.
|
|
90
|
+
data_id_tables : `~collections.abc.Iterable` [ `astropy.table.Table` ],\
|
|
91
|
+
optional
|
|
92
|
+
Tables of data IDs to join in as constraints. Missing dimensions that
|
|
93
|
+
are constrained by the ``where`` argument or pipeline data ID will be
|
|
94
|
+
filled in automatically.
|
|
88
95
|
**kwargs
|
|
89
96
|
Additional keyword arguments forwarded to `QuantumGraphBuilder`.
|
|
90
97
|
|
|
@@ -113,6 +120,7 @@ class AllDimensionsQuantumGraphBuilder(QuantumGraphBuilder):
|
|
|
113
120
|
where: str = "",
|
|
114
121
|
dataset_query_constraint: DatasetQueryConstraintVariant = DatasetQueryConstraintVariant.ALL,
|
|
115
122
|
bind: Mapping[str, Any] | None = None,
|
|
123
|
+
data_id_tables: Iterable[astropy.table.Table] = (),
|
|
116
124
|
**kwargs: Any,
|
|
117
125
|
):
|
|
118
126
|
super().__init__(pipeline_graph, butler, **kwargs)
|
|
@@ -120,6 +128,7 @@ class AllDimensionsQuantumGraphBuilder(QuantumGraphBuilder):
|
|
|
120
128
|
self.where = where
|
|
121
129
|
self.dataset_query_constraint = dataset_query_constraint
|
|
122
130
|
self.bind = bind
|
|
131
|
+
self.data_id_tables = list(data_id_tables)
|
|
123
132
|
|
|
124
133
|
@timeMethod
|
|
125
134
|
def process_subgraph(self, subgraph: PipelineGraph) -> QuantumGraphSkeleton:
|
|
@@ -194,6 +203,14 @@ class AllDimensionsQuantumGraphBuilder(QuantumGraphBuilder):
|
|
|
194
203
|
f"{self.where!r}, bind={self.bind!r})"
|
|
195
204
|
)
|
|
196
205
|
query = query.where(tree.subgraph.data_id, self.where, bind=self.bind)
|
|
206
|
+
# It's important for tables to be joined in last, so data IDs from
|
|
207
|
+
# pipeline and where can be used to fill in missing columns.
|
|
208
|
+
for table in self.data_id_tables:
|
|
209
|
+
# If this is from ctrl_mpexec's pipetask, it'll have added
|
|
210
|
+
# a filename to the metadata for us.
|
|
211
|
+
table_name = table.meta.get("filename", "unknown")
|
|
212
|
+
query_cmd.append(f" query = query.join_data_coordinate_table(<{table_name}>)")
|
|
213
|
+
query = query.join_data_coordinate_table(table)
|
|
197
214
|
self.log.verbose("Querying for data IDs via: %s", "\n".join(query_cmd))
|
|
198
215
|
# Allow duplicates from common skypix overlaps to make some queries
|
|
199
216
|
# run faster.
|
|
@@ -65,6 +65,7 @@ class LoadHelper(AbstractContextManager["LoadHelper"]):
|
|
|
65
65
|
to upgrade them to the latest format before they can be used in
|
|
66
66
|
production.
|
|
67
67
|
"""
|
|
68
|
+
fullRead: bool = False
|
|
68
69
|
|
|
69
70
|
def __post_init__(self) -> None:
|
|
70
71
|
self._resourceHandle: ResourceHandleProtocol | None = None
|
|
@@ -261,6 +262,9 @@ class LoadHelper(AbstractContextManager["LoadHelper"]):
|
|
|
261
262
|
def __enter__(self) -> LoadHelper:
|
|
262
263
|
if isinstance(self.uri, BinaryIO | BytesIO | BufferedRandom):
|
|
263
264
|
self._resourceHandle = self.uri
|
|
265
|
+
elif self.fullRead:
|
|
266
|
+
local = self._exitStack.enter_context(self.uri.as_local())
|
|
267
|
+
self._resourceHandle = self._exitStack.enter_context(local.open("rb"))
|
|
264
268
|
else:
|
|
265
269
|
self._resourceHandle = self._exitStack.enter_context(self.uri.open("rb"))
|
|
266
270
|
self._initialize()
|
lsst/pipe/base/graph/graph.py
CHANGED
|
@@ -963,7 +963,7 @@ class QuantumGraph:
|
|
|
963
963
|
"""
|
|
964
964
|
uri = ResourcePath(uri)
|
|
965
965
|
if uri.getExtension() in {".qgraph"}:
|
|
966
|
-
with LoadHelper(uri, minimumVersion) as loader:
|
|
966
|
+
with LoadHelper(uri, minimumVersion, fullRead=(nodes is None)) as loader:
|
|
967
967
|
qgraph = loader.load(universe, nodes, graphID)
|
|
968
968
|
else:
|
|
969
969
|
raise ValueError(f"Only know how to handle files saved as `.qgraph`, not {uri}")
|
|
@@ -1230,7 +1230,7 @@ class QuantumGraph:
|
|
|
1230
1230
|
being loaded or if the supplied uri does not point at a valid
|
|
1231
1231
|
`QuantumGraph` save file.
|
|
1232
1232
|
"""
|
|
1233
|
-
with LoadHelper(file, minimumVersion) as loader:
|
|
1233
|
+
with LoadHelper(file, minimumVersion, fullRead=(nodes is None)) as loader:
|
|
1234
1234
|
qgraph = loader.load(universe, nodes, graphID)
|
|
1235
1235
|
if not isinstance(qgraph, QuantumGraph):
|
|
1236
1236
|
raise TypeError(f"QuantumGraph file contains unexpected object type: {type(qgraph)}")
|
lsst/pipe/base/pipeline.py
CHANGED
|
@@ -427,7 +427,7 @@ class Pipeline:
|
|
|
427
427
|
if "," in label_subset:
|
|
428
428
|
if ".." in label_subset:
|
|
429
429
|
raise ValueError(
|
|
430
|
-
"Can only specify a list of labels or a
|
|
430
|
+
"Can only specify a list of labels or a range when loading a Pipeline, not both."
|
|
431
431
|
)
|
|
432
432
|
args = {"labels": set(label_subset.split(","))}
|
|
433
433
|
# labels supplied as a range
|
lsst/pipe/base/pipelineIR.py
CHANGED
|
@@ -980,10 +980,19 @@ class PipelineIR:
|
|
|
980
980
|
if extraTaskLabels := (labeled_subset.subset - pipeline.tasks.keys()):
|
|
981
981
|
match subsetCtrl:
|
|
982
982
|
case PipelineSubsetCtrl.DROP:
|
|
983
|
-
pipeline.labeled_subsets
|
|
983
|
+
del pipeline.labeled_subsets[label]
|
|
984
984
|
case PipelineSubsetCtrl.EDIT:
|
|
985
985
|
for extra in extraTaskLabels:
|
|
986
986
|
labeled_subset.subset.discard(extra)
|
|
987
|
+
elif subsetCtrl is PipelineSubsetCtrl.DROP and not labeled_subset.subset:
|
|
988
|
+
# When mode is DROP, also drop any subsets that were already
|
|
989
|
+
# empty. This ensures we drop steps that were emptied-out by
|
|
990
|
+
# (earlier) imports with exclude in EDIT mode. Note that we
|
|
991
|
+
# don't want to drop those steps when they're first excluded
|
|
992
|
+
# down to nothing, because the pipeline might be about to add
|
|
993
|
+
# new tasks back into them, and then we'd want to preserve the
|
|
994
|
+
# step definitions.
|
|
995
|
+
del pipeline.labeled_subsets[label]
|
|
987
996
|
|
|
988
997
|
# remove any steps that correspond to removed subsets
|
|
989
998
|
new_steps = []
|
|
@@ -32,8 +32,8 @@ import html
|
|
|
32
32
|
import os
|
|
33
33
|
import sys
|
|
34
34
|
from collections.abc import Mapping
|
|
35
|
-
from io import
|
|
36
|
-
from typing import
|
|
35
|
+
from io import StringIO
|
|
36
|
+
from typing import IO, Any
|
|
37
37
|
|
|
38
38
|
from .._nodes import NodeType
|
|
39
39
|
from .._pipeline_graph import PipelineGraph
|
|
@@ -58,7 +58,7 @@ _OVERFLOW_MAX_LINES = 20
|
|
|
58
58
|
|
|
59
59
|
def show_mermaid(
|
|
60
60
|
pipeline_graph: PipelineGraph,
|
|
61
|
-
stream:
|
|
61
|
+
stream: IO[Any] = sys.stdout,
|
|
62
62
|
output_format: str = "mmd",
|
|
63
63
|
width: int | None = None,
|
|
64
64
|
height: int | None = None,
|
|
@@ -78,7 +78,7 @@ def show_mermaid(
|
|
|
78
78
|
----------
|
|
79
79
|
pipeline_graph : `PipelineGraph`
|
|
80
80
|
The pipeline graph to visualize.
|
|
81
|
-
stream : `
|
|
81
|
+
stream : `typing.IO`, optional
|
|
82
82
|
The output stream where Mermaid code is written. Defaults to
|
|
83
83
|
`sys.stdout`.
|
|
84
84
|
output_format : str, optional
|
|
@@ -113,19 +113,11 @@ def show_mermaid(
|
|
|
113
113
|
mermaid_source = _generate_mermaid_source(pipeline_graph, **kwargs)
|
|
114
114
|
|
|
115
115
|
if output_format == "mmd":
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
stream.write(mermaid_source)
|
|
119
|
-
else:
|
|
120
|
-
raise TypeError(f"Expected a text stream, but got {type(stream)}.")
|
|
116
|
+
# Write Mermaid source as a string.
|
|
117
|
+
stream.write(mermaid_source)
|
|
121
118
|
else:
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
_render_mermaid_image(
|
|
125
|
-
mermaid_source, stream, output_format, width=width, height=height, scale=scale
|
|
126
|
-
)
|
|
127
|
-
else:
|
|
128
|
-
raise ValueError(f"Expected a binary stream, but got {type(stream)}.")
|
|
119
|
+
# Render Mermaid source as an image and write to binary stream.
|
|
120
|
+
_render_mermaid_image(mermaid_source, stream, output_format, width=width, height=height, scale=scale)
|
|
129
121
|
|
|
130
122
|
|
|
131
123
|
def _generate_mermaid_source(pipeline_graph: PipelineGraph, **kwargs: Any) -> str:
|
|
@@ -210,7 +202,7 @@ def _generate_mermaid_source(pipeline_graph: PipelineGraph, **kwargs: Any) -> st
|
|
|
210
202
|
|
|
211
203
|
def _render_mermaid_image(
|
|
212
204
|
mermaid_source: str,
|
|
213
|
-
binary_stream:
|
|
205
|
+
binary_stream: IO[bytes],
|
|
214
206
|
output_format: str,
|
|
215
207
|
width: int | None = None,
|
|
216
208
|
height: int | None = None,
|
|
@@ -287,7 +279,7 @@ def _render_task_node(
|
|
|
287
279
|
node_key: NodeKey,
|
|
288
280
|
node_data: Mapping[str, Any],
|
|
289
281
|
options: NodeAttributeOptions,
|
|
290
|
-
stream:
|
|
282
|
+
stream: IO[str],
|
|
291
283
|
) -> None:
|
|
292
284
|
"""Render a Mermaid node for a task or task-init node.
|
|
293
285
|
|
|
@@ -301,7 +293,7 @@ def _render_task_node(
|
|
|
301
293
|
options : NodeAttributeOptions
|
|
302
294
|
Rendering options controlling whether to show dimensions, storage
|
|
303
295
|
classes, etc.
|
|
304
|
-
stream :
|
|
296
|
+
stream : `typing.IO` [ `str` ]
|
|
305
297
|
The output stream for Mermaid syntax.
|
|
306
298
|
"""
|
|
307
299
|
# Convert node_key into a label, handling line splitting and prefix
|
|
@@ -337,7 +329,7 @@ def _render_dataset_type_node(
|
|
|
337
329
|
node_key: NodeKey,
|
|
338
330
|
node_data: Mapping[str, Any],
|
|
339
331
|
options: NodeAttributeOptions,
|
|
340
|
-
stream:
|
|
332
|
+
stream: IO[str],
|
|
341
333
|
overflow_ref: int,
|
|
342
334
|
) -> tuple[int, list[str]]:
|
|
343
335
|
"""Render a Mermaid node for a dataset-type node, handling overflow lines
|
|
@@ -355,7 +347,7 @@ def _render_dataset_type_node(
|
|
|
355
347
|
options : NodeAttributeOptions
|
|
356
348
|
Rendering options controlling whether to show dimensions and storage
|
|
357
349
|
classes.
|
|
358
|
-
stream :
|
|
350
|
+
stream : `typing.IO` [ `str` ]
|
|
359
351
|
The output stream for Mermaid syntax.
|
|
360
352
|
overflow_ref : int
|
|
361
353
|
The current reference number for overflow nodes. If overflow occurs,
|
|
@@ -414,7 +406,7 @@ def _render_dataset_type_node(
|
|
|
414
406
|
return overflow_ref, overflow_ids
|
|
415
407
|
|
|
416
408
|
|
|
417
|
-
def _render_simple_node(node_id: str, lines: list[str], node_class: str, stream:
|
|
409
|
+
def _render_simple_node(node_id: str, lines: list[str], node_class: str, stream: IO[str]) -> None:
|
|
418
410
|
"""Render a simple Mermaid node with given lines and a class.
|
|
419
411
|
|
|
420
412
|
This helper function is used for both primary nodes and overflow nodes once
|
|
@@ -429,7 +421,7 @@ def _render_simple_node(node_id: str, lines: list[str], node_class: str, stream:
|
|
|
429
421
|
node_class : str
|
|
430
422
|
Mermaid class name to style the node (e.g., 'dsType', 'task',
|
|
431
423
|
'taskInit').
|
|
432
|
-
stream :
|
|
424
|
+
stream : `typing.IO` [ `str` ]
|
|
433
425
|
The output stream.
|
|
434
426
|
"""
|
|
435
427
|
label = "<br>".join(lines)
|
|
@@ -437,7 +429,7 @@ def _render_simple_node(node_id: str, lines: list[str], node_class: str, stream:
|
|
|
437
429
|
print(f"class {node_id} {node_class};", file=stream)
|
|
438
430
|
|
|
439
431
|
|
|
440
|
-
def _render_edge(from_node_id: str, to_node_id: str, is_prerequisite: bool, stream:
|
|
432
|
+
def _render_edge(from_node_id: str, to_node_id: str, is_prerequisite: bool, stream: IO[str]) -> None:
|
|
441
433
|
"""Render a Mermaid edge from one node to another.
|
|
442
434
|
|
|
443
435
|
Edges in Mermaid are normally specified as `A --> B`. Prerequisite edges
|
|
@@ -453,7 +445,7 @@ def _render_edge(from_node_id: str, to_node_id: str, is_prerequisite: bool, stre
|
|
|
453
445
|
is_prerequisite : bool
|
|
454
446
|
If True, this edge represents a prerequisite connection and will be
|
|
455
447
|
styled as dashed.
|
|
456
|
-
stream :
|
|
448
|
+
stream : `typing.IO` [ `str` ]
|
|
457
449
|
The output stream for Mermaid syntax.
|
|
458
450
|
"""
|
|
459
451
|
# At this stage, we simply print the edge. The styling (dashed) for
|
lsst/pipe/base/version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
__all__ = ["__version__"]
|
|
2
|
-
__version__ = "29.2025.
|
|
2
|
+
__version__ = "29.2025.1700"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-pipe-base
|
|
3
|
-
Version: 29.2025.
|
|
3
|
+
Version: 29.2025.1700
|
|
4
4
|
Summary: Pipeline infrastructure for the Rubin Science Pipelines.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License: BSD 3-Clause License
|
|
@@ -8,7 +8,7 @@ lsst/pipe/base/_observation_dimension_packer.py,sha256=78Jg2OVFOdXIK62TS2Y3X4095
|
|
|
8
8
|
lsst/pipe/base/_quantumContext.py,sha256=gb60mTHbgOIEptYvJ64SaChvViXyeKJlG6kEHq4nYVw,19345
|
|
9
9
|
lsst/pipe/base/_status.py,sha256=t9jiM0YkL4cAJ1hokRJ4FFntijW86fRWbb_5bKaCDYk,15222
|
|
10
10
|
lsst/pipe/base/_task_metadata.py,sha256=SfM4L07Pe5itBDCsNh-XjdQvlKLY5LBcG6lpdtpMxHA,24968
|
|
11
|
-
lsst/pipe/base/all_dimensions_quantum_graph_builder.py,sha256=
|
|
11
|
+
lsst/pipe/base/all_dimensions_quantum_graph_builder.py,sha256=S7SPu-dUOFTXnGJh7F72fSPhxht7HWsavtZAzphackM,54259
|
|
12
12
|
lsst/pipe/base/automatic_connection_constants.py,sha256=H5uuh1rYRpjndgPdb0dh1L_-OyLKdT6VWOZTAb__xCU,3298
|
|
13
13
|
lsst/pipe/base/caching_limited_butler.py,sha256=ZlvjznhHMuKi_0JkVa6WlCwhDXRSOozCcxpOHHSRMIQ,7311
|
|
14
14
|
lsst/pipe/base/config.py,sha256=yNipVEc6awwhU_O9I01g20OnvQrs28dAwkXuI1hrlYE,11982
|
|
@@ -19,8 +19,8 @@ lsst/pipe/base/dot_tools.py,sha256=o_bDp9vW-4PelE7kWodH6pWVIRuyGlTRFv-kR_YKfLo,1
|
|
|
19
19
|
lsst/pipe/base/executionButlerBuilder.py,sha256=-vv-1aGm06RM4fJECjvJL0ZXHrwth7Hjt0jIfkKYY18,21254
|
|
20
20
|
lsst/pipe/base/execution_reports.py,sha256=jYtWCD4PkEAeVUpKIxuiJJVgsCm7qiwCorWVgNHkVgU,17270
|
|
21
21
|
lsst/pipe/base/mermaid_tools.py,sha256=b_15oqCcxSom4ecMTDX8tfEtxe8W-juPVL65HOMywJ8,17695
|
|
22
|
-
lsst/pipe/base/pipeline.py,sha256=
|
|
23
|
-
lsst/pipe/base/pipelineIR.py,sha256
|
|
22
|
+
lsst/pipe/base/pipeline.py,sha256=FVaiLhgw9Pzo-nzXKS0dLNafegP0AMZKLtPlSvOSkRU,37563
|
|
23
|
+
lsst/pipe/base/pipelineIR.py,sha256=DDOAYHnMP-iw021RDMYsZnvb21tWumLjYqO5d38q_Zk,44300
|
|
24
24
|
lsst/pipe/base/pipelineTask.py,sha256=K3GdjJLvy8A7I-jzQiERQZaYF7mC1LM3iB5TmUtbOCI,8394
|
|
25
25
|
lsst/pipe/base/prerequisite_helpers.py,sha256=WxfIGkF0Wlucp9mE3Wp3E6K2M6d66O0oZrWecRqn5CI,28312
|
|
26
26
|
lsst/pipe/base/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -32,7 +32,7 @@ lsst/pipe/base/task.py,sha256=XHBd-7m1a4-6LgobBYA1DgY4H7EV-_RWKfxbhZbMmD4,15145
|
|
|
32
32
|
lsst/pipe/base/taskFactory.py,sha256=4GhN2DozPM8suBYIvoKN4E6VP0I3mYZHBjCUO5JcCGk,2901
|
|
33
33
|
lsst/pipe/base/testUtils.py,sha256=lSBKMhoKflbi8JkMNYfEqqHNl-rtFI8UYT3QneDYpLo,18477
|
|
34
34
|
lsst/pipe/base/utils.py,sha256=JmEt3l0xrh9uayKrSXuQEq12aXOhDr2YXmbYduaxCko,1940
|
|
35
|
-
lsst/pipe/base/version.py,sha256=
|
|
35
|
+
lsst/pipe/base/version.py,sha256=k6PcnewHb2vETZCsCS6q8mJ_uyMg-otfwuQ8B0oDDwQ,55
|
|
36
36
|
lsst/pipe/base/cli/__init__.py,sha256=861tXIAW7SqtqNUYkjbeEdfg8lDswXsjJQca0gVCFz4,54
|
|
37
37
|
lsst/pipe/base/cli/_get_cli_subcommands.py,sha256=g_af64klRybBGKAg7fmBSZBdw2LYBAsFON_yQIMZON0,1289
|
|
38
38
|
lsst/pipe/base/cli/cmd/__init__.py,sha256=BGicstnryQ48rYcNRh4fa6Vy63ZIlZ_pPAEa17jhkwY,1519
|
|
@@ -44,9 +44,9 @@ lsst/pipe/base/formatters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
44
44
|
lsst/pipe/base/formatters/pexConfig.py,sha256=MA-08FIDV7PmpcV-VtDaBegR6YO6_pEhMB37WKMwup8,2163
|
|
45
45
|
lsst/pipe/base/graph/__init__.py,sha256=Zs2vwSFNiu1bYDsgrWQZ0qegG5F6PIjiQ5ZGT3EqcfA,118
|
|
46
46
|
lsst/pipe/base/graph/_implDetails.py,sha256=QQHVnCW78UnIbALXX_v7EW7g6MTUTuuR1Q_Ss_squUw,6784
|
|
47
|
-
lsst/pipe/base/graph/_loadHelpers.py,sha256=
|
|
47
|
+
lsst/pipe/base/graph/_loadHelpers.py,sha256=qUfjIgFezaXZRCFV7PFzmz1SSKFjRWOMWJePuyKiD24,12064
|
|
48
48
|
lsst/pipe/base/graph/_versionDeserializers.py,sha256=pXk63v6jkQSghSOoU1hpPkxVa82WVGitm2jrop85SeM,27992
|
|
49
|
-
lsst/pipe/base/graph/graph.py,sha256=
|
|
49
|
+
lsst/pipe/base/graph/graph.py,sha256=CIM7ij7I51rVtVj0jd5dPgOWByALoFZh2Cp61mOEnyQ,74200
|
|
50
50
|
lsst/pipe/base/graph/graphSummary.py,sha256=aYYZ_fGQWpp2UB4bG99Okeh_7yRGdYTva_wXk_rlwWA,4872
|
|
51
51
|
lsst/pipe/base/graph/quantumNode.py,sha256=l4mslxBgyUzBAqwjpx6XRP-UPxe-oRMxHJWt-_y3Dm0,7196
|
|
52
52
|
lsst/pipe/base/pipeline_graph/__init__.py,sha256=yTEuvlzbeKIHIm7GeRmGSsma1wpZFNv8j12WfSH-deY,1516
|
|
@@ -66,7 +66,7 @@ lsst/pipe/base/pipeline_graph/visualization/_dot.py,sha256=quja94wafmbCPJvC7HrHR
|
|
|
66
66
|
lsst/pipe/base/pipeline_graph/visualization/_formatting.py,sha256=NsBxXwdmISitr8_4wPc-T8CqVB-Mq4pv7DmUefFm3JU,17845
|
|
67
67
|
lsst/pipe/base/pipeline_graph/visualization/_layout.py,sha256=aMFl2Sgw_2-AfCBr_JBIWSs7VbSfSP7Nuol0mP9lkUo,17157
|
|
68
68
|
lsst/pipe/base/pipeline_graph/visualization/_merge.py,sha256=cBKhNjgymDkzYtVutrXd9IGa-eE4Q9jnHO9F18e64dY,15435
|
|
69
|
-
lsst/pipe/base/pipeline_graph/visualization/_mermaid.py,sha256=
|
|
69
|
+
lsst/pipe/base/pipeline_graph/visualization/_mermaid.py,sha256=V_LesIauJStjrxLO-cbvrhaZo5kDYG-JIMuErVu0EPk,20255
|
|
70
70
|
lsst/pipe/base/pipeline_graph/visualization/_options.py,sha256=vOIp2T7DLA48lTm5mTyCakIByb_wM21U_Crz_83MjoM,5237
|
|
71
71
|
lsst/pipe/base/pipeline_graph/visualization/_printer.py,sha256=yJMRJ-aXd3nYDgs1FqS2l_hzNbQ50HUVm55VVaNi71s,16537
|
|
72
72
|
lsst/pipe/base/pipeline_graph/visualization/_show.py,sha256=lPRjO1To2n5r3f_Wgcwy-7TmyJ7UszGGFXAlOtN1wDs,10510
|
|
@@ -85,13 +85,13 @@ lsst/pipe/base/tests/mocks/__init__.py,sha256=NrIJYDeYgR3HsOJXBEXi8EXDhhV7iw7dgw
|
|
|
85
85
|
lsst/pipe/base/tests/mocks/_data_id_match.py,sha256=MRGZUSD6ES0EiVG7kOIGZaJbZsaSIXB2M6tI9RpdUAc,6491
|
|
86
86
|
lsst/pipe/base/tests/mocks/_pipeline_task.py,sha256=fqaJ-tB7K3jxlfCvCSnVd_GNrz-JhX7FB914h7nHLXc,29366
|
|
87
87
|
lsst/pipe/base/tests/mocks/_storage_class.py,sha256=JvUmyXQC5DwOkFoLHkJk6u0ldn1VgZVVjh9GjpXRGg0,25211
|
|
88
|
-
lsst_pipe_base-29.2025.
|
|
89
|
-
lsst_pipe_base-29.2025.
|
|
90
|
-
lsst_pipe_base-29.2025.
|
|
91
|
-
lsst_pipe_base-29.2025.
|
|
92
|
-
lsst_pipe_base-29.2025.
|
|
93
|
-
lsst_pipe_base-29.2025.
|
|
94
|
-
lsst_pipe_base-29.2025.
|
|
95
|
-
lsst_pipe_base-29.2025.
|
|
96
|
-
lsst_pipe_base-29.2025.
|
|
97
|
-
lsst_pipe_base-29.2025.
|
|
88
|
+
lsst_pipe_base-29.2025.1700.dist-info/licenses/COPYRIGHT,sha256=kB3Z9_f6a6uFLGpEmNJT_n186CE65H6wHu4F6BNt_zA,368
|
|
89
|
+
lsst_pipe_base-29.2025.1700.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
|
|
90
|
+
lsst_pipe_base-29.2025.1700.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
|
|
91
|
+
lsst_pipe_base-29.2025.1700.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
92
|
+
lsst_pipe_base-29.2025.1700.dist-info/METADATA,sha256=aY_kTPxDOV7o16RqO7mRAuMSZwI39R5TpJ_URRXseYY,2195
|
|
93
|
+
lsst_pipe_base-29.2025.1700.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
|
|
94
|
+
lsst_pipe_base-29.2025.1700.dist-info/entry_points.txt,sha256=bnmUhJBsChxMdqST9VmFBYYKxLQoToOfqW1wjW7khjk,64
|
|
95
|
+
lsst_pipe_base-29.2025.1700.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
|
|
96
|
+
lsst_pipe_base-29.2025.1700.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
97
|
+
lsst_pipe_base-29.2025.1700.dist-info/RECORD,,
|
{lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/licenses/COPYRIGHT
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.1500.dist-info → lsst_pipe_base-29.2025.1700.dist-info}/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|