dkist-processing-cryonirsp 1.7.6__py3-none-any.whl → 1.7.7__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.
Potentially problematic release.
This version of dkist-processing-cryonirsp might be problematic. Click here for more details.
- dkist_processing_cryonirsp/models/parameters.py +6 -6
- dkist_processing_cryonirsp/tasks/cryonirsp_base.py +1 -3
- dkist_processing_cryonirsp/tasks/parse.py +2 -3
- dkist_processing_cryonirsp/tasks/sp_dispersion_axis_correction.py +1 -2
- dkist_processing_cryonirsp/tasks/write_l1.py +2 -3
- dkist_processing_cryonirsp/tests/conftest.py +69 -39
- dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +44 -14
- dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +1 -1
- dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +1 -1
- dkist_processing_cryonirsp/tests/test_ci_science.py +1 -1
- dkist_processing_cryonirsp/tests/test_corrections.py +2 -3
- dkist_processing_cryonirsp/tests/test_cryo_base.py +1 -1
- dkist_processing_cryonirsp/tests/test_dark.py +2 -2
- dkist_processing_cryonirsp/tests/test_gain.py +2 -2
- dkist_processing_cryonirsp/tests/test_instrument_polarization.py +10 -4
- dkist_processing_cryonirsp/tests/test_linearity_correction.py +1 -1
- dkist_processing_cryonirsp/tests/test_parameters.py +16 -24
- dkist_processing_cryonirsp/tests/test_parse.py +1 -1
- dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +1 -1
- dkist_processing_cryonirsp/tests/test_sp_dispersion_axis_correction.py +1 -1
- dkist_processing_cryonirsp/tests/test_sp_geometric.py +2 -2
- dkist_processing_cryonirsp/tests/test_sp_science.py +1 -1
- dkist_processing_cryonirsp/tests/test_sp_solar.py +1 -1
- {dkist_processing_cryonirsp-1.7.6.dist-info → dkist_processing_cryonirsp-1.7.7.dist-info}/METADATA +15 -14
- {dkist_processing_cryonirsp-1.7.6.dist-info → dkist_processing_cryonirsp-1.7.7.dist-info}/RECORD +27 -27
- {dkist_processing_cryonirsp-1.7.6.dist-info → dkist_processing_cryonirsp-1.7.7.dist-info}/WHEEL +0 -0
- {dkist_processing_cryonirsp-1.7.6.dist-info → dkist_processing_cryonirsp-1.7.7.dist-info}/top_level.txt +0 -0
|
@@ -136,8 +136,8 @@ class CryonirspParameters(ParameterBase, ParameterWavelengthMixin, ParameterArmI
|
|
|
136
136
|
@cached_property
|
|
137
137
|
def linearization_thresholds(self) -> np.ndarray:
|
|
138
138
|
"""Name of parameter associated with the linearization thresholds."""
|
|
139
|
-
|
|
140
|
-
value = self._load_param_value_from_numpy_save(
|
|
139
|
+
param_obj = self._find_parameter_for_arm("cryonirsp_linearization_thresholds")
|
|
140
|
+
value = self._load_param_value_from_numpy_save(param_obj=param_obj)
|
|
141
141
|
# float64 data can blow up the memory required for linearization - convert to float32
|
|
142
142
|
if np.issubdtype(value.dtype, np.float64):
|
|
143
143
|
value = value.astype(np.float32, casting="same_kind")
|
|
@@ -275,8 +275,8 @@ class CryonirspParameters(ParameterBase, ParameterWavelengthMixin, ParameterArmI
|
|
|
275
275
|
- wavelength in nanometers
|
|
276
276
|
- transmission at given wavelength
|
|
277
277
|
"""
|
|
278
|
-
|
|
279
|
-
return self._load_param_value_from_numpy_save(
|
|
278
|
+
param_obj = self._find_most_recent_past_value("cryonirsp_solar_atlas")
|
|
279
|
+
return self._load_param_value_from_numpy_save(param_obj=param_obj)
|
|
280
280
|
|
|
281
281
|
@cached_property
|
|
282
282
|
def telluric_atlas(self) -> np.ndarray:
|
|
@@ -286,5 +286,5 @@ class CryonirspParameters(ParameterBase, ParameterWavelengthMixin, ParameterArmI
|
|
|
286
286
|
- wavelength in nanometers
|
|
287
287
|
- transmission at given wavelength
|
|
288
288
|
"""
|
|
289
|
-
|
|
290
|
-
return self._load_param_value_from_numpy_save(
|
|
289
|
+
param_obj = self._find_most_recent_past_value("cryonirsp_telluric_atlas")
|
|
290
|
+
return self._load_param_value_from_numpy_save(param_obj=param_obj)
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
from abc import ABC
|
|
3
3
|
|
|
4
4
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
5
|
-
from dkist_processing_common.tasks.mixin.input_dataset import InputDatasetMixin
|
|
6
5
|
from dkist_processing_common.tasks.mixin.quality import QualityMixin
|
|
7
6
|
|
|
8
7
|
from dkist_processing_cryonirsp.models.constants import CryonirspConstants
|
|
@@ -12,7 +11,6 @@ from dkist_processing_cryonirsp.tasks.mixin.corrections import CorrectionsMixin
|
|
|
12
11
|
|
|
13
12
|
class CryonirspTaskBase(
|
|
14
13
|
WorkflowTaskBase,
|
|
15
|
-
InputDatasetMixin,
|
|
16
14
|
CorrectionsMixin,
|
|
17
15
|
QualityMixin,
|
|
18
16
|
ABC,
|
|
@@ -50,7 +48,7 @@ class CryonirspTaskBase(
|
|
|
50
48
|
workflow_version=workflow_version,
|
|
51
49
|
)
|
|
52
50
|
self.parameters = CryonirspParameters(
|
|
53
|
-
self.
|
|
51
|
+
scratch=self.scratch,
|
|
54
52
|
obs_ip_start_time=self.constants.obs_ip_start_time,
|
|
55
53
|
wavelength=self.constants.wavelength,
|
|
56
54
|
arm_id=self.constants.arm_id,
|
|
@@ -20,7 +20,6 @@ from dkist_processing_common.parsers.unique_bud import UniqueBud
|
|
|
20
20
|
from dkist_processing_common.tasks import default_constant_bud_factory
|
|
21
21
|
from dkist_processing_common.tasks import default_tag_flower_factory
|
|
22
22
|
from dkist_processing_common.tasks import ParseDataBase
|
|
23
|
-
from dkist_processing_common.tasks.mixin.input_dataset import InputDatasetMixin
|
|
24
23
|
|
|
25
24
|
from dkist_processing_cryonirsp.models.constants import CryonirspBudName
|
|
26
25
|
from dkist_processing_cryonirsp.models.parameters import CryonirspParsingParameters
|
|
@@ -142,7 +141,7 @@ class ParseL0CryonirspRampData(ParseDataBase):
|
|
|
142
141
|
return [Tag.input(), Tag.frame()]
|
|
143
142
|
|
|
144
143
|
|
|
145
|
-
class ParseL0CryonirspLinearizedData(ParseDataBase
|
|
144
|
+
class ParseL0CryonirspLinearizedData(ParseDataBase):
|
|
146
145
|
"""
|
|
147
146
|
Parse linearity corrected CryoNIRSP input data to add common and Cryonirsp specific constants.
|
|
148
147
|
|
|
@@ -168,7 +167,7 @@ class ParseL0CryonirspLinearizedData(ParseDataBase, InputDatasetMixin):
|
|
|
168
167
|
workflow_name=workflow_name,
|
|
169
168
|
workflow_version=workflow_version,
|
|
170
169
|
)
|
|
171
|
-
self.parameters = CryonirspParsingParameters(self.
|
|
170
|
+
self.parameters = CryonirspParsingParameters(scratch=self.scratch)
|
|
172
171
|
|
|
173
172
|
@property
|
|
174
173
|
def fits_parsing_class(self):
|
|
@@ -10,7 +10,6 @@ from astropy.io import fits
|
|
|
10
10
|
from astropy.time import Time
|
|
11
11
|
from astropy.wcs import WCS
|
|
12
12
|
from dkist_processing_common.codecs.asdf import asdf_encoder
|
|
13
|
-
from dkist_processing_common.tasks.mixin.input_dataset import InputDatasetMixin
|
|
14
13
|
from dkist_service_configuration.logging import logger
|
|
15
14
|
from scipy.ndimage import gaussian_filter1d
|
|
16
15
|
from scipy.optimize import differential_evolution
|
|
@@ -26,7 +25,7 @@ from dkist_processing_cryonirsp.tasks.cryonirsp_base import CryonirspTaskBase
|
|
|
26
25
|
__all__ = ["SPDispersionAxisCorrection"]
|
|
27
26
|
|
|
28
27
|
|
|
29
|
-
class SPDispersionAxisCorrection(CryonirspTaskBase
|
|
28
|
+
class SPDispersionAxisCorrection(CryonirspTaskBase):
|
|
30
29
|
"""Task class for correcting the dispersion axis wavelength values.
|
|
31
30
|
|
|
32
31
|
Parameters
|
|
@@ -14,7 +14,6 @@ from astropy.time.core import Time
|
|
|
14
14
|
from dkist_processing_common.codecs.asdf import asdf_decoder
|
|
15
15
|
from dkist_processing_common.models.wavelength import WavelengthRange
|
|
16
16
|
from dkist_processing_common.tasks import WriteL1Frame
|
|
17
|
-
from dkist_processing_common.tasks.mixin.input_dataset import InputDatasetMixin
|
|
18
17
|
from sunpy.coordinates import GeocentricEarthEquatorial
|
|
19
18
|
from sunpy.coordinates import Helioprojective
|
|
20
19
|
|
|
@@ -25,7 +24,7 @@ from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
|
25
24
|
__all__ = ["CIWriteL1Frame", "SPWriteL1Frame"]
|
|
26
25
|
|
|
27
26
|
|
|
28
|
-
class CryonirspWriteL1Frame(WriteL1Frame, ABC
|
|
27
|
+
class CryonirspWriteL1Frame(WriteL1Frame, ABC):
|
|
29
28
|
"""
|
|
30
29
|
Task class for writing out calibrated l1 CryoNIRSP frames.
|
|
31
30
|
|
|
@@ -51,7 +50,7 @@ class CryonirspWriteL1Frame(WriteL1Frame, ABC, InputDatasetMixin):
|
|
|
51
50
|
workflow_version=workflow_version,
|
|
52
51
|
)
|
|
53
52
|
self.parameters = CryonirspParameters(
|
|
54
|
-
self.
|
|
53
|
+
scratch=self.scratch,
|
|
55
54
|
obs_ip_start_time=self.constants.obs_ip_start_time,
|
|
56
55
|
wavelength=self.constants.wavelength,
|
|
57
56
|
arm_id=self.constants.arm_id,
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import json
|
|
2
|
-
import os
|
|
3
2
|
from collections.abc import Iterable
|
|
4
3
|
from dataclasses import asdict
|
|
5
4
|
from dataclasses import dataclass
|
|
6
5
|
from dataclasses import field
|
|
7
6
|
from dataclasses import is_dataclass
|
|
8
|
-
from pathlib import Path
|
|
9
7
|
from random import randint
|
|
10
8
|
from typing import Any
|
|
11
9
|
from typing import Callable
|
|
@@ -21,8 +19,15 @@ from dkist_data_simulator.spec122 import Spec122Dataset
|
|
|
21
19
|
from dkist_header_validator import spec122_validator
|
|
22
20
|
from dkist_header_validator.translator import sanitize_to_spec214_level1
|
|
23
21
|
from dkist_header_validator.translator import translate_spec122_to_spec214_l0
|
|
22
|
+
from dkist_processing_common.codecs.array import array_encoder
|
|
23
|
+
from dkist_processing_common.codecs.basemodel import basemodel_encoder
|
|
24
24
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
25
|
+
from dkist_processing_common.models.input_dataset import InputDatasetFilePointer
|
|
26
|
+
from dkist_processing_common.models.input_dataset import InputDatasetObject
|
|
27
|
+
from dkist_processing_common.models.input_dataset import InputDatasetPartDocumentList
|
|
25
28
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
29
|
+
from pydantic import Field
|
|
30
|
+
from pydantic import model_validator
|
|
26
31
|
|
|
27
32
|
from dkist_processing_cryonirsp.models.constants import CryonirspConstants
|
|
28
33
|
from dkist_processing_cryonirsp.models.exposure_conditions import AllowableOpticalDensityFilterNames
|
|
@@ -250,58 +255,70 @@ class WavelengthParameter:
|
|
|
250
255
|
return hash((self.values, self.wavelength))
|
|
251
256
|
|
|
252
257
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
258
|
+
class FileObject(InputDatasetObject):
|
|
259
|
+
"""For files on disk, with attributes overridden to have defaults."""
|
|
260
|
+
|
|
261
|
+
bucket: str | None = None
|
|
262
|
+
object_key: str | None = None
|
|
263
|
+
|
|
264
|
+
def __hash__(self):
|
|
265
|
+
return hash((self.bucket, self.object_key, self.tag))
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
class FileParameter(InputDatasetFilePointer):
|
|
269
|
+
"""For parameters that are files, with additional attributes to make FileObjects."""
|
|
270
|
+
|
|
271
|
+
object_key: str | None = Field(
|
|
272
|
+
default="dummy_default_value", exclude=True
|
|
273
|
+
) # Not necessary, but useful for GROGU
|
|
274
|
+
file_pointer: FileObject = Field(default_factory=lambda: FileObject(), alias="__file__")
|
|
275
|
+
|
|
276
|
+
@model_validator(mode="after")
|
|
277
|
+
def _populate_file_object(self):
|
|
278
|
+
self.file_pointer = FileObject(
|
|
279
|
+
bucket="not_used_because_we_dont_transfer",
|
|
280
|
+
object_key=self.object_key,
|
|
281
|
+
tag=CryonirspTag.parameter((self.object_key)),
|
|
282
|
+
)
|
|
283
|
+
return self
|
|
268
284
|
|
|
269
285
|
|
|
270
286
|
# These constants are used to prevent name errors in _create_parameter_files
|
|
271
|
-
# and in CryonirspTestingParameters
|
|
287
|
+
# and in CryonirspTestingParameters.
|
|
272
288
|
LINEARIZATION_THRESHOLDS_CI = "cryonirsp_linearization_thresholds_ci.npy"
|
|
273
289
|
LINEARIZATION_THRESHOLDS_SP = "cryonirsp_linearization_thresholds_sp.npy"
|
|
274
290
|
SOLAR_ATLAS = "cryonirsp_solar_atlas.npy"
|
|
275
291
|
TELLURIC_ATLAS = "cryonirsp_telluric_atlas.npy"
|
|
276
292
|
|
|
277
293
|
|
|
278
|
-
def _create_parameter_files(
|
|
294
|
+
def _create_parameter_files(task: WorkflowTaskBase) -> None:
|
|
279
295
|
# linearization thresholds
|
|
280
296
|
thresh = np.ones((10, 10), dtype=np.float64) * 100.0
|
|
281
|
-
|
|
282
|
-
|
|
297
|
+
task.write(
|
|
298
|
+
data=thresh, tags=CryonirspTag.parameter(LINEARIZATION_THRESHOLDS_CI), encoder=array_encoder
|
|
299
|
+
)
|
|
300
|
+
task.write(
|
|
301
|
+
data=thresh, tags=CryonirspTag.parameter(LINEARIZATION_THRESHOLDS_SP), encoder=array_encoder
|
|
302
|
+
)
|
|
283
303
|
|
|
284
304
|
# solar and telluric atlases
|
|
285
305
|
atlas_wavelengths = range(300, 16600)
|
|
286
306
|
atlas_transmission = np.random.rand(16300)
|
|
287
307
|
atlas = [atlas_wavelengths, atlas_transmission]
|
|
288
|
-
|
|
289
|
-
|
|
308
|
+
task.write(data=atlas, tags=CryonirspTag.parameter(SOLAR_ATLAS), encoder=array_encoder)
|
|
309
|
+
task.write(data=atlas, tags=CryonirspTag.parameter(TELLURIC_ATLAS), encoder=array_encoder)
|
|
290
310
|
|
|
291
311
|
|
|
292
312
|
TestingParameters = TypeVar("TestingParameters", bound="CryonirspTestingParameters")
|
|
293
313
|
|
|
294
314
|
|
|
295
315
|
def cryonirsp_testing_parameters_factory(
|
|
296
|
-
|
|
316
|
+
task: WorkflowTaskBase, create_files: bool = True
|
|
297
317
|
) -> TestingParameters:
|
|
298
318
|
"""Create the InputDatasetParameterValue objects and write the parameter files."""
|
|
299
|
-
if isinstance(param_path, str):
|
|
300
|
-
param_path = Path(param_path)
|
|
301
|
-
absolute_path = param_path.absolute()
|
|
302
319
|
|
|
303
320
|
if create_files:
|
|
304
|
-
_create_parameter_files(
|
|
321
|
+
_create_parameter_files(task=task)
|
|
305
322
|
|
|
306
323
|
@dataclass
|
|
307
324
|
class CryonirspTestingParameters:
|
|
@@ -339,7 +356,7 @@ def cryonirsp_testing_parameters_factory(
|
|
|
339
356
|
cryonirsp_fringe_correction_lowpass_cutoff_period: float = 40.0
|
|
340
357
|
cryonirsp_linearization_thresholds_ci: FileParameter = field(
|
|
341
358
|
default_factory=lambda: FileParameter(
|
|
342
|
-
|
|
359
|
+
object_key=LINEARIZATION_THRESHOLDS_CI,
|
|
343
360
|
)
|
|
344
361
|
)
|
|
345
362
|
cryonirsp_linearization_polyfit_coeffs_ci: list[float] = field(
|
|
@@ -347,7 +364,7 @@ def cryonirsp_testing_parameters_factory(
|
|
|
347
364
|
)
|
|
348
365
|
cryonirsp_linearization_thresholds_sp: FileParameter = field(
|
|
349
366
|
default_factory=lambda: FileParameter(
|
|
350
|
-
|
|
367
|
+
object_key=LINEARIZATION_THRESHOLDS_SP,
|
|
351
368
|
)
|
|
352
369
|
)
|
|
353
370
|
cryonirsp_linearization_polyfit_coeffs_sp: list[float] = field(
|
|
@@ -364,10 +381,14 @@ def cryonirsp_testing_parameters_factory(
|
|
|
364
381
|
WavelengthParameter(values=(-4.26, -4.26, -4.26, -4.26))
|
|
365
382
|
)
|
|
366
383
|
cryonirsp_solar_atlas: FileParameter = field(
|
|
367
|
-
default_factory=lambda: FileParameter(
|
|
384
|
+
default_factory=lambda: FileParameter(
|
|
385
|
+
object_key=SOLAR_ATLAS,
|
|
386
|
+
)
|
|
368
387
|
)
|
|
369
388
|
cryonirsp_telluric_atlas: FileParameter = field(
|
|
370
|
-
default_factory=lambda: FileParameter(
|
|
389
|
+
default_factory=lambda: FileParameter(
|
|
390
|
+
object_key=TELLURIC_ATLAS,
|
|
391
|
+
)
|
|
371
392
|
)
|
|
372
393
|
cryonirsp_camera_mirror_focal_length_mm: float = 932.0
|
|
373
394
|
cryonirsp_pixel_pitch_micron: float = 18.0
|
|
@@ -387,11 +408,15 @@ def testing_obs_ip_start_time() -> str:
|
|
|
387
408
|
|
|
388
409
|
@pytest.fixture(scope="session")
|
|
389
410
|
def input_dataset_document_simple_parameters_part():
|
|
390
|
-
|
|
411
|
+
"""Convert a dataclass of parameterValues into an actual input dataset parameters part."""
|
|
412
|
+
|
|
413
|
+
def make_input_dataset_parameters_part(parameters):
|
|
391
414
|
parameters_list = []
|
|
392
415
|
|
|
393
416
|
value_id = randint(1000, 2000)
|
|
394
417
|
for pn, pv in asdict(parameters).items():
|
|
418
|
+
if isinstance(pv, FileParameter):
|
|
419
|
+
pv = pv.model_dump()
|
|
395
420
|
values = [
|
|
396
421
|
{
|
|
397
422
|
"parameterValueId": value_id,
|
|
@@ -403,7 +428,7 @@ def input_dataset_document_simple_parameters_part():
|
|
|
403
428
|
parameters_list.append(parameter)
|
|
404
429
|
return parameters_list
|
|
405
430
|
|
|
406
|
-
return
|
|
431
|
+
return make_input_dataset_parameters_part
|
|
407
432
|
|
|
408
433
|
|
|
409
434
|
@pytest.fixture(scope="session")
|
|
@@ -412,6 +437,8 @@ def assign_input_dataset_doc_to_task(
|
|
|
412
437
|
testing_wavelength,
|
|
413
438
|
testing_obs_ip_start_time,
|
|
414
439
|
):
|
|
440
|
+
"""Load the parameters the way that tasks load the parameters in task init."""
|
|
441
|
+
|
|
415
442
|
def update_task(
|
|
416
443
|
task,
|
|
417
444
|
parameters,
|
|
@@ -419,12 +446,15 @@ def assign_input_dataset_doc_to_task(
|
|
|
419
446
|
arm_id: str = "SP",
|
|
420
447
|
obs_ip_start_time=testing_obs_ip_start_time,
|
|
421
448
|
):
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
449
|
+
task.write(
|
|
450
|
+
data=InputDatasetPartDocumentList(
|
|
451
|
+
doc_list=input_dataset_document_simple_parameters_part(parameters)
|
|
452
|
+
),
|
|
453
|
+
tags=CryonirspTag.input_dataset_parameters(),
|
|
454
|
+
encoder=basemodel_encoder,
|
|
455
|
+
)
|
|
426
456
|
task.parameters = parameter_class(
|
|
427
|
-
task.
|
|
457
|
+
scratch=task.scratch,
|
|
428
458
|
wavelength=testing_wavelength,
|
|
429
459
|
arm_id=arm_id,
|
|
430
460
|
obs_ip_start_time=obs_ip_start_time,
|
|
@@ -8,6 +8,8 @@ from random import randint
|
|
|
8
8
|
import asdf
|
|
9
9
|
from astropy.io import fits
|
|
10
10
|
from dkist_header_validator import spec122_validator
|
|
11
|
+
from dkist_processing_common.codecs.basemodel import basemodel_encoder
|
|
12
|
+
from dkist_processing_common.models.input_dataset import InputDatasetPartDocumentList
|
|
11
13
|
from dkist_processing_common.models.task_name import TaskName
|
|
12
14
|
from dkist_processing_common.tasks import TransferTrialData
|
|
13
15
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
@@ -18,7 +20,7 @@ from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
|
18
20
|
from dkist_processing_cryonirsp.models.task_name import CryonirspTaskName
|
|
19
21
|
from dkist_processing_cryonirsp.tasks.cryonirsp_base import CryonirspTaskBase
|
|
20
22
|
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
21
|
-
|
|
23
|
+
from dkist_processing_cryonirsp.tests.conftest import FileParameter
|
|
22
24
|
|
|
23
25
|
# These are the workflow versions of the polyfit coefficient parameters
|
|
24
26
|
WORKFLOW_LINEARIZATION_POLYFIT_COEFFS_CI = [
|
|
@@ -424,13 +426,13 @@ class LoadInstPolCal(LoadTaskTags):
|
|
|
424
426
|
def translate_122_to_214_task(suffix: str):
|
|
425
427
|
class Translate122To214L0(WorkflowTaskBase):
|
|
426
428
|
def run(self) -> None:
|
|
427
|
-
raw_dir = Path(self.scratch.scratch_base_path) / f"
|
|
429
|
+
raw_dir = Path(self.scratch.scratch_base_path) / f"CRYONIRSP{self.recipe_run_id:03n}"
|
|
428
430
|
if not os.path.exists(self.scratch.workflow_base_path):
|
|
429
431
|
os.makedirs(self.scratch.workflow_base_path)
|
|
430
432
|
|
|
431
433
|
if not raw_dir.exists():
|
|
432
434
|
raise FileNotFoundError(
|
|
433
|
-
f"Expected to find a raw
|
|
435
|
+
f"Expected to find a raw CRYONIRSP{self.recipe_run_id:03n} folder in {self.scratch.scratch_base_path}"
|
|
434
436
|
)
|
|
435
437
|
|
|
436
438
|
for file in raw_dir.glob(f"*.{suffix}"):
|
|
@@ -465,26 +467,38 @@ def translate_122_to_214_task(suffix: str):
|
|
|
465
467
|
def create_input_dataset_parameter_document(param_path: Path):
|
|
466
468
|
class CreateInputDatasetParameterDocument(WorkflowTaskBase):
|
|
467
469
|
def run(self) -> None:
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
470
|
+
relative_path = "input_dataset_parameters.json"
|
|
471
|
+
self.write(
|
|
472
|
+
data=InputDatasetPartDocumentList(
|
|
473
|
+
doc_list=self.input_dataset_document_simple_parameters_part
|
|
474
|
+
),
|
|
475
|
+
relative_path=relative_path,
|
|
476
|
+
tags=CryonirspTag.input_dataset_parameters(),
|
|
477
|
+
encoder=basemodel_encoder,
|
|
478
|
+
)
|
|
479
|
+
logger.info(f"Wrote input dataset parameter doc to {relative_path}")
|
|
480
|
+
self.copy_and_tag_parameter_files(param_path=param_path)
|
|
481
|
+
logger.info(f"Copied input dataset parameter files from {param_path}")
|
|
473
482
|
|
|
474
483
|
@property
|
|
475
|
-
def
|
|
476
|
-
|
|
477
|
-
value_id = randint(1000, 2000)
|
|
478
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
479
|
-
param_path=param_path, create_files=False
|
|
480
|
-
)
|
|
484
|
+
def parameter_dict(self):
|
|
485
|
+
param_class = cryonirsp_testing_parameters_factory(task=self, create_files=False)
|
|
481
486
|
params = asdict(
|
|
482
487
|
param_class(
|
|
483
488
|
cryonirsp_linearization_polyfit_coeffs_ci=WORKFLOW_LINEARIZATION_POLYFIT_COEFFS_CI,
|
|
484
489
|
cryonirsp_linearization_polyfit_coeffs_sp=WORKFLOW_LINEARIZATION_POLYFIT_COEFFS_SP,
|
|
485
490
|
)
|
|
486
491
|
)
|
|
492
|
+
return params
|
|
493
|
+
|
|
494
|
+
@property
|
|
495
|
+
def input_dataset_document_simple_parameters_part(self):
|
|
496
|
+
parameters_list = []
|
|
497
|
+
value_id = randint(1000, 2000)
|
|
498
|
+
params = self.parameter_dict
|
|
487
499
|
for pn, pv in params.items():
|
|
500
|
+
if isinstance(pv, FileParameter):
|
|
501
|
+
pv = pv.model_dump()
|
|
488
502
|
values = [
|
|
489
503
|
{
|
|
490
504
|
"parameterValueId": value_id,
|
|
@@ -497,6 +511,22 @@ def create_input_dataset_parameter_document(param_path: Path):
|
|
|
497
511
|
|
|
498
512
|
return parameters_list
|
|
499
513
|
|
|
514
|
+
def copy_and_tag_parameter_files(self, param_path=param_path):
|
|
515
|
+
# Copy parameter files from param_path to a place where they can be tagged
|
|
516
|
+
params = self.parameter_dict
|
|
517
|
+
destination_dir = Path(self.scratch.workflow_base_path) / "parameters"
|
|
518
|
+
destination_dir.mkdir(parents=True, exist_ok=True)
|
|
519
|
+
for pn, pv in params.items():
|
|
520
|
+
if isinstance(pv, FileParameter):
|
|
521
|
+
file_path = next(param_path.rglob(pv.file_pointer.object_key))
|
|
522
|
+
if file_path.parent != destination_dir:
|
|
523
|
+
shutil.copy(file_path, destination_dir)
|
|
524
|
+
logger.info(
|
|
525
|
+
f"Copied parameter file for '{pn}' to {destination_dir / file_path}"
|
|
526
|
+
)
|
|
527
|
+
file_path = next(destination_dir.rglob(pv.file_pointer.object_key))
|
|
528
|
+
self.tag(path=file_path, tags=pv.file_pointer.tag)
|
|
529
|
+
|
|
500
530
|
return CreateInputDatasetParameterDocument
|
|
501
531
|
|
|
502
532
|
|
|
@@ -43,7 +43,7 @@ def compute_bad_pixel_map_task(
|
|
|
43
43
|
task.scratch = WorkflowFileSystem(
|
|
44
44
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
45
45
|
)
|
|
46
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
46
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
47
47
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
48
48
|
start_time = datetime.now()
|
|
49
49
|
ds = CryonirspHeadersValidCISolarGainFrames(
|
|
@@ -38,7 +38,7 @@ def compute_beam_boundaries_task(
|
|
|
38
38
|
task.scratch = WorkflowFileSystem(
|
|
39
39
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
40
40
|
)
|
|
41
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
41
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
42
42
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
43
43
|
# Create fake bad pixel map
|
|
44
44
|
task.write(
|
|
@@ -70,7 +70,7 @@ def ci_science_calibration_task(
|
|
|
70
70
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
71
71
|
)
|
|
72
72
|
|
|
73
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
73
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
74
74
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
75
75
|
|
|
76
76
|
# Need a beam boundary file
|
|
@@ -4,7 +4,6 @@ import numpy as np
|
|
|
4
4
|
import pytest
|
|
5
5
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
6
6
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
7
|
-
from dkist_processing_common.tasks.mixin.input_dataset import InputDatasetMixin
|
|
8
7
|
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
9
8
|
|
|
10
9
|
from dkist_processing_cryonirsp.models.constants import CryonirspConstants
|
|
@@ -21,7 +20,7 @@ column_error_bad_pixel_map = base_bad_pixel_map.copy()
|
|
|
21
20
|
column_error_bad_pixel_map[:, 6] = 1
|
|
22
21
|
|
|
23
22
|
|
|
24
|
-
class BadPixelMapTask(WorkflowTaskBase, CorrectionsMixin
|
|
23
|
+
class BadPixelMapTask(WorkflowTaskBase, CorrectionsMixin):
|
|
25
24
|
constants: CryonirspConstants
|
|
26
25
|
|
|
27
26
|
@property
|
|
@@ -58,7 +57,7 @@ def bad_pixel_mask_task(
|
|
|
58
57
|
task.scratch = WorkflowFileSystem(
|
|
59
58
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
60
59
|
)
|
|
61
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
60
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
62
61
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
63
62
|
yield task
|
|
64
63
|
finally:
|
|
@@ -42,7 +42,7 @@ def cryo_science_task(
|
|
|
42
42
|
task.scratch = WorkflowFileSystem(
|
|
43
43
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
44
44
|
)
|
|
45
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
45
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
46
46
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
47
47
|
yield task
|
|
48
48
|
finally:
|
|
@@ -52,7 +52,7 @@ def sp_dark_calibration_task(
|
|
|
52
52
|
task.scratch = WorkflowFileSystem(
|
|
53
53
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
54
54
|
)
|
|
55
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
55
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
56
56
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
57
57
|
|
|
58
58
|
# Create fake beam border intermediate arrays
|
|
@@ -137,7 +137,7 @@ def ci_dark_calibration_task(
|
|
|
137
137
|
task.scratch = WorkflowFileSystem(
|
|
138
138
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
139
139
|
)
|
|
140
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
140
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
141
141
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
142
142
|
|
|
143
143
|
# Need a beam boundary file
|
|
@@ -43,7 +43,7 @@ def ci_solar_gain_calibration_task(
|
|
|
43
43
|
task.scratch = WorkflowFileSystem(
|
|
44
44
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
45
45
|
)
|
|
46
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
46
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
47
47
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
48
48
|
# Need a beam boundary file
|
|
49
49
|
task.write(
|
|
@@ -126,7 +126,7 @@ def lamp_calibration_task(
|
|
|
126
126
|
task.scratch = WorkflowFileSystem(
|
|
127
127
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
128
128
|
)
|
|
129
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
129
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
130
130
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
131
131
|
# Need a beam boundary file
|
|
132
132
|
task.write(
|
|
@@ -172,7 +172,7 @@ def ci_instrument_polarization_calibration_task(
|
|
|
172
172
|
task.scratch = WorkflowFileSystem(
|
|
173
173
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
174
174
|
)
|
|
175
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
175
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
176
176
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
177
177
|
mocker.patch(
|
|
178
178
|
"dkist_processing_cryonirsp.tasks.instrument_polarization.PolcalFitter",
|
|
@@ -247,7 +247,10 @@ def ci_instrument_polarization_calibration_task_with_no_data(
|
|
|
247
247
|
workflow_version="VX.Y",
|
|
248
248
|
) as task:
|
|
249
249
|
try: # This try... block is here to make sure the dbs get cleaned up if there's a failure in the fixture
|
|
250
|
-
|
|
250
|
+
task.scratch = WorkflowFileSystem(
|
|
251
|
+
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
252
|
+
)
|
|
253
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
251
254
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
252
255
|
yield task
|
|
253
256
|
finally:
|
|
@@ -291,7 +294,7 @@ def sp_instrument_polarization_calibration_task(
|
|
|
291
294
|
task.scratch = WorkflowFileSystem(
|
|
292
295
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
293
296
|
)
|
|
294
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
297
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
295
298
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
296
299
|
mocker.patch(
|
|
297
300
|
"dkist_processing_cryonirsp.tasks.instrument_polarization.PolcalFitter",
|
|
@@ -370,7 +373,10 @@ def sp_instrument_polarization_calibration_task_with_no_data(
|
|
|
370
373
|
workflow_version="VX.Y",
|
|
371
374
|
) as task:
|
|
372
375
|
try: # This try... block is here to make sure the dbs get cleaned up if there's a failure in the fixture
|
|
373
|
-
|
|
376
|
+
task.scratch = WorkflowFileSystem(
|
|
377
|
+
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
378
|
+
)
|
|
379
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
374
380
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
375
381
|
yield task
|
|
376
382
|
finally:
|
|
@@ -56,7 +56,7 @@ def linearity_correction(
|
|
|
56
56
|
task.scratch = WorkflowFileSystem(
|
|
57
57
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
58
58
|
)
|
|
59
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
59
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
60
60
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
61
61
|
ds = CryonirspHeadersValidNonLinearizedFrames(
|
|
62
62
|
arm_id=arm_id,
|
|
@@ -5,6 +5,8 @@ import numpy as np
|
|
|
5
5
|
import pytest
|
|
6
6
|
from astropy.units import Quantity
|
|
7
7
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
8
|
+
from dkist_processing_common.codecs.array import array_decoder
|
|
9
|
+
from dkist_processing_common.models.input_dataset import InputDatasetFilePointer
|
|
8
10
|
from hypothesis import example
|
|
9
11
|
from hypothesis import given
|
|
10
12
|
from hypothesis import HealthCheck
|
|
@@ -19,7 +21,6 @@ from dkist_processing_cryonirsp.parsers.optical_density_filters import (
|
|
|
19
21
|
from dkist_processing_cryonirsp.tasks.cryonirsp_base import CryonirspTaskBase
|
|
20
22
|
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
21
23
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
22
|
-
from dkist_processing_cryonirsp.tests.conftest import FileParameter
|
|
23
24
|
from dkist_processing_cryonirsp.tests.conftest import TestingParameters
|
|
24
25
|
|
|
25
26
|
# The property names of all parameters on `CryonirspParsingParameters`
|
|
@@ -46,16 +47,15 @@ def basic_science_task_with_parameter_mixin(
|
|
|
46
47
|
...
|
|
47
48
|
|
|
48
49
|
init_cryonirsp_constants_db(recipe_run_id, CryonirspConstantsDb())
|
|
49
|
-
|
|
50
|
+
with Task(
|
|
50
51
|
recipe_run_id=recipe_run_id,
|
|
51
52
|
workflow_name="parse_cryonirsp_input_data",
|
|
52
53
|
workflow_version="VX.Y",
|
|
53
|
-
)
|
|
54
|
-
try: # This try... block is here to make sure the dbs get cleaned up if there's a failure in the fixture
|
|
54
|
+
) as task:
|
|
55
55
|
task.scratch = WorkflowFileSystem(
|
|
56
|
-
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
56
|
+
scratch_base_path=tmp_path, recipe_run_id=task.recipe_run_id
|
|
57
57
|
)
|
|
58
|
-
test_params = cryonirsp_testing_parameters_factory(
|
|
58
|
+
test_params = cryonirsp_testing_parameters_factory(task)
|
|
59
59
|
param_dict = test_params()
|
|
60
60
|
assign_input_dataset_doc_to_task(
|
|
61
61
|
task,
|
|
@@ -65,7 +65,6 @@ def basic_science_task_with_parameter_mixin(
|
|
|
65
65
|
obs_ip_start_time=obs_ip_start_time,
|
|
66
66
|
)
|
|
67
67
|
yield task, param_dict
|
|
68
|
-
finally:
|
|
69
68
|
task._purge()
|
|
70
69
|
|
|
71
70
|
return make_task
|
|
@@ -94,10 +93,11 @@ def test_filter_parameters(basic_science_task_with_parameter_mixin, wave):
|
|
|
94
93
|
}
|
|
95
94
|
for param in expected:
|
|
96
95
|
assert getattr(task_params, param) == expected[param]
|
|
96
|
+
task._purge()
|
|
97
97
|
|
|
98
98
|
|
|
99
99
|
def _is_file_param(param_value: Any) -> bool:
|
|
100
|
-
return isinstance(param_value,
|
|
100
|
+
return isinstance(param_value, InputDatasetFilePointer)
|
|
101
101
|
|
|
102
102
|
|
|
103
103
|
def test_file_parameters(basic_science_task_with_parameter_mixin):
|
|
@@ -115,18 +115,11 @@ def test_file_parameters(basic_science_task_with_parameter_mixin):
|
|
|
115
115
|
for pn, pv in asdict(test_params).items():
|
|
116
116
|
# We want to test only file parameters
|
|
117
117
|
if _is_file_param(pv):
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
# if the param name is not a task param attribute, then check that we can load the param
|
|
124
|
-
# using the value defined in the input_dataset_parameters list of the task param object
|
|
125
|
-
else:
|
|
126
|
-
param_dict = task_params._find_most_recent_past_value(pn)
|
|
127
|
-
actual = task_params._load_param_value_from_numpy_save(param_dict)
|
|
128
|
-
# Now get the expected value using the param value dict from the testing params
|
|
129
|
-
expected = np.load(pv["param_path"])
|
|
118
|
+
# Get the parameter value the way the tasks do
|
|
119
|
+
param_obj = task_params._find_most_recent_past_value(pn)
|
|
120
|
+
actual = task_params._load_param_value_from_numpy_save(param_obj=param_obj)
|
|
121
|
+
# Now get the expected value using the tag in the value from the testing params
|
|
122
|
+
expected = next(task.read(tags=pv.file_pointer.tag, decoder=array_decoder))
|
|
130
123
|
# Compare the actual and expected values
|
|
131
124
|
assert np.array_equal(actual, expected)
|
|
132
125
|
|
|
@@ -178,12 +171,11 @@ def test_arm_parameters(basic_science_task_with_parameter_mixin, arm_id):
|
|
|
178
171
|
suffix = f"_{arm_id}".casefold()
|
|
179
172
|
if _is_arm_param(pn, task_params, test_params, single_arm_only=arm_id):
|
|
180
173
|
generic_param_name = pn.removeprefix("cryonirsp_").removesuffix(suffix)
|
|
181
|
-
|
|
182
174
|
actual = getattr(task_params, generic_param_name)
|
|
183
175
|
expected = getattr(test_params, pn)
|
|
184
|
-
if isinstance(expected,
|
|
185
|
-
|
|
186
|
-
assert np.array_equal(
|
|
176
|
+
if isinstance(expected, InputDatasetFilePointer):
|
|
177
|
+
expected_array = task_params._load_param_value_from_numpy_save(param_obj=expected)
|
|
178
|
+
assert np.array_equal(expected_array, actual)
|
|
187
179
|
elif isinstance(actual, np.ndarray):
|
|
188
180
|
assert expected == actual.tolist()
|
|
189
181
|
else:
|
|
@@ -349,7 +349,7 @@ def parse_linearized_task(
|
|
|
349
349
|
task.scratch = WorkflowFileSystem(
|
|
350
350
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
351
351
|
)
|
|
352
|
-
param_dataclass = cryonirsp_testing_parameters_factory(
|
|
352
|
+
param_dataclass = cryonirsp_testing_parameters_factory(task)
|
|
353
353
|
assign_input_dataset_doc_to_task(
|
|
354
354
|
task,
|
|
355
355
|
param_dataclass(),
|
|
@@ -38,7 +38,7 @@ def compute_beam_boundaries_task(
|
|
|
38
38
|
task.scratch = WorkflowFileSystem(
|
|
39
39
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
40
40
|
)
|
|
41
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
41
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
42
42
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
43
43
|
# Create fake bad pixel map
|
|
44
44
|
task.write(
|
|
@@ -57,7 +57,7 @@ def sp_dispersion_axis_correction_task(
|
|
|
57
57
|
task.scratch = WorkflowFileSystem(
|
|
58
58
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
59
59
|
)
|
|
60
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
60
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
61
61
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
62
62
|
|
|
63
63
|
# Create fake solar charcteristic spectra
|
|
@@ -52,7 +52,7 @@ def geometric_calibration_task_that_completes(
|
|
|
52
52
|
task.scratch = WorkflowFileSystem(
|
|
53
53
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
54
54
|
)
|
|
55
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
55
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
56
56
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
57
57
|
|
|
58
58
|
task.angles = [0.0, 0.0]
|
|
@@ -188,7 +188,7 @@ def geometric_calibration_task_with_simple_raw_data(
|
|
|
188
188
|
task.scratch = WorkflowFileSystem(
|
|
189
189
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
190
190
|
)
|
|
191
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
191
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
192
192
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
193
193
|
|
|
194
194
|
# Create the intermediate frames needed
|
|
@@ -67,7 +67,7 @@ def sp_science_calibration_task(
|
|
|
67
67
|
task.scratch = WorkflowFileSystem(
|
|
68
68
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
69
69
|
)
|
|
70
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
70
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
71
71
|
assign_input_dataset_doc_to_task(task, param_class())
|
|
72
72
|
# Create fake bad pixel map
|
|
73
73
|
task.write(
|
|
@@ -51,7 +51,7 @@ def solar_gain_calibration_task_that_completes(
|
|
|
51
51
|
task.scratch = WorkflowFileSystem(
|
|
52
52
|
scratch_base_path=tmp_path, recipe_run_id=recipe_run_id
|
|
53
53
|
)
|
|
54
|
-
param_class = cryonirsp_testing_parameters_factory(
|
|
54
|
+
param_class = cryonirsp_testing_parameters_factory(task)
|
|
55
55
|
assign_input_dataset_doc_to_task(
|
|
56
56
|
task, param_class(cryonirsp_fringe_correction_on=fringe_correction)
|
|
57
57
|
)
|
{dkist_processing_cryonirsp-1.7.6.dist-info → dkist_processing_cryonirsp-1.7.7.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-cryonirsp
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.7
|
|
4
4
|
Summary: Science processing code for the Cryo-NIRSP instrument on DKIST
|
|
5
5
|
Author-email: NSO / AURA <dkistdc@nso.edu>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -17,7 +17,7 @@ Requires-Dist: Pillow==10.4.0
|
|
|
17
17
|
Requires-Dist: astropy==7.0.2
|
|
18
18
|
Requires-Dist: dkist-fits-specifications==4.17.0
|
|
19
19
|
Requires-Dist: dkist-header-validator==5.2.1
|
|
20
|
-
Requires-Dist: dkist-processing-common==10.
|
|
20
|
+
Requires-Dist: dkist-processing-common==10.9.0
|
|
21
21
|
Requires-Dist: dkist-processing-math==2.2.0
|
|
22
22
|
Requires-Dist: dkist-processing-pac==3.1.1
|
|
23
23
|
Requires-Dist: dkist-spectral-lines==3.0.0
|
|
@@ -88,7 +88,7 @@ Requires-Dist: WTForms==3.2.1; extra == "frozen"
|
|
|
88
88
|
Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
|
|
89
89
|
Requires-Dist: aioftp==0.25.1; extra == "frozen"
|
|
90
90
|
Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
|
|
91
|
-
Requires-Dist: aiohttp==3.12.
|
|
91
|
+
Requires-Dist: aiohttp==3.12.7; extra == "frozen"
|
|
92
92
|
Requires-Dist: aiosignal==1.3.2; extra == "frozen"
|
|
93
93
|
Requires-Dist: alembic==1.16.1; extra == "frozen"
|
|
94
94
|
Requires-Dist: amqp==5.3.1; extra == "frozen"
|
|
@@ -114,16 +114,16 @@ Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
|
|
|
114
114
|
Requires-Dist: asgiref==3.8.1; extra == "frozen"
|
|
115
115
|
Requires-Dist: asteval==1.0.6; extra == "frozen"
|
|
116
116
|
Requires-Dist: astropy==7.0.2; extra == "frozen"
|
|
117
|
-
Requires-Dist: astropy-iers-data==0.2025.
|
|
117
|
+
Requires-Dist: astropy-iers-data==0.2025.6.2.0.38.23; extra == "frozen"
|
|
118
118
|
Requires-Dist: asyncpg==0.30.0; extra == "frozen"
|
|
119
119
|
Requires-Dist: attrs==25.3.0; extra == "frozen"
|
|
120
120
|
Requires-Dist: babel==2.17.0; extra == "frozen"
|
|
121
121
|
Requires-Dist: billiard==4.2.1; extra == "frozen"
|
|
122
122
|
Requires-Dist: blinker==1.9.0; extra == "frozen"
|
|
123
|
-
Requires-Dist: boto3==1.38.
|
|
124
|
-
Requires-Dist: botocore==1.38.
|
|
123
|
+
Requires-Dist: boto3==1.38.28; extra == "frozen"
|
|
124
|
+
Requires-Dist: botocore==1.38.28; extra == "frozen"
|
|
125
125
|
Requires-Dist: cachelib==0.13.0; extra == "frozen"
|
|
126
|
-
Requires-Dist: celery==5.5.
|
|
126
|
+
Requires-Dist: celery==5.5.3; extra == "frozen"
|
|
127
127
|
Requires-Dist: certifi==2025.4.26; extra == "frozen"
|
|
128
128
|
Requires-Dist: cffi==1.17.1; extra == "frozen"
|
|
129
129
|
Requires-Dist: charset-normalizer==3.4.2; extra == "frozen"
|
|
@@ -144,9 +144,9 @@ Requires-Dist: dacite==1.9.2; extra == "frozen"
|
|
|
144
144
|
Requires-Dist: decorator==5.2.1; extra == "frozen"
|
|
145
145
|
Requires-Dist: dill==0.4.0; extra == "frozen"
|
|
146
146
|
Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
|
|
147
|
-
Requires-Dist: dkist-processing-common==10.
|
|
147
|
+
Requires-Dist: dkist-processing-common==10.9.0; extra == "frozen"
|
|
148
148
|
Requires-Dist: dkist-processing-core==5.1.1; extra == "frozen"
|
|
149
|
-
Requires-Dist: dkist-processing-cryonirsp==1.7.
|
|
149
|
+
Requires-Dist: dkist-processing-cryonirsp==1.7.7; extra == "frozen"
|
|
150
150
|
Requires-Dist: dkist-processing-math==2.2.0; extra == "frozen"
|
|
151
151
|
Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
|
|
152
152
|
Requires-Dist: dkist-service-configuration==2.2; extra == "frozen"
|
|
@@ -165,7 +165,8 @@ Requires-Dist: globus-sdk==3.56.1; extra == "frozen"
|
|
|
165
165
|
Requires-Dist: google-re2==1.1.20240702; extra == "frozen"
|
|
166
166
|
Requires-Dist: googleapis-common-protos==1.70.0; extra == "frozen"
|
|
167
167
|
Requires-Dist: gqlclient==1.2.3; extra == "frozen"
|
|
168
|
-
Requires-Dist:
|
|
168
|
+
Requires-Dist: greenlet==3.2.2; extra == "frozen"
|
|
169
|
+
Requires-Dist: grpcio==1.72.1; extra == "frozen"
|
|
169
170
|
Requires-Dist: gunicorn==23.0.0; extra == "frozen"
|
|
170
171
|
Requires-Dist: h11==0.16.0; extra == "frozen"
|
|
171
172
|
Requires-Dist: httpcore==1.0.9; extra == "frozen"
|
|
@@ -182,7 +183,7 @@ Requires-Dist: jsonschema==4.24.0; extra == "frozen"
|
|
|
182
183
|
Requires-Dist: jsonschema-specifications==2025.4.1; extra == "frozen"
|
|
183
184
|
Requires-Dist: jupyter_core==5.8.1; extra == "frozen"
|
|
184
185
|
Requires-Dist: kiwisolver==1.4.8; extra == "frozen"
|
|
185
|
-
Requires-Dist: kombu==5.5.
|
|
186
|
+
Requires-Dist: kombu==5.5.4; extra == "frozen"
|
|
186
187
|
Requires-Dist: largestinteriorrectangle==0.2.1; extra == "frozen"
|
|
187
188
|
Requires-Dist: lazy-object-proxy==1.11.0; extra == "frozen"
|
|
188
189
|
Requires-Dist: lazy_loader==0.4; extra == "frozen"
|
|
@@ -229,7 +230,7 @@ Requires-Dist: platformdirs==4.3.8; extra == "frozen"
|
|
|
229
230
|
Requires-Dist: pluggy==1.6.0; extra == "frozen"
|
|
230
231
|
Requires-Dist: prison==0.2.1; extra == "frozen"
|
|
231
232
|
Requires-Dist: proglog==0.1.12; extra == "frozen"
|
|
232
|
-
Requires-Dist: prometheus_client==0.22.
|
|
233
|
+
Requires-Dist: prometheus_client==0.22.1; extra == "frozen"
|
|
233
234
|
Requires-Dist: prompt_toolkit==3.0.51; extra == "frozen"
|
|
234
235
|
Requires-Dist: propcache==0.3.1; extra == "frozen"
|
|
235
236
|
Requires-Dist: protobuf==5.29.5; extra == "frozen"
|
|
@@ -273,12 +274,12 @@ Requires-Dist: talus==1.1.0; extra == "frozen"
|
|
|
273
274
|
Requires-Dist: tenacity==9.1.2; extra == "frozen"
|
|
274
275
|
Requires-Dist: termcolor==3.1.0; extra == "frozen"
|
|
275
276
|
Requires-Dist: text-unidecode==1.3; extra == "frozen"
|
|
276
|
-
Requires-Dist: tifffile==2025.
|
|
277
|
+
Requires-Dist: tifffile==2025.6.1; extra == "frozen"
|
|
277
278
|
Requires-Dist: tornado==6.5.1; extra == "frozen"
|
|
278
279
|
Requires-Dist: tqdm==4.67.1; extra == "frozen"
|
|
279
280
|
Requires-Dist: traitlets==5.14.3; extra == "frozen"
|
|
280
281
|
Requires-Dist: typing-inspection==0.4.1; extra == "frozen"
|
|
281
|
-
Requires-Dist: typing_extensions==4.
|
|
282
|
+
Requires-Dist: typing_extensions==4.14.0; extra == "frozen"
|
|
282
283
|
Requires-Dist: tzdata==2025.2; extra == "frozen"
|
|
283
284
|
Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
|
|
284
285
|
Requires-Dist: uncertainties==3.2.3; extra == "frozen"
|
{dkist_processing_cryonirsp-1.7.6.dist-info → dkist_processing_cryonirsp-1.7.7.dist-info}/RECORD
RENAMED
|
@@ -7,7 +7,7 @@ dkist_processing_cryonirsp/models/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZ
|
|
|
7
7
|
dkist_processing_cryonirsp/models/beam_boundaries.py,sha256=FyiLd2iCWA6TUojeGaqQ_ULxvakDY13VxqUJVlmYvV0,1159
|
|
8
8
|
dkist_processing_cryonirsp/models/constants.py,sha256=aKhSu4Hp0kKRgO6muMli2W4DC3zP0sEm4TzK--hyJXQ,11062
|
|
9
9
|
dkist_processing_cryonirsp/models/exposure_conditions.py,sha256=slFq5-Qz4fRpJKDBabbm4evPWLQVYmT-Uf9rk7nI734,813
|
|
10
|
-
dkist_processing_cryonirsp/models/parameters.py,sha256=
|
|
10
|
+
dkist_processing_cryonirsp/models/parameters.py,sha256=icAnYJvVCSJiNoT9SuYTZfDx6imwcq7QwfCY3_qQAIY,13154
|
|
11
11
|
dkist_processing_cryonirsp/models/tags.py,sha256=ac0MnYlsn8-w7IioOvWeo7mBaDKE9o9TlRpxCH1OsRc,5743
|
|
12
12
|
dkist_processing_cryonirsp/models/task_name.py,sha256=xK4AKwgOx2uANbjhr0Q5Q3R9iPxLfkVKxWYY8wWjKhE,439
|
|
13
13
|
dkist_processing_cryonirsp/parsers/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
|
|
@@ -29,50 +29,50 @@ dkist_processing_cryonirsp/tasks/bad_pixel_map.py,sha256=z-ACCwHqiRANsR7gkkCIycP
|
|
|
29
29
|
dkist_processing_cryonirsp/tasks/beam_boundaries_base.py,sha256=-sKmBDuNq22QZBe6Vdu5aaiOxeikM6bICpkZ4lBP--g,9688
|
|
30
30
|
dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py,sha256=pgpi6m0T1E1dkJ8btu45DMK--e7aCJ0wdEnZyD3g7MU,1889
|
|
31
31
|
dkist_processing_cryonirsp/tasks/ci_science.py,sha256=VCt5E2gqL2j5fseSfsqCyCKK5hCGpXiR0XCBC74BiKQ,7366
|
|
32
|
-
dkist_processing_cryonirsp/tasks/cryonirsp_base.py,sha256=
|
|
32
|
+
dkist_processing_cryonirsp/tasks/cryonirsp_base.py,sha256=8o-OzqKFvSOBu_VF1W8xHO1Pp4oapke1Zq-8VprU9pQ,1702
|
|
33
33
|
dkist_processing_cryonirsp/tasks/dark.py,sha256=h_n1SU2bFiK7lp4vAKxv2ETKHYRODUp2KkH0YXjgFq8,4936
|
|
34
34
|
dkist_processing_cryonirsp/tasks/gain.py,sha256=1aMeSOupmw-WQNb9O2Qx4uxGae0ilZDszo9xbf38Y_g,10438
|
|
35
35
|
dkist_processing_cryonirsp/tasks/instrument_polarization.py,sha256=xS2jcngnibDCLlh7t1TmHM_TjYQT5wEeeEbRHBzr48M,23293
|
|
36
36
|
dkist_processing_cryonirsp/tasks/l1_output_data.py,sha256=3RFt493MEJxdpF81gcp8FDlQ8vGZ0GXEDYQFWIufumI,1554
|
|
37
37
|
dkist_processing_cryonirsp/tasks/linearity_correction.py,sha256=n9vK9cT7NWkpAM9J6wOYDj95Kh0va_ot-hdncd7ye0Y,24199
|
|
38
38
|
dkist_processing_cryonirsp/tasks/make_movie_frames.py,sha256=I7s3Tml6AevHci0kTPF71mNjXNl3wlG57Jh7ghnndeg,13928
|
|
39
|
-
dkist_processing_cryonirsp/tasks/parse.py,sha256=
|
|
39
|
+
dkist_processing_cryonirsp/tasks/parse.py,sha256=PRpXQ0KdY-kSSTJ5Q4z6NWku9HiuEwZ1wqXutBoB1Fk,13109
|
|
40
40
|
dkist_processing_cryonirsp/tasks/quality_metrics.py,sha256=jyx2YZzLb5sVxbJ_H6PaKQqZbyZy9QuuLqu18jsnncQ,11447
|
|
41
41
|
dkist_processing_cryonirsp/tasks/science_base.py,sha256=YYUQUfLeuzDb6E5TecOH22orTN4-hWocoYaGOq6Zoro,18637
|
|
42
42
|
dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py,sha256=XI3iepNe04xaU4ilqxrlOgYDkv5I5rUc0RXEE1Rwt0o,10296
|
|
43
|
-
dkist_processing_cryonirsp/tasks/sp_dispersion_axis_correction.py,sha256=
|
|
43
|
+
dkist_processing_cryonirsp/tasks/sp_dispersion_axis_correction.py,sha256=EaUanXd_uvuTxGuWEfFMFRls7S0GPu_P35H3LKqfrj0,19366
|
|
44
44
|
dkist_processing_cryonirsp/tasks/sp_geometric.py,sha256=_M_e_blz4mKDIUWSasonnOzbZ6EUbHp9pAZXQx4zY7U,24387
|
|
45
45
|
dkist_processing_cryonirsp/tasks/sp_science.py,sha256=QWyAEkXYamAcWxi62-tVD6ptuQ6vt8yIzuCKzCIYW20,13643
|
|
46
46
|
dkist_processing_cryonirsp/tasks/sp_solar_gain.py,sha256=d4UABsMxyzCMduVxptHY_TCGqS-l-W5iuhW7HJwVPkA,21024
|
|
47
|
-
dkist_processing_cryonirsp/tasks/write_l1.py,sha256=
|
|
47
|
+
dkist_processing_cryonirsp/tasks/write_l1.py,sha256=ebZCWr5i6LUXJ38oXSq22zRKNP7sdBuxbJAEV5oJM84,41435
|
|
48
48
|
dkist_processing_cryonirsp/tasks/mixin/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
|
|
49
49
|
dkist_processing_cryonirsp/tasks/mixin/corrections.py,sha256=rcKmckBJkoExcX0XW1i3OZzuMu1i7tX5Hgwy15chU50,6566
|
|
50
50
|
dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py,sha256=7ToSy9uOJ_JrFfd-X225wqW_laq4xoRJkBiAPanfb_g,11225
|
|
51
51
|
dkist_processing_cryonirsp/tests/__init__.py,sha256=m6UekKftTahNJ3W5K3mZSz4Y4ZZpHRxF_ZAxuaKYL7o,12
|
|
52
|
-
dkist_processing_cryonirsp/tests/conftest.py,sha256=
|
|
52
|
+
dkist_processing_cryonirsp/tests/conftest.py,sha256=oeZw5KXlvm_UasgFc3uzxD2Z2uTg5-rJu7Do9wIKJKU,18131
|
|
53
53
|
dkist_processing_cryonirsp/tests/header_models.py,sha256=klif5-UzTzvAqpj5cJCdLtyodJZS_awhy53NUHyucTw,20601
|
|
54
54
|
dkist_processing_cryonirsp/tests/test_assemble_movie.py,sha256=YNZINIFXR9kZBlE1AIvjlVmwwhZJeVYOOPk7Q8IVkcI,6222
|
|
55
55
|
dkist_processing_cryonirsp/tests/test_assemble_qualilty.py,sha256=upk-oUqVBHGK3F0eemshLpAPrnfh9mbeuZXow4E1Rmc,16859
|
|
56
|
-
dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py,sha256=
|
|
57
|
-
dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py,sha256=
|
|
58
|
-
dkist_processing_cryonirsp/tests/test_ci_science.py,sha256=
|
|
59
|
-
dkist_processing_cryonirsp/tests/test_corrections.py,sha256=
|
|
60
|
-
dkist_processing_cryonirsp/tests/test_cryo_base.py,sha256=
|
|
56
|
+
dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py,sha256=TsUIaCWQolOJCU2YOhxxmXWby6j3NhCkB2W2jDgb9OM,4855
|
|
57
|
+
dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py,sha256=h-v79qi4VohcXCHFX2h_ANbkAeikOT5G9Ef-hA1rJJc,4558
|
|
58
|
+
dkist_processing_cryonirsp/tests/test_ci_science.py,sha256=PryW50DZaKiTcLaSvhfaolrosXObj7-O1jweCJeLM_Y,14403
|
|
59
|
+
dkist_processing_cryonirsp/tests/test_corrections.py,sha256=Q_prvaXKdmpebEa5d05s86pcGB9VTjsGB0g5AfEB2Ks,4536
|
|
60
|
+
dkist_processing_cryonirsp/tests/test_cryo_base.py,sha256=9dSQ_3j_n04NX-nbdAFWhdHGwMe720Vyx0Jxof9eySo,6647
|
|
61
61
|
dkist_processing_cryonirsp/tests/test_cryo_constants.py,sha256=OanX9nPCvhFe9mBV0SRCsClqiSaHi8YxgG2HoESrzTk,2827
|
|
62
|
-
dkist_processing_cryonirsp/tests/test_dark.py,sha256=
|
|
63
|
-
dkist_processing_cryonirsp/tests/test_gain.py,sha256=
|
|
64
|
-
dkist_processing_cryonirsp/tests/test_instrument_polarization.py,sha256=
|
|
65
|
-
dkist_processing_cryonirsp/tests/test_linearity_correction.py,sha256=
|
|
62
|
+
dkist_processing_cryonirsp/tests/test_dark.py,sha256=9WQDoVw1qwaqK-iaVfjOKbIusr4SJrR1rGiPZAWhNIU,11669
|
|
63
|
+
dkist_processing_cryonirsp/tests/test_gain.py,sha256=KAkIXJnifVx7CHnKBY-7EhhUi5b8t5U8wBOL9F8M0gM,11260
|
|
64
|
+
dkist_processing_cryonirsp/tests/test_instrument_polarization.py,sha256=COiopx4ueVPeyQO12eVP125nqBrgsnCa0ddo8y6Qrxs,19711
|
|
65
|
+
dkist_processing_cryonirsp/tests/test_linearity_correction.py,sha256=r1EwZsW1yO0B0ERGn1kDciZKvjipN_LVHFXR-XIJmP0,9350
|
|
66
66
|
dkist_processing_cryonirsp/tests/test_make_movie_frames.py,sha256=WznHp9dV2-jbJYzRniCAIbSHCGNc0SpSzyVDSrZkYd4,4904
|
|
67
|
-
dkist_processing_cryonirsp/tests/test_parameters.py,sha256=
|
|
68
|
-
dkist_processing_cryonirsp/tests/test_parse.py,sha256=
|
|
67
|
+
dkist_processing_cryonirsp/tests/test_parameters.py,sha256=yVyUmLst26Ws-_21lS727HkP08DcQh9kycZb9ICsHGY,10948
|
|
68
|
+
dkist_processing_cryonirsp/tests/test_parse.py,sha256=qop-scwjeN70xdgFxDiHuPjDy4b4rnA11W8Q5BkcL9o,56006
|
|
69
69
|
dkist_processing_cryonirsp/tests/test_quality.py,sha256=qrJBYjnZOhmQ4vjDcDV3FVSUAdktFgs-pRaHX4cf2G0,8129
|
|
70
|
-
dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py,sha256=
|
|
71
|
-
dkist_processing_cryonirsp/tests/test_sp_dispersion_axis_correction.py,sha256=
|
|
72
|
-
dkist_processing_cryonirsp/tests/test_sp_geometric.py,sha256=
|
|
70
|
+
dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py,sha256=tLQToWStb4Yu2jEHkzv2FyifO_QPwegzttyNKjX8JPk,4880
|
|
71
|
+
dkist_processing_cryonirsp/tests/test_sp_dispersion_axis_correction.py,sha256=Z0t_v85ATh9ntlngUa8v_hqs0ZCd4nkakpHNeCVRwiE,6141
|
|
72
|
+
dkist_processing_cryonirsp/tests/test_sp_geometric.py,sha256=ZnusZvxsJ8YX-rg0R1azg7-DPr4vz5q2NE030bsuWXo,15691
|
|
73
73
|
dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py,sha256=Kn8U_HzaaHW2bHmBxsotdjmpBhd_Ft6pLWhVsMWIJE8,5322
|
|
74
|
-
dkist_processing_cryonirsp/tests/test_sp_science.py,sha256=
|
|
75
|
-
dkist_processing_cryonirsp/tests/test_sp_solar.py,sha256=
|
|
74
|
+
dkist_processing_cryonirsp/tests/test_sp_science.py,sha256=fCmyXh27nxKU_N90yW1WqPGq1mZ6ODrw0UvtMB1elHI,19835
|
|
75
|
+
dkist_processing_cryonirsp/tests/test_sp_solar.py,sha256=IdZZ2RvCwKk6_q_JKo93nFFk0HJ74yUxHxq9W1LppJE,10008
|
|
76
76
|
dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py,sha256=x8dRAMyawQVYZQGsuO36DMZxK4L13hZBUn86qbhJiNk,2805
|
|
77
77
|
dkist_processing_cryonirsp/tests/test_workflows.py,sha256=2a-TUMbVEyNjHYNyzo2UQMLg5PSaEx6iV9hOsGp-Mck,291
|
|
78
78
|
dkist_processing_cryonirsp/tests/test_write_l1.py,sha256=VDSRU7j4eylYlmYQYKn32Od751NmG7qzhpoaFYFWQDM,17729
|
|
@@ -80,7 +80,7 @@ dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py,sha256=47DEQp
|
|
|
80
80
|
dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py,sha256=nWs3Qg3f4DHqN_6JBKDaR5q9TncgR_PeRWw3_bUBZWA,20110
|
|
81
81
|
dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py,sha256=KaxxMeo_sOMWgekNVkPsTJt6XWU2Ov7rnMkBtG_sKcc,23938
|
|
82
82
|
dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py,sha256=kl9yrE1EbgxNn__x4q0WYoZIvS8zefcOPbQQdxB4_ZE,3280
|
|
83
|
-
dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py,sha256=
|
|
83
|
+
dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py,sha256=Il68RtY4z8UIHsVfpSrNoeMN2GP8xHFIAxxsnCHd1Tc,20961
|
|
84
84
|
dkist_processing_cryonirsp/workflows/__init__.py,sha256=iEbV3oiKmkfmdZjeNJxqw08IIZnYSroq-2b-ARpkLFQ,112
|
|
85
85
|
dkist_processing_cryonirsp/workflows/ci_l0_processing.py,sha256=T-BOvDDWHzs5BDH5ctSBjzGgD6Xez52AnDXsH5_7Bms,3788
|
|
86
86
|
dkist_processing_cryonirsp/workflows/sp_l0_processing.py,sha256=A74av8E8mL9WzI4vWI2GbhVrRFQ7JCMlGAioEjXkkCU,4219
|
|
@@ -105,7 +105,7 @@ docs/requirements_table.rst,sha256=FaqSag9kPi77gWPhzeo_tFEhRFjb3qUuNqqQe1K76NM,2
|
|
|
105
105
|
docs/scientific_changelog.rst,sha256=01AWBSHg8zElnodCgAq-hMxhk9CkX5rtEENx4iz0sjI,300
|
|
106
106
|
docs/sp_science_calibration.rst,sha256=XL-H_hyzqwPHYNW3j-muItX_hGqMi-gjFRQbHp60LlU,2997
|
|
107
107
|
licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
|
|
108
|
-
dkist_processing_cryonirsp-1.7.
|
|
109
|
-
dkist_processing_cryonirsp-1.7.
|
|
110
|
-
dkist_processing_cryonirsp-1.7.
|
|
111
|
-
dkist_processing_cryonirsp-1.7.
|
|
108
|
+
dkist_processing_cryonirsp-1.7.7.dist-info/METADATA,sha256=FWFUjUR38N4vbj8jvKw1KuAOK0i4fy_1_raXw2vcLQE,21985
|
|
109
|
+
dkist_processing_cryonirsp-1.7.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
110
|
+
dkist_processing_cryonirsp-1.7.7.dist-info/top_level.txt,sha256=Sm9b1ddKnsF9Bh3mqDOct1Sm7k8I9aN7vGHgpmu-MlQ,51
|
|
111
|
+
dkist_processing_cryonirsp-1.7.7.dist-info/RECORD,,
|
{dkist_processing_cryonirsp-1.7.6.dist-info → dkist_processing_cryonirsp-1.7.7.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|