lsst-pipe-base 29.2025.4100__py3-none-any.whl → 29.2025.4300__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/_status.py +1 -1
- lsst/pipe/base/cli/cmd/__init__.py +2 -2
- lsst/pipe/base/cli/cmd/commands.py +116 -1
- lsst/pipe/base/graph_walker.py +8 -4
- lsst/pipe/base/pipeline_graph/_pipeline_graph.py +30 -5
- lsst/pipe/base/quantum_graph/__init__.py +1 -0
- lsst/pipe/base/quantum_graph/_common.py +2 -1
- lsst/pipe/base/quantum_graph/_multiblock.py +41 -7
- lsst/pipe/base/quantum_graph/_predicted.py +62 -5
- lsst/pipe/base/quantum_graph/_provenance.py +1209 -0
- lsst/pipe/base/quantum_graph/aggregator/__init__.py +143 -0
- lsst/pipe/base/quantum_graph/aggregator/_communicators.py +981 -0
- lsst/pipe/base/quantum_graph/aggregator/_config.py +139 -0
- lsst/pipe/base/quantum_graph/aggregator/_ingester.py +312 -0
- lsst/pipe/base/quantum_graph/aggregator/_progress.py +208 -0
- lsst/pipe/base/quantum_graph/aggregator/_scanner.py +371 -0
- lsst/pipe/base/quantum_graph/aggregator/_structs.py +167 -0
- lsst/pipe/base/quantum_graph/aggregator/_supervisor.py +225 -0
- lsst/pipe/base/quantum_graph/aggregator/_writer.py +593 -0
- lsst/pipe/base/resource_usage.py +183 -0
- lsst/pipe/base/simple_pipeline_executor.py +4 -1
- lsst/pipe/base/tests/util.py +31 -0
- lsst/pipe/base/version.py +1 -1
- {lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/METADATA +1 -1
- {lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/RECORD +33 -22
- {lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/WHEEL +0 -0
- {lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/entry_points.txt +0 -0
- {lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/licenses/COPYRIGHT +0 -0
- {lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/licenses/LICENSE +0 -0
- {lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/licenses/bsd_license.txt +0 -0
- {lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/licenses/gpl-v3.0.txt +0 -0
- {lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/top_level.txt +0 -0
- {lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/zip-safe +0 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# This file is part of pipe_base.
|
|
2
|
+
#
|
|
3
|
+
# Developed for the LSST Data Management System.
|
|
4
|
+
# This product includes software developed by the LSST Project
|
|
5
|
+
# (http://www.lsst.org).
|
|
6
|
+
# See the COPYRIGHT file at the top-level directory of this distribution
|
|
7
|
+
# for details of code ownership.
|
|
8
|
+
#
|
|
9
|
+
# This software is dual licensed under the GNU General Public License and also
|
|
10
|
+
# under a 3-clause BSD license. Recipients may choose which of these licenses
|
|
11
|
+
# to use; please see the files gpl-3.0.txt and/or bsd_license.txt,
|
|
12
|
+
# respectively. If you choose the GPL option then the following text applies
|
|
13
|
+
# (but note that there is still no warranty even if you opt for BSD instead):
|
|
14
|
+
#
|
|
15
|
+
# This program is free software: you can redistribute it and/or modify
|
|
16
|
+
# it under the terms of the GNU General Public License as published by
|
|
17
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
18
|
+
# (at your option) any later version.
|
|
19
|
+
#
|
|
20
|
+
# This program is distributed in the hope that it will be useful,
|
|
21
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
22
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
23
|
+
# GNU General Public License for more details.
|
|
24
|
+
#
|
|
25
|
+
# You should have received a copy of the GNU General Public License
|
|
26
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
27
|
+
|
|
28
|
+
from __future__ import annotations
|
|
29
|
+
|
|
30
|
+
__all__ = ("QuantumResourceUsage",)
|
|
31
|
+
|
|
32
|
+
import datetime
|
|
33
|
+
|
|
34
|
+
import numpy as np
|
|
35
|
+
import pydantic
|
|
36
|
+
|
|
37
|
+
from ._task_metadata import TaskMetadata
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class QuantumResourceUsage(pydantic.BaseModel):
|
|
41
|
+
"""A struct holding the most frequently used resource usage metrics for
|
|
42
|
+
executed quanta.
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
memory: float = pydantic.Field(json_schema_extra={"unit": "byte"})
|
|
46
|
+
"""Maximum memory usage of the process that ran this quantum, in bytes.
|
|
47
|
+
|
|
48
|
+
This is derived from the maximum resident set size at the end of the
|
|
49
|
+
quantum's execution, and is expected to only grow as multiple quanta are
|
|
50
|
+
executed in the same process; that makes this a lower bound on the actual
|
|
51
|
+
memory use of any particular quantum.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
start: datetime.datetime
|
|
55
|
+
"""Start time (UTC), corresponding to the beginning of the "prep" period.
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
prep_time: float = pydantic.Field(json_schema_extra={"unit": "s"})
|
|
59
|
+
"""Wall-clock time in seconds spent preparing for the execution of this
|
|
60
|
+
quantum.
|
|
61
|
+
|
|
62
|
+
This includes checking for existing inputs, outputs, clobbering when
|
|
63
|
+
necessary, and running the `..PipelineTaskConnections.adjustQuantum` hook.
|
|
64
|
+
It does not include process startup times, import times, or butler
|
|
65
|
+
initialization overheads.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
init_time: float = pydantic.Field(json_schema_extra={"unit": "s"})
|
|
69
|
+
"""Wall-clock time in seconds spent initializing the task used to run this
|
|
70
|
+
quantum.
|
|
71
|
+
|
|
72
|
+
This includes the time spent reading init-inputs.
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
run_time: float = pydantic.Field(json_schema_extra={"unit": "s"})
|
|
76
|
+
"""Wall-clock time in seconds spent executing this quantum.
|
|
77
|
+
|
|
78
|
+
This includes time spent reading inputs and writing outputs. It does not
|
|
79
|
+
include the time spent writing the special log and metadata datasets.
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
run_time_cpu: float = pydantic.Field(json_schema_extra={"unit": "s"})
|
|
83
|
+
"""CPU time in seconds spent executing this quantum.
|
|
84
|
+
|
|
85
|
+
This includes time spent reading inputs and writing outputs, to the extent
|
|
86
|
+
that those operations actually spend CPU time at all. It does not include
|
|
87
|
+
the time spent writing the special log and metadata datasets.
|
|
88
|
+
"""
|
|
89
|
+
|
|
90
|
+
@property
|
|
91
|
+
def total_time(self) -> float:
|
|
92
|
+
"""Total wall-clock time spent in "prep", "init", and "run"."""
|
|
93
|
+
return self.prep_time + self.init_time + self.run_time
|
|
94
|
+
|
|
95
|
+
@property
|
|
96
|
+
def end(self) -> datetime.datetime:
|
|
97
|
+
"""End time (UTC), corresponding to the end of the "run" period."""
|
|
98
|
+
return self.start + datetime.timedelta(seconds=self.total_time)
|
|
99
|
+
|
|
100
|
+
@classmethod
|
|
101
|
+
def from_task_metadata(cls, metadata: TaskMetadata) -> QuantumResourceUsage | None:
|
|
102
|
+
"""Extract resource usage information from task metadata.
|
|
103
|
+
|
|
104
|
+
Parameters
|
|
105
|
+
----------
|
|
106
|
+
metadata : `TaskMetadata`
|
|
107
|
+
Metadata written by
|
|
108
|
+
`.single_quantum_executor.SingleQuantumExecutor`.
|
|
109
|
+
|
|
110
|
+
Returns
|
|
111
|
+
-------
|
|
112
|
+
resource_usage : `QuantumResourceUsage` or `None`
|
|
113
|
+
Resource usage information for this quantum, or `None` if the
|
|
114
|
+
expected fields were not found.
|
|
115
|
+
"""
|
|
116
|
+
try:
|
|
117
|
+
quantum_metadata = metadata["quantum"]
|
|
118
|
+
except KeyError:
|
|
119
|
+
return None
|
|
120
|
+
end = datetime.datetime.fromisoformat(quantum_metadata["endUtc"])
|
|
121
|
+
start = datetime.datetime.fromisoformat(quantum_metadata["prepUtc"])
|
|
122
|
+
try:
|
|
123
|
+
start_init = datetime.datetime.fromisoformat(quantum_metadata["initUtc"])
|
|
124
|
+
except KeyError:
|
|
125
|
+
start_init = end
|
|
126
|
+
try:
|
|
127
|
+
start_run = datetime.datetime.fromisoformat(quantum_metadata["startUtc"])
|
|
128
|
+
except KeyError:
|
|
129
|
+
start_run = end
|
|
130
|
+
try:
|
|
131
|
+
run_time_cpu = quantum_metadata["endCpuTime"] - quantum_metadata["startCpuTime"]
|
|
132
|
+
except KeyError:
|
|
133
|
+
run_time_cpu = 0.0
|
|
134
|
+
return cls(
|
|
135
|
+
memory=quantum_metadata["endMaxResidentSetSize"],
|
|
136
|
+
start=start,
|
|
137
|
+
prep_time=(start_init - start).total_seconds(),
|
|
138
|
+
init_time=(start_run - start_init).total_seconds(),
|
|
139
|
+
run_time=(end - start_run).total_seconds(),
|
|
140
|
+
run_time_cpu=run_time_cpu,
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
@staticmethod
|
|
144
|
+
def get_numpy_fields() -> dict[str, np.dtype]:
|
|
145
|
+
"""Return a mapping from field name to the `numpy.dtype` for that
|
|
146
|
+
field.
|
|
147
|
+
"""
|
|
148
|
+
return {
|
|
149
|
+
"memory": np.dtype(np.float32),
|
|
150
|
+
"start": np.dtype(np.float64),
|
|
151
|
+
"prep_time": np.dtype(np.float32),
|
|
152
|
+
"init_time": np.dtype(np.float32),
|
|
153
|
+
"run_time": np.dtype(np.float32),
|
|
154
|
+
"run_time_cpu": np.dtype(np.float32),
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
@staticmethod
|
|
158
|
+
def get_units() -> dict[str, str | None]:
|
|
159
|
+
"""Return a mapping from field name to units.
|
|
160
|
+
|
|
161
|
+
Units are astropy-compatible strings.
|
|
162
|
+
"""
|
|
163
|
+
return {
|
|
164
|
+
"memory": "byte",
|
|
165
|
+
"start": "s",
|
|
166
|
+
"prep_time": "s",
|
|
167
|
+
"init_time": "s",
|
|
168
|
+
"run_time": "s",
|
|
169
|
+
"run_time_cpu": "s",
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
def get_numpy_row(self) -> tuple[object, ...]:
|
|
173
|
+
"""Convert this object to a `tuple` that can used to initialize a
|
|
174
|
+
NumPy structured array with the fields from `get_numpy_fields`.
|
|
175
|
+
"""
|
|
176
|
+
return (
|
|
177
|
+
self.memory,
|
|
178
|
+
self.start.timestamp(),
|
|
179
|
+
self.prep_time,
|
|
180
|
+
self.init_time,
|
|
181
|
+
self.run_time,
|
|
182
|
+
self.run_time_cpu,
|
|
183
|
+
)
|
|
@@ -667,7 +667,10 @@ class SimplePipelineExecutor:
|
|
|
667
667
|
Butler to transfer records to.
|
|
668
668
|
"""
|
|
669
669
|
assert self.predicted.dimension_data is not None, "Dimension data must be present for execution."
|
|
670
|
-
|
|
670
|
+
records = self.predicted.dimension_data.records
|
|
671
|
+
dimensions = out_butler.dimensions.sorted(records.keys())
|
|
672
|
+
for dimension in dimensions:
|
|
673
|
+
record_set = records[dimension.name]
|
|
671
674
|
if record_set and record_set.element.has_own_table:
|
|
672
675
|
out_butler.registry.insertDimensionData(
|
|
673
676
|
record_set.element,
|
lsst/pipe/base/tests/util.py
CHANGED
|
@@ -29,6 +29,13 @@
|
|
|
29
29
|
|
|
30
30
|
from __future__ import annotations
|
|
31
31
|
|
|
32
|
+
__all__ = ("check_output_run", "patch_deterministic_uuid4")
|
|
33
|
+
|
|
34
|
+
import random
|
|
35
|
+
import uuid
|
|
36
|
+
from collections.abc import Iterator
|
|
37
|
+
from contextlib import contextmanager
|
|
38
|
+
|
|
32
39
|
from lsst.daf.butler import DatasetRef
|
|
33
40
|
|
|
34
41
|
from ..graph import QuantumGraph
|
|
@@ -111,3 +118,27 @@ def get_output_refs(graph: QuantumGraph) -> list[DatasetRef]:
|
|
|
111
118
|
result += [ref for ref in init_refs if ref in output_refs]
|
|
112
119
|
|
|
113
120
|
return result
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
@contextmanager
|
|
124
|
+
def patch_deterministic_uuid4(seed: int) -> Iterator[None]:
|
|
125
|
+
"""Return a context manager that replaces the standard library's
|
|
126
|
+
`uuid.uuid4` function with one that generates random numbers with a
|
|
127
|
+
deterministic sequence.
|
|
128
|
+
|
|
129
|
+
Parameters
|
|
130
|
+
----------
|
|
131
|
+
seed : `int
|
|
132
|
+
Integer seed for the random number generator.
|
|
133
|
+
"""
|
|
134
|
+
random.seed(seed)
|
|
135
|
+
original = uuid.uuid4
|
|
136
|
+
uuid.uuid4 = _deterministic_uuid
|
|
137
|
+
try:
|
|
138
|
+
yield
|
|
139
|
+
finally:
|
|
140
|
+
uuid.uuid4 = original
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def _deterministic_uuid() -> uuid.UUID:
|
|
144
|
+
return uuid.UUID(int=random.getrandbits(128))
|
lsst/pipe/base/version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
__all__ = ["__version__"]
|
|
2
|
-
__version__ = "29.2025.
|
|
2
|
+
__version__ = "29.2025.4300"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-pipe-base
|
|
3
|
-
Version: 29.2025.
|
|
3
|
+
Version: 29.2025.4300
|
|
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
|
|
@@ -6,7 +6,7 @@ lsst/pipe/base/_dataset_handle.py,sha256=ft_ke1LbhLLndDPARsHSQJUA05LgUFnfWOq2vbw
|
|
|
6
6
|
lsst/pipe/base/_instrument.py,sha256=I9UTaj81krR1zkTZ1owfOPBzHN29PY3Egg7fIE5obxQ,30057
|
|
7
7
|
lsst/pipe/base/_observation_dimension_packer.py,sha256=78Jg2OVFOdXIK62TS2Y3X4095xqCzmiIx9o4TXyADYA,8027
|
|
8
8
|
lsst/pipe/base/_quantumContext.py,sha256=gb60mTHbgOIEptYvJ64SaChvViXyeKJlG6kEHq4nYVw,19345
|
|
9
|
-
lsst/pipe/base/_status.py,sha256=
|
|
9
|
+
lsst/pipe/base/_status.py,sha256=AoCyee9zS1c3SOi38fO8BCQ28fn3JhwDSjYHhQY_ANA,15740
|
|
10
10
|
lsst/pipe/base/_task_metadata.py,sha256=Y4rjrYWvYxYCJwy86VvzxKMkNxEJbYVgLVuXo6KiXac,25638
|
|
11
11
|
lsst/pipe/base/all_dimensions_quantum_graph_builder.py,sha256=nazY74jrdSCr6CFfPp78JecM_-udW95EYP7grLPO2hg,70830
|
|
12
12
|
lsst/pipe/base/automatic_connection_constants.py,sha256=H5uuh1rYRpjndgPdb0dh1L_-OyLKdT6VWOZTAb__xCU,3298
|
|
@@ -19,7 +19,7 @@ lsst/pipe/base/dot_tools.py,sha256=vriWMaB8YTEKKvhJE5KYdVGE4gB5XmiYfD2f18Fue-c,4
|
|
|
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
21
|
lsst/pipe/base/execution_reports.py,sha256=jYtWCD4PkEAeVUpKIxuiJJVgsCm7qiwCorWVgNHkVgU,17270
|
|
22
|
-
lsst/pipe/base/graph_walker.py,sha256=
|
|
22
|
+
lsst/pipe/base/graph_walker.py,sha256=Ij7JfYF0srA29VgM_DhbNBxUBeOHDOnujrTQPjVNha0,4694
|
|
23
23
|
lsst/pipe/base/log_capture.py,sha256=LylLrxPJyMxU90uSQ15PqFhObDSLWQWGKX6NuXOuwXA,9504
|
|
24
24
|
lsst/pipe/base/mermaid_tools.py,sha256=cdlDJQ1x8k7-VvCLEUqvSC3GR1zCsB-aUTxOjYejNWc,5216
|
|
25
25
|
lsst/pipe/base/mp_graph_executor.py,sha256=FKlFxjtU2-6SFzX_wsdtMMAj5P09ZE8V65-Sg585g2Y,35501
|
|
@@ -33,19 +33,20 @@ lsst/pipe/base/quantum_graph_executor.py,sha256=WP41iQmihy1jfgaHV6eu2aSrqQx_Fydq
|
|
|
33
33
|
lsst/pipe/base/quantum_graph_skeleton.py,sha256=GhSQjRHaErneGY4A4E0tERqg9QPEeYrlpmdLzqFXy6E,28586
|
|
34
34
|
lsst/pipe/base/quantum_provenance_graph.py,sha256=SChke6lcSzQQQMbVN_mCZ-RxDj7chehjJrSMvXRuhAI,93372
|
|
35
35
|
lsst/pipe/base/quantum_reports.py,sha256=ut235L88v7SXaeVUvMA9qFl7tpeMwGnzob3X0QoOI_s,14210
|
|
36
|
+
lsst/pipe/base/resource_usage.py,sha256=LfH7Qf6taI3lxw0aB90riRMn1UxUTMBSqtBjKPJ-XuY,6759
|
|
36
37
|
lsst/pipe/base/separable_pipeline_executor.py,sha256=vXqJrRI5GNezzGV9QsiaRHEhioDF2Y_W7JQYQCzHR7A,16720
|
|
37
|
-
lsst/pipe/base/simple_pipeline_executor.py,sha256=
|
|
38
|
+
lsst/pipe/base/simple_pipeline_executor.py,sha256=QjgX5seueopxPpnJz7H2hBNx-8ucxeT-3BXj6ET_vww,29543
|
|
38
39
|
lsst/pipe/base/single_quantum_executor.py,sha256=YWzLJDTRlvMwmtjsIW7XXZEUlLlv7ize-Oxb_0eKTrI,26667
|
|
39
40
|
lsst/pipe/base/struct.py,sha256=Fa-UkpuXOxdzKWbHrMUkJYOszZuBXCm2NesXNR0IOPQ,5048
|
|
40
41
|
lsst/pipe/base/task.py,sha256=XHBd-7m1a4-6LgobBYA1DgY4H7EV-_RWKfxbhZbMmD4,15145
|
|
41
42
|
lsst/pipe/base/taskFactory.py,sha256=MsDGECJqZLSZk8SGhpuVhNaP32UWuNvxZiDcZExPFG8,3412
|
|
42
43
|
lsst/pipe/base/testUtils.py,sha256=lSBKMhoKflbi8JkMNYfEqqHNl-rtFI8UYT3QneDYpLo,18477
|
|
43
44
|
lsst/pipe/base/utils.py,sha256=JmEt3l0xrh9uayKrSXuQEq12aXOhDr2YXmbYduaxCko,1940
|
|
44
|
-
lsst/pipe/base/version.py,sha256=
|
|
45
|
+
lsst/pipe/base/version.py,sha256=pmH-QwBOGm7hpNEwNmgwgFuJ9J8NNZQ81N3RGqBJ3YU,55
|
|
45
46
|
lsst/pipe/base/cli/__init__.py,sha256=861tXIAW7SqtqNUYkjbeEdfg8lDswXsjJQca0gVCFz4,54
|
|
46
47
|
lsst/pipe/base/cli/_get_cli_subcommands.py,sha256=g_af64klRybBGKAg7fmBSZBdw2LYBAsFON_yQIMZON0,1289
|
|
47
|
-
lsst/pipe/base/cli/cmd/__init__.py,sha256=
|
|
48
|
-
lsst/pipe/base/cli/cmd/commands.py,sha256=
|
|
48
|
+
lsst/pipe/base/cli/cmd/__init__.py,sha256=3UF2IQEEBor4YMGRNPdcZAVCAI5yFyeHp5nGul4IoyM,1557
|
|
49
|
+
lsst/pipe/base/cli/cmd/commands.py,sha256=ilwKms1Gq4vc6Mddz3MB0fFcgWidseZeYlxTrOQlg8Q,9743
|
|
49
50
|
lsst/pipe/base/cli/opt/__init__.py,sha256=DN17wUbMwNIgbDBfF35sdyGfaMT81f3b_CA5Pp8POdk,1347
|
|
50
51
|
lsst/pipe/base/cli/opt/arguments.py,sha256=9LhDnsM98_2zOqqm-eyv_nnZmAQcBG5OpHzeJYw_eTw,1484
|
|
51
52
|
lsst/pipe/base/cli/opt/options.py,sha256=d5mC2WXZJiUbkdaIo_VUsvNxShD3GmredbEN5jQD64Q,1900
|
|
@@ -65,7 +66,7 @@ lsst/pipe/base/pipeline_graph/_edges.py,sha256=n6iCYql-TvAyM1xrINt7m02efjebJlIwh
|
|
|
65
66
|
lsst/pipe/base/pipeline_graph/_exceptions.py,sha256=3jvCXms0_5ThLGtsOlKxsI1vWiq3gY4hba8fRBW0tgI,3943
|
|
66
67
|
lsst/pipe/base/pipeline_graph/_mapping_views.py,sha256=9nLKPA8j7sS09haShbJnEtGXbb4vy_cWpbLeMLBmVvs,9194
|
|
67
68
|
lsst/pipe/base/pipeline_graph/_nodes.py,sha256=GGXfzXvrjNbwPt-0w8cC0l_I6CCNskoDNjA8Ds4ILS0,4236
|
|
68
|
-
lsst/pipe/base/pipeline_graph/_pipeline_graph.py,sha256=
|
|
69
|
+
lsst/pipe/base/pipeline_graph/_pipeline_graph.py,sha256=V5xvlH0VxPsSctWYD5kDT-HybfZqYjMtnZi6n48GEM4,122536
|
|
69
70
|
lsst/pipe/base/pipeline_graph/_task_subsets.py,sha256=lLvcndSGcZigteWd4eeAM8LxQ1lHPBoysY8PjJTxx1c,13244
|
|
70
71
|
lsst/pipe/base/pipeline_graph/_tasks.py,sha256=jTLpm5dZMXRNrGi3L45-3DtF95PGwhmejWLZ-zcSTzo,42802
|
|
71
72
|
lsst/pipe/base/pipeline_graph/expressions.py,sha256=MZ0qxGA4ctu_WqVjdjjezZF8Jd5174PWbio7EF2wdl0,7717
|
|
@@ -80,11 +81,21 @@ lsst/pipe/base/pipeline_graph/visualization/_options.py,sha256=vOIp2T7DLA48lTm5m
|
|
|
80
81
|
lsst/pipe/base/pipeline_graph/visualization/_printer.py,sha256=yJMRJ-aXd3nYDgs1FqS2l_hzNbQ50HUVm55VVaNi71s,16537
|
|
81
82
|
lsst/pipe/base/pipeline_graph/visualization/_show.py,sha256=lPRjO1To2n5r3f_Wgcwy-7TmyJ7UszGGFXAlOtN1wDs,10510
|
|
82
83
|
lsst/pipe/base/pipeline_graph/visualization/_status_annotator.py,sha256=dp7PXl9Cu7GfWjBi5g8KjXZgnF1KGg_idKKxtICL53Q,8679
|
|
83
|
-
lsst/pipe/base/quantum_graph/__init__.py,sha256
|
|
84
|
-
lsst/pipe/base/quantum_graph/_common.py,sha256=
|
|
85
|
-
lsst/pipe/base/quantum_graph/_multiblock.py,sha256=
|
|
86
|
-
lsst/pipe/base/quantum_graph/_predicted.py,sha256=
|
|
84
|
+
lsst/pipe/base/quantum_graph/__init__.py,sha256=-Gp3LihB0AXCvhG387wKAEpHRM-NrHGSXMti8cHee90,1437
|
|
85
|
+
lsst/pipe/base/quantum_graph/_common.py,sha256=8WnQ5OD4LCz9i5xEWBlo3D3P7gfVRTYAxOkn0mbRvjE,22167
|
|
86
|
+
lsst/pipe/base/quantum_graph/_multiblock.py,sha256=FQa8lafbuS4sD1rZE_ivQb-WTiHZkOol0OGCHNbTpq8,29125
|
|
87
|
+
lsst/pipe/base/quantum_graph/_predicted.py,sha256=FHLqcEBBuJmIf_3eEUMdBNm70t9DvDWaxGp8bHTWJSA,88056
|
|
88
|
+
lsst/pipe/base/quantum_graph/_provenance.py,sha256=zb7YXiIYnLPYaej9f9tl8aW8wtxow3YT79yk1vdErQg,48554
|
|
87
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=QERfDavbc_3dcRizrTtKtDha647aMBhFt74bH6N36QA,36375
|
|
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=ohZOfQi9VL7fHEn_P84NOaSYvbzeDZIvk71UWL7ZHnY,13746
|
|
94
|
+
lsst/pipe/base/quantum_graph/aggregator/_progress.py,sha256=D0PrjwdJTuPvgQwLeD90nocMgrNnSzkeQmXcvPFV7jc,7155
|
|
95
|
+
lsst/pipe/base/quantum_graph/aggregator/_scanner.py,sha256=EcglaQBMjVxEJyikBAfCOvoqta6fMjKmtZGAOtgjNJE,15412
|
|
96
|
+
lsst/pipe/base/quantum_graph/aggregator/_structs.py,sha256=nn7CVzYPFLZmCOeZhf47H8CIszUL0x3dNgUbGHazpl4,5475
|
|
97
|
+
lsst/pipe/base/quantum_graph/aggregator/_supervisor.py,sha256=HoBAm1ojovpoIvl4KZKCOzSp1BF4YFZLtU8skUFX4O4,9287
|
|
98
|
+
lsst/pipe/base/quantum_graph/aggregator/_writer.py,sha256=u6YubtNiLjFkvH5grQ94Y9ZU9rKUAtK77y07qh5EIo8,24679
|
|
88
99
|
lsst/pipe/base/script/__init__.py,sha256=cLEXE7aq5UZ0juL_ScmRw0weFgp4tDgwEX_ts-NEYic,1522
|
|
89
100
|
lsst/pipe/base/script/register_instrument.py,sha256=TRC2r2tSoYBNWNVQya01ELxAtGH8WVk9Ya-uNgCIL5U,2426
|
|
90
101
|
lsst/pipe/base/script/retrieve_artifacts_for_quanta.py,sha256=pYI0wNl5PU8ImgzWfGEDrRz3PSKSg2szWLEIVKdm7Og,3939
|
|
@@ -96,19 +107,19 @@ lsst/pipe/base/tests/in_memory_limited_butler.py,sha256=UzLh416H67nCUhD9y3cniAAj
|
|
|
96
107
|
lsst/pipe/base/tests/no_dimensions.py,sha256=58UpyRN8cLAMZtkOmjTm3dJZyRFRekotQ-7-OgEfiAI,4710
|
|
97
108
|
lsst/pipe/base/tests/pipelineStepTester.py,sha256=KGxdB8gdVpSey2RUGURDIzIfPL-4qvQCsBpMrhG4Z2M,7208
|
|
98
109
|
lsst/pipe/base/tests/simpleQGraph.py,sha256=WHphpVvOA9eSbVtUp884wjk4g6ppFLM7gnddDYSwnTc,19862
|
|
99
|
-
lsst/pipe/base/tests/util.py,sha256=
|
|
110
|
+
lsst/pipe/base/tests/util.py,sha256=IXpZOC58fdRnurB5lPcNX-xRgKEV-cPNkWKJDFIr1gs,4772
|
|
100
111
|
lsst/pipe/base/tests/mocks/__init__.py,sha256=fDy9H9vRAIBpKDJEXNZuDWJMzWZfpcBT4TmyOw4o-RY,1572
|
|
101
112
|
lsst/pipe/base/tests/mocks/_data_id_match.py,sha256=v33QZhZm-srXZAXZ8NbNKGN-_ql4AzaArBUk1lxhyss,7474
|
|
102
113
|
lsst/pipe/base/tests/mocks/_pipeline_task.py,sha256=_n16lDsk3ItWi2J28Qheuqphr4aaCK6CN9acmJ1hAqI,30692
|
|
103
114
|
lsst/pipe/base/tests/mocks/_repo.py,sha256=OTJw_fi37w7bkZbbLa7z51W-45zxySAnLbV7Qv_aSB4,27423
|
|
104
115
|
lsst/pipe/base/tests/mocks/_storage_class.py,sha256=12IFfJMbZ5GkYlMX6ZMWiG8pMZc2Jlxke3qQW-bljdU,27434
|
|
105
|
-
lsst_pipe_base-29.2025.
|
|
106
|
-
lsst_pipe_base-29.2025.
|
|
107
|
-
lsst_pipe_base-29.2025.
|
|
108
|
-
lsst_pipe_base-29.2025.
|
|
109
|
-
lsst_pipe_base-29.2025.
|
|
110
|
-
lsst_pipe_base-29.2025.
|
|
111
|
-
lsst_pipe_base-29.2025.
|
|
112
|
-
lsst_pipe_base-29.2025.
|
|
113
|
-
lsst_pipe_base-29.2025.
|
|
114
|
-
lsst_pipe_base-29.2025.
|
|
116
|
+
lsst_pipe_base-29.2025.4300.dist-info/licenses/COPYRIGHT,sha256=kB3Z9_f6a6uFLGpEmNJT_n186CE65H6wHu4F6BNt_zA,368
|
|
117
|
+
lsst_pipe_base-29.2025.4300.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
|
|
118
|
+
lsst_pipe_base-29.2025.4300.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
|
|
119
|
+
lsst_pipe_base-29.2025.4300.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
120
|
+
lsst_pipe_base-29.2025.4300.dist-info/METADATA,sha256=XdNNWTqV2W6-kCxqRwWfvKkrCbmaO-qFlavCmaRUJwM,2234
|
|
121
|
+
lsst_pipe_base-29.2025.4300.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
122
|
+
lsst_pipe_base-29.2025.4300.dist-info/entry_points.txt,sha256=bnmUhJBsChxMdqST9VmFBYYKxLQoToOfqW1wjW7khjk,64
|
|
123
|
+
lsst_pipe_base-29.2025.4300.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
|
|
124
|
+
lsst_pipe_base-29.2025.4300.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
125
|
+
lsst_pipe_base-29.2025.4300.dist-info/RECORD,,
|
|
File without changes
|
{lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/licenses/COPYRIGHT
RENAMED
|
File without changes
|
{lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_pipe_base-29.2025.4100.dist-info → lsst_pipe_base-29.2025.4300.dist-info}/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|