dkist-processing-dlnirsp 0.32.8__py3-none-any.whl → 0.33.0__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.
- dkist_processing_dlnirsp/models/constants.py +6 -0
- dkist_processing_dlnirsp/models/parameters.py +33 -3
- dkist_processing_dlnirsp/parsers/task.py +2 -25
- dkist_processing_dlnirsp/parsers/time.py +2 -2
- dkist_processing_dlnirsp/tasks/__init__.py +1 -2
- dkist_processing_dlnirsp/tasks/movie.py +1121 -0
- dkist_processing_dlnirsp/tasks/parse.py +13 -8
- dkist_processing_dlnirsp/tasks/solar.py +129 -30
- dkist_processing_dlnirsp/tests/conftest.py +46 -7
- dkist_processing_dlnirsp/tests/local_trial_workflows/l0_polcals_as_science.py +21 -18
- dkist_processing_dlnirsp/tests/local_trial_workflows/l0_solar_gain_as_science.py +21 -18
- dkist_processing_dlnirsp/tests/local_trial_workflows/l0_to_l1.py +21 -18
- dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_dev_mockers.py +1 -1
- dkist_processing_dlnirsp/tests/test_dlnirsp_constants.py +2 -0
- dkist_processing_dlnirsp/tests/test_movie.py +141 -0
- dkist_processing_dlnirsp/tests/test_parameters.py +8 -0
- dkist_processing_dlnirsp/tests/test_parse.py +10 -0
- dkist_processing_dlnirsp/tests/test_science.py +0 -9
- dkist_processing_dlnirsp/tests/test_solar.py +114 -17
- dkist_processing_dlnirsp/tests/test_wavelength_calibration.py +4 -1
- dkist_processing_dlnirsp/workflows/l0_processing.py +6 -8
- dkist_processing_dlnirsp/workflows/trial_workflow.py +7 -7
- {dkist_processing_dlnirsp-0.32.8.dist-info → dkist_processing_dlnirsp-0.33.0.dist-info}/METADATA +52 -35
- {dkist_processing_dlnirsp-0.32.8.dist-info → dkist_processing_dlnirsp-0.33.0.dist-info}/RECORD +28 -30
- docs/gain.rst +7 -3
- dkist_processing_dlnirsp/tasks/assemble_movie.py +0 -150
- dkist_processing_dlnirsp/tasks/make_movie_frames.py +0 -156
- dkist_processing_dlnirsp/tests/test_assemble_movie.py +0 -169
- dkist_processing_dlnirsp/tests/test_make_movie_frames.py +0 -98
- {dkist_processing_dlnirsp-0.32.8.dist-info → dkist_processing_dlnirsp-0.33.0.dist-info}/WHEEL +0 -0
- {dkist_processing_dlnirsp-0.32.8.dist-info → dkist_processing_dlnirsp-0.33.0.dist-info}/entry_points.txt +0 -0
- {dkist_processing_dlnirsp-0.32.8.dist-info → dkist_processing_dlnirsp-0.33.0.dist-info}/top_level.txt +0 -0
|
@@ -12,9 +12,11 @@ from dkist_processing_dlnirsp.models.tags import DlnirspTag
|
|
|
12
12
|
from dkist_processing_dlnirsp.tasks.solar import SolarCalibration
|
|
13
13
|
from dkist_processing_dlnirsp.tests.conftest import DlnirspTestingConstants
|
|
14
14
|
from dkist_processing_dlnirsp.tests.conftest import DlnirspTestingParameters
|
|
15
|
+
from dkist_processing_dlnirsp.tests.conftest import tag_on_modstate
|
|
15
16
|
from dkist_processing_dlnirsp.tests.conftest import write_dark_frames_to_task
|
|
16
17
|
from dkist_processing_dlnirsp.tests.conftest import write_geometric_calibration_to_task
|
|
17
18
|
from dkist_processing_dlnirsp.tests.conftest import write_lamp_gain_frames_to_task
|
|
19
|
+
from dkist_processing_dlnirsp.tests.conftest import write_simple_frames_to_task
|
|
18
20
|
from dkist_processing_dlnirsp.tests.conftest import write_solar_gain_frames_to_task
|
|
19
21
|
|
|
20
22
|
|
|
@@ -30,7 +32,7 @@ def lamp_signal() -> float:
|
|
|
30
32
|
|
|
31
33
|
@pytest.fixture
|
|
32
34
|
def solar_signal() -> float:
|
|
33
|
-
return
|
|
35
|
+
return 62831.85
|
|
34
36
|
|
|
35
37
|
|
|
36
38
|
@pytest.fixture
|
|
@@ -52,11 +54,29 @@ def make_lamp_data(lamp_signal):
|
|
|
52
54
|
|
|
53
55
|
|
|
54
56
|
@pytest.fixture
|
|
55
|
-
def
|
|
57
|
+
def solar_stokes_stack(solar_signal) -> np.ndarray:
|
|
58
|
+
I = solar_signal
|
|
59
|
+
Q = np.random.random() - 0.5
|
|
60
|
+
U = np.random.random() - 0.5
|
|
61
|
+
V = np.random.random() - 0.5
|
|
62
|
+
|
|
63
|
+
return np.array([I, Q, U, V])
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@pytest.fixture
|
|
67
|
+
def modulated_solar_signal(solar_stokes_stack, modulation_matrix) -> np.ndarray:
|
|
68
|
+
return modulation_matrix @ solar_stokes_stack
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@pytest.fixture
|
|
72
|
+
def make_solar_data(
|
|
73
|
+
modulated_solar_signal, solar_signal, dark_signal, lamp_signal, is_polarimetric
|
|
74
|
+
):
|
|
56
75
|
def make_array(frame: Spec122Dataset):
|
|
57
76
|
shape = frame.array_shape[1:]
|
|
58
77
|
modstate = frame.header()["DLN__015"]
|
|
59
|
-
|
|
78
|
+
true_signal = modulated_solar_signal[modstate - 1] if is_polarimetric else solar_signal
|
|
79
|
+
return (np.ones(shape) * true_signal) * lamp_signal + dark_signal
|
|
60
80
|
|
|
61
81
|
return make_array
|
|
62
82
|
|
|
@@ -121,13 +141,20 @@ def solar_task_for_basic_corrections(
|
|
|
121
141
|
shifts_and_scales,
|
|
122
142
|
constants_class_with_different_num_slits,
|
|
123
143
|
reference_wave_axis,
|
|
144
|
+
modulation_matrix,
|
|
145
|
+
make_full_demodulation_matrix,
|
|
146
|
+
is_polarimetric,
|
|
124
147
|
):
|
|
125
148
|
solar_exp_time = 1.0
|
|
126
|
-
num_modstates =
|
|
149
|
+
num_modstates = modulation_matrix.shape[0] if is_polarimetric else 1
|
|
127
150
|
array_shape = jband_group_id_array.shape
|
|
128
151
|
link_constants_db(
|
|
129
152
|
recipe_run_id=recipe_run_id,
|
|
130
|
-
constants_obj=DlnirspTestingConstants(
|
|
153
|
+
constants_obj=DlnirspTestingConstants(
|
|
154
|
+
SOLAR_GAIN_EXPOSURE_TIMES=(solar_exp_time,),
|
|
155
|
+
NUM_MODSTATES=num_modstates,
|
|
156
|
+
POLARIMETER_MODE="Full Stokes" if is_polarimetric else "Stokes I",
|
|
157
|
+
),
|
|
131
158
|
)
|
|
132
159
|
|
|
133
160
|
with SolarCalibration(
|
|
@@ -172,6 +199,7 @@ def solar_task_for_basic_corrections(
|
|
|
172
199
|
DlnirspTag.task_solar_gain(),
|
|
173
200
|
DlnirspTag.exposure_time(solar_exp_time),
|
|
174
201
|
],
|
|
202
|
+
tag_func=tag_on_modstate,
|
|
175
203
|
data_func=make_solar_data,
|
|
176
204
|
)
|
|
177
205
|
shift_dict, scale_dict = shifts_and_scales
|
|
@@ -179,6 +207,16 @@ def solar_task_for_basic_corrections(
|
|
|
179
207
|
task, shift_dict=shift_dict, scale_dict=scale_dict, wave_axis=reference_wave_axis
|
|
180
208
|
)
|
|
181
209
|
|
|
210
|
+
if is_polarimetric:
|
|
211
|
+
write_simple_frames_to_task(
|
|
212
|
+
task,
|
|
213
|
+
task_type=TaskName.polcal.value,
|
|
214
|
+
array_shape=array_shape,
|
|
215
|
+
num_modstates=1,
|
|
216
|
+
tags=[DlnirspTag.intermediate(), DlnirspTag.task_demodulation_matrices()],
|
|
217
|
+
data_func=make_full_demodulation_matrix,
|
|
218
|
+
)
|
|
219
|
+
|
|
182
220
|
yield task, num_modstates, num_solar_frames
|
|
183
221
|
task._purge()
|
|
184
222
|
|
|
@@ -272,8 +310,15 @@ def solar_task_with_no_data(
|
|
|
272
310
|
task._purge()
|
|
273
311
|
|
|
274
312
|
|
|
313
|
+
@pytest.mark.parametrize(
|
|
314
|
+
"is_polarimetric", [pytest.param(True, id="polarimetric"), pytest.param(False, id="intensity")]
|
|
315
|
+
)
|
|
275
316
|
def test_compute_average_gain(
|
|
276
|
-
solar_task_for_basic_corrections,
|
|
317
|
+
solar_task_for_basic_corrections,
|
|
318
|
+
is_polarimetric,
|
|
319
|
+
solar_signal,
|
|
320
|
+
lamp_signal,
|
|
321
|
+
write_drifted_group_ids_to_task,
|
|
277
322
|
):
|
|
278
323
|
"""
|
|
279
324
|
Given: A SolarCalibration task with associated solar gain, lamp, geometric, and dark frames
|
|
@@ -284,22 +329,36 @@ def test_compute_average_gain(
|
|
|
284
329
|
|
|
285
330
|
write_drifted_group_ids_to_task(task)
|
|
286
331
|
|
|
287
|
-
|
|
332
|
+
pol_tag = []
|
|
333
|
+
if is_polarimetric:
|
|
334
|
+
task.compute_demodulated_I_gains()
|
|
335
|
+
pol_tag.append(DlnirspTag.stokes("I"))
|
|
336
|
+
else:
|
|
337
|
+
task.compute_intensity_only_avg_gains()
|
|
288
338
|
|
|
289
|
-
tags = [DlnirspTag.intermediate_frame(), DlnirspTag.task("SC_FULL_CORR")]
|
|
339
|
+
tags = [DlnirspTag.intermediate_frame(), DlnirspTag.task("SC_FULL_CORR")] + pol_tag
|
|
290
340
|
arrays = list(task.read(tags=tags, decoder=fits_array_decoder))
|
|
291
341
|
|
|
342
|
+
if not is_polarimetric:
|
|
343
|
+
assert task.count(tags=tags + [DlnirspTag.stokes("I")]) == 0
|
|
344
|
+
|
|
292
345
|
assert len(arrays) == 1
|
|
293
346
|
avg_array = arrays[0]
|
|
294
347
|
assert avg_array.shape == task.rectified_array_shape
|
|
295
|
-
expected_value =
|
|
296
|
-
np.testing.
|
|
348
|
+
expected_value = solar_signal
|
|
349
|
+
np.testing.assert_array_almost_equal(avg_array[~np.isnan(avg_array)], expected_value)
|
|
297
350
|
|
|
298
351
|
dark_only_list = list(
|
|
299
|
-
task.read(
|
|
352
|
+
task.read(
|
|
353
|
+
tags=[DlnirspTag.intermediate_frame(), DlnirspTag.task("SC_DARK_ONLY")],
|
|
354
|
+
decoder=fits_array_decoder,
|
|
355
|
+
)
|
|
300
356
|
)
|
|
301
357
|
assert len(dark_only_list) == 1
|
|
302
|
-
|
|
358
|
+
expected_dark_only_value = solar_signal * lamp_signal
|
|
359
|
+
np.testing.assert_array_almost_equal(
|
|
360
|
+
dark_only_list[0][~np.isnan(dark_only_list[0])], expected_dark_only_value
|
|
361
|
+
)
|
|
303
362
|
|
|
304
363
|
|
|
305
364
|
def test_compute_characteristic_spectra(solar_task_with_full_corr, groups_by_slitbeam):
|
|
@@ -326,8 +385,16 @@ def test_compute_characteristic_spectra(solar_task_with_full_corr, groups_by_sli
|
|
|
326
385
|
np.testing.assert_equal(rectified_group[~np.isnan(rectified_group)], slitbeam_median)
|
|
327
386
|
|
|
328
387
|
|
|
388
|
+
@pytest.mark.parametrize(
|
|
389
|
+
"is_polarimetric", [pytest.param(True, id="polarimetric"), pytest.param(False, id="intensity")]
|
|
390
|
+
)
|
|
329
391
|
def test_solar_task_completes(
|
|
330
|
-
solar_task_for_basic_corrections,
|
|
392
|
+
solar_task_for_basic_corrections,
|
|
393
|
+
write_drifted_group_ids_to_task,
|
|
394
|
+
is_polarimetric,
|
|
395
|
+
modulation_matrix,
|
|
396
|
+
mocker,
|
|
397
|
+
fake_gql_client,
|
|
331
398
|
):
|
|
332
399
|
"""
|
|
333
400
|
Given: A SolarCalibration task with necessary starting data
|
|
@@ -341,16 +408,46 @@ def test_solar_task_completes(
|
|
|
341
408
|
|
|
342
409
|
write_drifted_group_ids_to_task(task)
|
|
343
410
|
|
|
411
|
+
# Just make sure we set up the test correctly
|
|
412
|
+
assert num_solar_frames == modulation_matrix.shape[0] if is_polarimetric else 1
|
|
413
|
+
|
|
344
414
|
task()
|
|
345
415
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
416
|
+
# Make sure the correct code paths were taken; intensity-only data intermediates don't get the `stokes("I")` tag
|
|
417
|
+
assert task.count(tags=[DlnirspTag.intermediate_frame(), DlnirspTag.task("SC_DARK_ONLY")]) == 1
|
|
418
|
+
assert task.count(tags=[DlnirspTag.intermediate_frame(), DlnirspTag.task("SC_FULL_CORR")]) == 1
|
|
419
|
+
if not is_polarimetric:
|
|
420
|
+
assert (
|
|
421
|
+
task.count(
|
|
422
|
+
tags=[
|
|
423
|
+
DlnirspTag.intermediate_frame(),
|
|
424
|
+
DlnirspTag.task("SC_DARK_ONLY"),
|
|
425
|
+
DlnirspTag.stokes("I"),
|
|
426
|
+
]
|
|
427
|
+
)
|
|
428
|
+
== 0
|
|
349
429
|
)
|
|
350
|
-
|
|
430
|
+
assert (
|
|
431
|
+
task.count(
|
|
432
|
+
tags=[
|
|
433
|
+
DlnirspTag.intermediate_frame(),
|
|
434
|
+
DlnirspTag.task("SC_FULL_CORR"),
|
|
435
|
+
DlnirspTag.stokes("I"),
|
|
436
|
+
]
|
|
437
|
+
)
|
|
438
|
+
== 0
|
|
439
|
+
)
|
|
440
|
+
|
|
441
|
+
tags = [DlnirspTag.intermediate_frame(), DlnirspTag.task_solar_gain()]
|
|
442
|
+
if is_polarimetric:
|
|
443
|
+
tags.append(DlnirspTag.stokes("I"))
|
|
444
|
+
solar_cal_list = list(task.read(tags=tags))
|
|
351
445
|
assert len(solar_cal_list) == 1
|
|
352
446
|
assert solar_cal_list[0].exists()
|
|
353
447
|
|
|
448
|
+
if not is_polarimetric:
|
|
449
|
+
assert task.count(tags=tags + [DlnirspTag.stokes("I")]) == 0
|
|
450
|
+
|
|
354
451
|
quality_files = list(task.read(tags=[DlnirspTag.quality("TASK_TYPES")]))
|
|
355
452
|
assert len(quality_files) == 1
|
|
356
453
|
file = quality_files[0]
|
|
@@ -16,6 +16,7 @@ from dkist_processing_common.codecs.json import json_encoder
|
|
|
16
16
|
from dkist_processing_common.models.metric_code import MetricCode
|
|
17
17
|
from scipy.ndimage import gaussian_filter1d
|
|
18
18
|
from solar_wavelength_calibration import Atlas
|
|
19
|
+
from solar_wavelength_calibration import DownloadConfig
|
|
19
20
|
from sunpy.coordinates import HeliocentricInertial
|
|
20
21
|
|
|
21
22
|
from dkist_processing_dlnirsp.models.constants import DlnirspConstants
|
|
@@ -141,7 +142,9 @@ def resolving_power(arm_id: str) -> float:
|
|
|
141
142
|
|
|
142
143
|
@pytest.fixture(scope="session")
|
|
143
144
|
def solar_atlas() -> Atlas:
|
|
144
|
-
|
|
145
|
+
config = DlnirspTestingParameters().dlnirsp_wavecal_atlas_download_config
|
|
146
|
+
config = DownloadConfig.model_validate(config)
|
|
147
|
+
return Atlas(config=config)
|
|
145
148
|
|
|
146
149
|
|
|
147
150
|
@pytest.fixture
|
|
@@ -9,7 +9,6 @@ from dkist_processing_common.tasks import TransferL1Data
|
|
|
9
9
|
from dkist_processing_core import ResourceQueue
|
|
10
10
|
from dkist_processing_core import Workflow
|
|
11
11
|
|
|
12
|
-
from dkist_processing_dlnirsp.tasks import AssembleDlnirspMovie
|
|
13
12
|
from dkist_processing_dlnirsp.tasks import BadPixelCalibration
|
|
14
13
|
from dkist_processing_dlnirsp.tasks import DarkCalibration
|
|
15
14
|
from dkist_processing_dlnirsp.tasks import DlnirspAssembleQualityData
|
|
@@ -21,7 +20,7 @@ from dkist_processing_dlnirsp.tasks import IfuDriftCalibration
|
|
|
21
20
|
from dkist_processing_dlnirsp.tasks import InstrumentPolarizationCalibration
|
|
22
21
|
from dkist_processing_dlnirsp.tasks import LampCalibration
|
|
23
22
|
from dkist_processing_dlnirsp.tasks import LinearityCorrection
|
|
24
|
-
from dkist_processing_dlnirsp.tasks import
|
|
23
|
+
from dkist_processing_dlnirsp.tasks import MakeDlnirspMovie
|
|
25
24
|
from dkist_processing_dlnirsp.tasks import ParseL0DlnirspLinearizedData
|
|
26
25
|
from dkist_processing_dlnirsp.tasks import ParseL0DlnirspRampData
|
|
27
26
|
from dkist_processing_dlnirsp.tasks import ScienceCalibration
|
|
@@ -47,22 +46,21 @@ l0_pipeline.add_node(task=LampCalibration, upstreams=DarkCalibration)
|
|
|
47
46
|
l0_pipeline.add_node(task=BadPixelCalibration, upstreams=[LampCalibration, IfuDriftCalibration])
|
|
48
47
|
l0_pipeline.add_node(task=GeometricCalibration, upstreams=[IfuDriftCalibration, LampCalibration])
|
|
49
48
|
l0_pipeline.add_node(task=WavelengthCalibration, upstreams=GeometricCalibration)
|
|
50
|
-
l0_pipeline.add_node(task=SolarCalibration, upstreams=GeometricCalibration)
|
|
51
49
|
l0_pipeline.add_node(
|
|
52
50
|
task=InstrumentPolarizationCalibration,
|
|
53
51
|
resource_queue=ResourceQueue.HIGH_MEMORY,
|
|
54
52
|
upstreams=BadPixelCalibration,
|
|
55
53
|
)
|
|
56
54
|
l0_pipeline.add_node(
|
|
57
|
-
task=
|
|
55
|
+
task=SolarCalibration, upstreams=[GeometricCalibration, InstrumentPolarizationCalibration]
|
|
58
56
|
)
|
|
57
|
+
l0_pipeline.add_node(task=ScienceCalibration, upstreams=SolarCalibration)
|
|
59
58
|
l0_pipeline.add_node(
|
|
60
59
|
task=DlnirspWriteL1Frame, upstreams=[WavelengthCalibration, ScienceCalibration]
|
|
61
60
|
)
|
|
62
61
|
|
|
63
62
|
# Movie flow
|
|
64
|
-
l0_pipeline.add_node(task=
|
|
65
|
-
l0_pipeline.add_node(task=AssembleDlnirspMovie, upstreams=MakeDlnirspMovieFrames)
|
|
63
|
+
l0_pipeline.add_node(task=MakeDlnirspMovie, upstreams=[ScienceCalibration, WavelengthCalibration])
|
|
66
64
|
|
|
67
65
|
# Quality flow
|
|
68
66
|
l0_pipeline.add_node(task=DlnirspL0QualityMetrics, upstreams=ParseL0DlnirspLinearizedData)
|
|
@@ -76,11 +74,11 @@ l0_pipeline.add_node(
|
|
|
76
74
|
# Output flow
|
|
77
75
|
l0_pipeline.add_node(
|
|
78
76
|
task=TransferL1Data,
|
|
79
|
-
upstreams=[DlnirspWriteL1Frame,
|
|
77
|
+
upstreams=[DlnirspWriteL1Frame, MakeDlnirspMovie, DlnirspAssembleQualityData],
|
|
80
78
|
)
|
|
81
79
|
l0_pipeline.add_node(
|
|
82
80
|
task=SubmitDatasetMetadata,
|
|
83
|
-
upstreams=[DlnirspWriteL1Frame,
|
|
81
|
+
upstreams=[DlnirspWriteL1Frame, MakeDlnirspMovie],
|
|
84
82
|
)
|
|
85
83
|
l0_pipeline.add_node(
|
|
86
84
|
task=PublishCatalogAndQualityMessages, upstreams=[TransferL1Data, SubmitDatasetMetadata]
|
|
@@ -16,7 +16,6 @@ from dkist_processing_common.tasks import TrialTeardown
|
|
|
16
16
|
from dkist_processing_core import ResourceQueue
|
|
17
17
|
from dkist_processing_core import Workflow
|
|
18
18
|
|
|
19
|
-
from dkist_processing_dlnirsp.tasks import AssembleDlnirspMovie
|
|
20
19
|
from dkist_processing_dlnirsp.tasks import BadPixelCalibration
|
|
21
20
|
from dkist_processing_dlnirsp.tasks import DarkCalibration
|
|
22
21
|
from dkist_processing_dlnirsp.tasks import DlnirspAssembleQualityData
|
|
@@ -28,7 +27,7 @@ from dkist_processing_dlnirsp.tasks import IfuDriftCalibration
|
|
|
28
27
|
from dkist_processing_dlnirsp.tasks import InstrumentPolarizationCalibration
|
|
29
28
|
from dkist_processing_dlnirsp.tasks import LampCalibration
|
|
30
29
|
from dkist_processing_dlnirsp.tasks import LinearityCorrection
|
|
31
|
-
from dkist_processing_dlnirsp.tasks import
|
|
30
|
+
from dkist_processing_dlnirsp.tasks import MakeDlnirspMovie
|
|
32
31
|
from dkist_processing_dlnirsp.tasks import ParseL0DlnirspLinearizedData
|
|
33
32
|
from dkist_processing_dlnirsp.tasks import ParseL0DlnirspRampData
|
|
34
33
|
from dkist_processing_dlnirsp.tasks import ScienceCalibration
|
|
@@ -55,22 +54,23 @@ trial_pipeline.add_node(task=LampCalibration, upstreams=DarkCalibration)
|
|
|
55
54
|
trial_pipeline.add_node(task=BadPixelCalibration, upstreams=[LampCalibration, IfuDriftCalibration])
|
|
56
55
|
trial_pipeline.add_node(task=GeometricCalibration, upstreams=[IfuDriftCalibration, LampCalibration])
|
|
57
56
|
trial_pipeline.add_node(task=WavelengthCalibration, upstreams=GeometricCalibration)
|
|
58
|
-
trial_pipeline.add_node(task=SolarCalibration, upstreams=GeometricCalibration)
|
|
59
57
|
trial_pipeline.add_node(
|
|
60
58
|
task=InstrumentPolarizationCalibration,
|
|
61
59
|
resource_queue=ResourceQueue.HIGH_MEMORY,
|
|
62
60
|
upstreams=BadPixelCalibration,
|
|
63
61
|
)
|
|
64
62
|
trial_pipeline.add_node(
|
|
65
|
-
task=
|
|
63
|
+
task=SolarCalibration, upstreams=[GeometricCalibration, InstrumentPolarizationCalibration]
|
|
66
64
|
)
|
|
65
|
+
trial_pipeline.add_node(task=ScienceCalibration, upstreams=SolarCalibration)
|
|
67
66
|
trial_pipeline.add_node(
|
|
68
67
|
task=DlnirspWriteL1Frame, upstreams=[WavelengthCalibration, ScienceCalibration]
|
|
69
68
|
)
|
|
70
69
|
|
|
71
70
|
# Movie flow
|
|
72
|
-
trial_pipeline.add_node(
|
|
73
|
-
|
|
71
|
+
trial_pipeline.add_node(
|
|
72
|
+
task=MakeDlnirspMovie, upstreams=[ScienceCalibration, WavelengthCalibration]
|
|
73
|
+
)
|
|
74
74
|
|
|
75
75
|
# Quality flow
|
|
76
76
|
trial_pipeline.add_node(task=DlnirspL0QualityMetrics, upstreams=ParseL0DlnirspLinearizedData)
|
|
@@ -96,7 +96,7 @@ trial_pipeline.add_node(
|
|
|
96
96
|
trial_pipeline.add_node(
|
|
97
97
|
task=TransferTrialData,
|
|
98
98
|
upstreams=[
|
|
99
|
-
|
|
99
|
+
MakeDlnirspMovie,
|
|
100
100
|
CreateTrialDatasetInventory,
|
|
101
101
|
CreateTrialAsdf,
|
|
102
102
|
CreateTrialQualityReport,
|
{dkist_processing_dlnirsp-0.32.8.dist-info → dkist_processing_dlnirsp-0.33.0.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-dlnirsp
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.33.0
|
|
4
4
|
Summary: Science processing code for the DLNIRSP instrument on DKIST
|
|
5
5
|
Author-email: NSO / AURA <dkistdc@nso.edu>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -13,7 +13,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
14
|
Requires-Python: >=3.12
|
|
15
15
|
Description-Content-Type: text/x-rst
|
|
16
|
-
Requires-Dist: dkist-processing-common==11.9.
|
|
16
|
+
Requires-Dist: dkist-processing-common==11.9.2
|
|
17
17
|
Requires-Dist: dkist-processing-math==2.2.1
|
|
18
18
|
Requires-Dist: dkist-processing-pac==3.1.1
|
|
19
19
|
Requires-Dist: dkist-header-validator==5.2.1
|
|
@@ -26,7 +26,8 @@ Requires-Dist: numba==0.61.2
|
|
|
26
26
|
Requires-Dist: scipy==1.15.3
|
|
27
27
|
Requires-Dist: peakutils==1.3.5
|
|
28
28
|
Requires-Dist: sunpy==6.1.1
|
|
29
|
-
Requires-Dist:
|
|
29
|
+
Requires-Dist: reproject==0.19.0
|
|
30
|
+
Requires-Dist: imageio-ffmpeg==0.6.0
|
|
30
31
|
Requires-Dist: asdf==3.5.0
|
|
31
32
|
Requires-Dist: solar-wavelength-calibration==2.0.0
|
|
32
33
|
Provides-Extra: test
|
|
@@ -80,7 +81,9 @@ Requires-Dist: ImageIO==2.37.2; extra == "frozen"
|
|
|
80
81
|
Requires-Dist: Jinja2==3.1.6; extra == "frozen"
|
|
81
82
|
Requires-Dist: Mako==1.3.10; extra == "frozen"
|
|
82
83
|
Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
|
|
84
|
+
Requires-Dist: PIMS==0.7; extra == "frozen"
|
|
83
85
|
Requires-Dist: PeakUtils==1.3.5; extra == "frozen"
|
|
86
|
+
Requires-Dist: PyAVM==0.9.8; extra == "frozen"
|
|
84
87
|
Requires-Dist: PyJWT==2.10.1; extra == "frozen"
|
|
85
88
|
Requires-Dist: PyYAML==6.0.3; extra == "frozen"
|
|
86
89
|
Requires-Dist: Pygments==2.19.2; extra == "frozen"
|
|
@@ -91,22 +94,22 @@ Requires-Dist: WTForms==3.2.1; extra == "frozen"
|
|
|
91
94
|
Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
|
|
92
95
|
Requires-Dist: aioftp==0.27.2; extra == "frozen"
|
|
93
96
|
Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
|
|
94
|
-
Requires-Dist: aiohttp==3.13.
|
|
97
|
+
Requires-Dist: aiohttp==3.13.3; extra == "frozen"
|
|
95
98
|
Requires-Dist: aiosignal==1.4.0; extra == "frozen"
|
|
96
99
|
Requires-Dist: aiosmtplib==5.0.0; extra == "frozen"
|
|
97
100
|
Requires-Dist: alembic==1.17.2; extra == "frozen"
|
|
98
101
|
Requires-Dist: amqp==5.3.1; extra == "frozen"
|
|
99
102
|
Requires-Dist: annotated-types==0.7.0; extra == "frozen"
|
|
100
|
-
Requires-Dist: anyio==4.12.
|
|
103
|
+
Requires-Dist: anyio==4.12.1; extra == "frozen"
|
|
101
104
|
Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
|
|
102
|
-
Requires-Dist: apache-airflow-providers-celery==3.
|
|
103
|
-
Requires-Dist: apache-airflow-providers-common-compat==1.
|
|
105
|
+
Requires-Dist: apache-airflow-providers-celery==3.15.0; extra == "frozen"
|
|
106
|
+
Requires-Dist: apache-airflow-providers-common-compat==1.11.0; extra == "frozen"
|
|
104
107
|
Requires-Dist: apache-airflow-providers-common-io==1.7.0; extra == "frozen"
|
|
105
|
-
Requires-Dist: apache-airflow-providers-common-sql==1.30.
|
|
108
|
+
Requires-Dist: apache-airflow-providers-common-sql==1.30.2; extra == "frozen"
|
|
106
109
|
Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
|
|
107
110
|
Requires-Dist: apache-airflow-providers-ftp==3.14.0; extra == "frozen"
|
|
108
|
-
Requires-Dist: apache-airflow-providers-http==5.6.
|
|
109
|
-
Requires-Dist: apache-airflow-providers-imap==3.10.
|
|
111
|
+
Requires-Dist: apache-airflow-providers-http==5.6.2; extra == "frozen"
|
|
112
|
+
Requires-Dist: apache-airflow-providers-imap==3.10.2; extra == "frozen"
|
|
110
113
|
Requires-Dist: apache-airflow-providers-postgres==6.5.1; extra == "frozen"
|
|
111
114
|
Requires-Dist: apache-airflow-providers-smtp==2.4.1; extra == "frozen"
|
|
112
115
|
Requires-Dist: apache-airflow-providers-sqlite==4.2.0; extra == "frozen"
|
|
@@ -116,19 +119,20 @@ Requires-Dist: asdf==3.5.0; extra == "frozen"
|
|
|
116
119
|
Requires-Dist: asdf_standard==1.4.0; extra == "frozen"
|
|
117
120
|
Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
|
|
118
121
|
Requires-Dist: asgiref==3.11.0; extra == "frozen"
|
|
119
|
-
Requires-Dist: asteval==1.0.
|
|
122
|
+
Requires-Dist: asteval==1.0.8; extra == "frozen"
|
|
120
123
|
Requires-Dist: astropy==7.0.2; extra == "frozen"
|
|
121
|
-
Requires-Dist: astropy-iers-data==0.
|
|
124
|
+
Requires-Dist: astropy-iers-data==0.2026.1.5.0.43.43; extra == "frozen"
|
|
125
|
+
Requires-Dist: astropy_healpix==1.1.2; extra == "frozen"
|
|
122
126
|
Requires-Dist: asyncpg==0.31.0; extra == "frozen"
|
|
123
127
|
Requires-Dist: attrs==25.4.0; extra == "frozen"
|
|
124
128
|
Requires-Dist: babel==2.17.0; extra == "frozen"
|
|
125
129
|
Requires-Dist: billiard==4.2.4; extra == "frozen"
|
|
126
130
|
Requires-Dist: blinker==1.9.0; extra == "frozen"
|
|
127
|
-
Requires-Dist: boto3==1.42.
|
|
128
|
-
Requires-Dist: botocore==1.42.
|
|
131
|
+
Requires-Dist: boto3==1.42.23; extra == "frozen"
|
|
132
|
+
Requires-Dist: botocore==1.42.23; extra == "frozen"
|
|
129
133
|
Requires-Dist: cachelib==0.13.0; extra == "frozen"
|
|
130
|
-
Requires-Dist: celery==5.6.
|
|
131
|
-
Requires-Dist: certifi==
|
|
134
|
+
Requires-Dist: celery==5.6.2; extra == "frozen"
|
|
135
|
+
Requires-Dist: certifi==2026.1.4; extra == "frozen"
|
|
132
136
|
Requires-Dist: cffi==2.0.0; extra == "frozen"
|
|
133
137
|
Requires-Dist: charset-normalizer==3.4.4; extra == "frozen"
|
|
134
138
|
Requires-Dist: click==8.3.1; extra == "frozen"
|
|
@@ -136,6 +140,7 @@ Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
|
|
|
136
140
|
Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
|
|
137
141
|
Requires-Dist: click-repl==0.3.0; extra == "frozen"
|
|
138
142
|
Requires-Dist: clickclick==20.10.2; extra == "frozen"
|
|
143
|
+
Requires-Dist: cloudpickle==3.1.2; extra == "frozen"
|
|
139
144
|
Requires-Dist: colorama==0.4.6; extra == "frozen"
|
|
140
145
|
Requires-Dist: colorlog==6.10.1; extra == "frozen"
|
|
141
146
|
Requires-Dist: connexion==2.14.2; extra == "frozen"
|
|
@@ -145,56 +150,61 @@ Requires-Dist: croniter==6.0.0; extra == "frozen"
|
|
|
145
150
|
Requires-Dist: cryptography==46.0.3; extra == "frozen"
|
|
146
151
|
Requires-Dist: cycler==0.12.1; extra == "frozen"
|
|
147
152
|
Requires-Dist: dacite==1.9.2; extra == "frozen"
|
|
153
|
+
Requires-Dist: dask==2025.12.0; extra == "frozen"
|
|
154
|
+
Requires-Dist: dask-image==2025.11.0; extra == "frozen"
|
|
148
155
|
Requires-Dist: decorator==5.2.1; extra == "frozen"
|
|
149
156
|
Requires-Dist: dill==0.4.0; extra == "frozen"
|
|
150
157
|
Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
|
|
151
|
-
Requires-Dist: dkist-processing-common==11.9.
|
|
158
|
+
Requires-Dist: dkist-processing-common==11.9.2; extra == "frozen"
|
|
152
159
|
Requires-Dist: dkist-processing-core==6.0.1; extra == "frozen"
|
|
153
|
-
Requires-Dist: dkist-processing-dlnirsp==0.
|
|
160
|
+
Requires-Dist: dkist-processing-dlnirsp==0.33.0; extra == "frozen"
|
|
154
161
|
Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
|
|
155
162
|
Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
|
|
156
163
|
Requires-Dist: dkist-service-configuration==4.1.13; extra == "frozen"
|
|
157
164
|
Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
|
|
158
165
|
Requires-Dist: dkist_fits_specifications==4.19.0; extra == "frozen"
|
|
159
166
|
Requires-Dist: dnspython==2.8.0; extra == "frozen"
|
|
167
|
+
Requires-Dist: donfig==0.8.1.post1; extra == "frozen"
|
|
160
168
|
Requires-Dist: email-validator==2.3.0; extra == "frozen"
|
|
161
|
-
Requires-Dist: exceptiongroup==1.3.1; extra == "frozen"
|
|
162
169
|
Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
|
|
163
170
|
Requires-Dist: flower==2.0.1; extra == "frozen"
|
|
164
171
|
Requires-Dist: fonttools==4.61.1; extra == "frozen"
|
|
165
172
|
Requires-Dist: frozenlist==1.8.0; extra == "frozen"
|
|
166
173
|
Requires-Dist: fsspec==2025.12.0; extra == "frozen"
|
|
167
|
-
Requires-Dist: globus-sdk==4.
|
|
174
|
+
Requires-Dist: globus-sdk==4.3.0; extra == "frozen"
|
|
175
|
+
Requires-Dist: google-crc32c==1.8.0; extra == "frozen"
|
|
168
176
|
Requires-Dist: google-re2==1.1.20251105; extra == "frozen"
|
|
169
177
|
Requires-Dist: googleapis-common-protos==1.72.0; extra == "frozen"
|
|
170
178
|
Requires-Dist: gqlclient==1.2.3; extra == "frozen"
|
|
179
|
+
Requires-Dist: greenlet==3.3.0; extra == "frozen"
|
|
171
180
|
Requires-Dist: grpcio==1.76.0; extra == "frozen"
|
|
172
181
|
Requires-Dist: gunicorn==23.0.0; extra == "frozen"
|
|
173
182
|
Requires-Dist: h11==0.16.0; extra == "frozen"
|
|
174
183
|
Requires-Dist: httpcore==1.0.9; extra == "frozen"
|
|
175
184
|
Requires-Dist: httpx==0.28.1; extra == "frozen"
|
|
176
|
-
Requires-Dist: humanize==4.
|
|
185
|
+
Requires-Dist: humanize==4.15.0; extra == "frozen"
|
|
177
186
|
Requires-Dist: idna==3.11; extra == "frozen"
|
|
178
187
|
Requires-Dist: imageio-ffmpeg==0.6.0; extra == "frozen"
|
|
179
|
-
Requires-Dist: importlib_metadata==8.7.
|
|
188
|
+
Requires-Dist: importlib_metadata==8.7.1; extra == "frozen"
|
|
180
189
|
Requires-Dist: inflection==0.5.1; extra == "frozen"
|
|
181
190
|
Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
|
|
182
191
|
Requires-Dist: jmespath==1.0.1; extra == "frozen"
|
|
183
|
-
Requires-Dist: jsonschema==4.
|
|
192
|
+
Requires-Dist: jsonschema==4.26.0; extra == "frozen"
|
|
184
193
|
Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
|
|
185
194
|
Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
|
|
186
195
|
Requires-Dist: kiwisolver==1.4.9; extra == "frozen"
|
|
187
|
-
Requires-Dist: kombu==5.6.
|
|
196
|
+
Requires-Dist: kombu==5.6.2; extra == "frozen"
|
|
188
197
|
Requires-Dist: lazy-object-proxy==1.12.0; extra == "frozen"
|
|
189
198
|
Requires-Dist: lazy_loader==0.4; extra == "frozen"
|
|
190
199
|
Requires-Dist: limits==5.6.0; extra == "frozen"
|
|
191
200
|
Requires-Dist: linkify-it-py==2.0.3; extra == "frozen"
|
|
192
201
|
Requires-Dist: llvmlite==0.44.0; extra == "frozen"
|
|
193
202
|
Requires-Dist: lmfit==1.3.4; extra == "frozen"
|
|
203
|
+
Requires-Dist: locket==1.0.0; extra == "frozen"
|
|
194
204
|
Requires-Dist: lockfile==0.12.2; extra == "frozen"
|
|
195
205
|
Requires-Dist: loguru==0.7.3; extra == "frozen"
|
|
196
206
|
Requires-Dist: markdown-it-py==4.0.0; extra == "frozen"
|
|
197
|
-
Requires-Dist: marshmallow==3.26.
|
|
207
|
+
Requires-Dist: marshmallow==3.26.2; extra == "frozen"
|
|
198
208
|
Requires-Dist: marshmallow-oneofschema==3.2.0; extra == "frozen"
|
|
199
209
|
Requires-Dist: marshmallow-sqlalchemy==0.28.2; extra == "frozen"
|
|
200
210
|
Requires-Dist: matplotlib==3.10.8; extra == "frozen"
|
|
@@ -202,11 +212,12 @@ Requires-Dist: mdit-py-plugins==0.5.0; extra == "frozen"
|
|
|
202
212
|
Requires-Dist: mdurl==0.1.2; extra == "frozen"
|
|
203
213
|
Requires-Dist: methodtools==0.4.7; extra == "frozen"
|
|
204
214
|
Requires-Dist: more-itertools==10.8.0; extra == "frozen"
|
|
205
|
-
Requires-Dist: moviepy==2.1
|
|
215
|
+
Requires-Dist: moviepy==2.2.1; extra == "frozen"
|
|
206
216
|
Requires-Dist: multidict==6.7.0; extra == "frozen"
|
|
207
217
|
Requires-Dist: nbformat==5.10.4; extra == "frozen"
|
|
208
218
|
Requires-Dist: networkx==3.6.1; extra == "frozen"
|
|
209
219
|
Requires-Dist: numba==0.61.2; extra == "frozen"
|
|
220
|
+
Requires-Dist: numcodecs==0.16.5; extra == "frozen"
|
|
210
221
|
Requires-Dist: numpy==2.2.5; extra == "frozen"
|
|
211
222
|
Requires-Dist: object-clerk==1.0.0; extra == "frozen"
|
|
212
223
|
Requires-Dist: opentelemetry-api==1.39.1; extra == "frozen"
|
|
@@ -237,11 +248,12 @@ Requires-Dist: ordered-set==4.1.0; extra == "frozen"
|
|
|
237
248
|
Requires-Dist: packaging==25.0; extra == "frozen"
|
|
238
249
|
Requires-Dist: pandas==2.3.3; extra == "frozen"
|
|
239
250
|
Requires-Dist: parfive==2.2.0; extra == "frozen"
|
|
251
|
+
Requires-Dist: partd==1.4.2; extra == "frozen"
|
|
240
252
|
Requires-Dist: pathlib_abc==0.5.2; extra == "frozen"
|
|
241
|
-
Requires-Dist: pathspec==0.
|
|
253
|
+
Requires-Dist: pathspec==1.0.1; extra == "frozen"
|
|
242
254
|
Requires-Dist: pendulum==3.1.0; extra == "frozen"
|
|
243
255
|
Requires-Dist: pika==1.3.2; extra == "frozen"
|
|
244
|
-
Requires-Dist: pillow==
|
|
256
|
+
Requires-Dist: pillow==11.3.0; extra == "frozen"
|
|
245
257
|
Requires-Dist: pip==25.3; extra == "frozen"
|
|
246
258
|
Requires-Dist: platformdirs==4.5.1; extra == "frozen"
|
|
247
259
|
Requires-Dist: pluggy==1.6.0; extra == "frozen"
|
|
@@ -252,14 +264,15 @@ Requires-Dist: prometheus_client==0.23.1; extra == "frozen"
|
|
|
252
264
|
Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
|
|
253
265
|
Requires-Dist: propcache==0.4.1; extra == "frozen"
|
|
254
266
|
Requires-Dist: protobuf==6.33.2; extra == "frozen"
|
|
255
|
-
Requires-Dist: psutil==7.1
|
|
267
|
+
Requires-Dist: psutil==7.2.1; extra == "frozen"
|
|
256
268
|
Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
|
|
269
|
+
Requires-Dist: pyarrow==22.0.0; extra == "frozen"
|
|
257
270
|
Requires-Dist: pycparser==2.23; extra == "frozen"
|
|
258
271
|
Requires-Dist: pydantic==2.12.5; extra == "frozen"
|
|
259
272
|
Requires-Dist: pydantic-settings==2.12.0; extra == "frozen"
|
|
260
273
|
Requires-Dist: pydantic_core==2.41.5; extra == "frozen"
|
|
261
274
|
Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
|
|
262
|
-
Requires-Dist: pyparsing==3.
|
|
275
|
+
Requires-Dist: pyparsing==3.3.1; extra == "frozen"
|
|
263
276
|
Requires-Dist: python-daemon==3.1.2; extra == "frozen"
|
|
264
277
|
Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
|
|
265
278
|
Requires-Dist: python-dotenv==1.2.1; extra == "frozen"
|
|
@@ -268,6 +281,7 @@ Requires-Dist: python-slugify==8.0.4; extra == "frozen"
|
|
|
268
281
|
Requires-Dist: pytz==2025.2; extra == "frozen"
|
|
269
282
|
Requires-Dist: redis==6.4.0; extra == "frozen"
|
|
270
283
|
Requires-Dist: referencing==0.37.0; extra == "frozen"
|
|
284
|
+
Requires-Dist: reproject==0.19.0; extra == "frozen"
|
|
271
285
|
Requires-Dist: requests==2.32.5; extra == "frozen"
|
|
272
286
|
Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
|
|
273
287
|
Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
|
|
@@ -275,21 +289,23 @@ Requires-Dist: rich==13.9.4; extra == "frozen"
|
|
|
275
289
|
Requires-Dist: rich-argparse==1.7.2; extra == "frozen"
|
|
276
290
|
Requires-Dist: rpds-py==0.30.0; extra == "frozen"
|
|
277
291
|
Requires-Dist: s3transfer==0.16.0; extra == "frozen"
|
|
278
|
-
Requires-Dist: scikit-image==0.
|
|
292
|
+
Requires-Dist: scikit-image==0.26.0; extra == "frozen"
|
|
279
293
|
Requires-Dist: scipy==1.15.3; extra == "frozen"
|
|
280
294
|
Requires-Dist: semantic-version==2.10.0; extra == "frozen"
|
|
281
295
|
Requires-Dist: setproctitle==1.3.7; extra == "frozen"
|
|
282
296
|
Requires-Dist: six==1.17.0; extra == "frozen"
|
|
297
|
+
Requires-Dist: slicerator==1.1.0; extra == "frozen"
|
|
283
298
|
Requires-Dist: solar-wavelength-calibration==2.0.0; extra == "frozen"
|
|
284
299
|
Requires-Dist: sqids==0.5.1; extra == "frozen"
|
|
285
|
-
Requires-Dist: sqlparse==0.5.
|
|
300
|
+
Requires-Dist: sqlparse==0.5.5; extra == "frozen"
|
|
286
301
|
Requires-Dist: sunpy==6.1.1; extra == "frozen"
|
|
287
302
|
Requires-Dist: tabulate==0.9.0; extra == "frozen"
|
|
288
303
|
Requires-Dist: talus==1.3.4; extra == "frozen"
|
|
289
304
|
Requires-Dist: tenacity==8.5.0; extra == "frozen"
|
|
290
|
-
Requires-Dist: termcolor==3.
|
|
305
|
+
Requires-Dist: termcolor==3.3.0; extra == "frozen"
|
|
291
306
|
Requires-Dist: text-unidecode==1.3; extra == "frozen"
|
|
292
|
-
Requires-Dist: tifffile==2025.12.
|
|
307
|
+
Requires-Dist: tifffile==2025.12.20; extra == "frozen"
|
|
308
|
+
Requires-Dist: toolz==1.1.0; extra == "frozen"
|
|
293
309
|
Requires-Dist: tornado==6.5.4; extra == "frozen"
|
|
294
310
|
Requires-Dist: tqdm==4.67.1; extra == "frozen"
|
|
295
311
|
Requires-Dist: traitlets==5.14.3; extra == "frozen"
|
|
@@ -302,12 +318,13 @@ Requires-Dist: uncertainties==3.2.3; extra == "frozen"
|
|
|
302
318
|
Requires-Dist: universal_pathlib==0.3.7; extra == "frozen"
|
|
303
319
|
Requires-Dist: urllib3==2.6.2; extra == "frozen"
|
|
304
320
|
Requires-Dist: vine==5.1.0; extra == "frozen"
|
|
305
|
-
Requires-Dist: voluptuous==0.
|
|
321
|
+
Requires-Dist: voluptuous==0.16.0; extra == "frozen"
|
|
306
322
|
Requires-Dist: wcwidth==0.2.14; extra == "frozen"
|
|
307
323
|
Requires-Dist: wirerope==1.0.0; extra == "frozen"
|
|
308
324
|
Requires-Dist: wrapt==1.17.3; extra == "frozen"
|
|
309
325
|
Requires-Dist: yamale==6.1.0; extra == "frozen"
|
|
310
326
|
Requires-Dist: yarl==1.22.0; extra == "frozen"
|
|
327
|
+
Requires-Dist: zarr==3.1.5; extra == "frozen"
|
|
311
328
|
Requires-Dist: zipp==3.23.0; extra == "frozen"
|
|
312
329
|
|
|
313
330
|
dkist-processing-dlnirsp
|