dkist-processing-common 11.6.0rc1__py3-none-any.whl → 11.7.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.
Files changed (24) hide show
  1. dkist_processing_common/models/constants.py +333 -21
  2. dkist_processing_common/models/fits_access.py +16 -25
  3. dkist_processing_common/models/telemetry.py +9 -2
  4. dkist_processing_common/parsers/average_bud.py +48 -0
  5. dkist_processing_common/parsers/experiment_id_bud.py +8 -4
  6. dkist_processing_common/parsers/id_bud.py +35 -19
  7. dkist_processing_common/parsers/l0_fits_access.py +3 -3
  8. dkist_processing_common/parsers/l1_fits_access.py +47 -21
  9. dkist_processing_common/parsers/near_bud.py +4 -4
  10. dkist_processing_common/parsers/observing_program_id_bud.py +24 -0
  11. dkist_processing_common/parsers/proposal_id_bud.py +11 -5
  12. dkist_processing_common/parsers/single_value_single_key_flower.py +0 -1
  13. dkist_processing_common/parsers/time.py +147 -27
  14. dkist_processing_common/tasks/base.py +21 -3
  15. dkist_processing_common/tasks/parse_l0_input_data.py +251 -36
  16. dkist_processing_common/tests/test_fits_access.py +19 -44
  17. dkist_processing_common/tests/test_parse_l0_input_data.py +45 -5
  18. dkist_processing_common/tests/test_stems.py +162 -10
  19. dkist_processing_common/tests/test_task_parsing.py +6 -6
  20. {dkist_processing_common-11.6.0rc1.dist-info → dkist_processing_common-11.7.0.dist-info}/METADATA +4 -4
  21. {dkist_processing_common-11.6.0rc1.dist-info → dkist_processing_common-11.7.0.dist-info}/RECORD +23 -22
  22. changelog/268.misc.rst +0 -1
  23. {dkist_processing_common-11.6.0rc1.dist-info → dkist_processing_common-11.7.0.dist-info}/WHEEL +0 -0
  24. {dkist_processing_common-11.6.0rc1.dist-info → dkist_processing_common-11.7.0.dist-info}/top_level.txt +0 -0
@@ -6,16 +6,22 @@ from astropy.io import fits
6
6
 
7
7
  from dkist_processing_common.models.constants import BudName
8
8
  from dkist_processing_common.models.fits_access import FitsAccessBase
9
+ from dkist_processing_common.models.fits_access import MetadataKey
9
10
  from dkist_processing_common.models.tags import StemName
10
11
  from dkist_processing_common.models.task_name import TaskName
12
+ from dkist_processing_common.parsers.average_bud import TaskAverageBud
11
13
  from dkist_processing_common.parsers.cs_step import CSStepFlower
12
14
  from dkist_processing_common.parsers.cs_step import NumCSStepBud
13
15
  from dkist_processing_common.parsers.dsps_repeat import DspsRepeatNumberFlower
14
16
  from dkist_processing_common.parsers.dsps_repeat import TotalDspsRepeatsBud
15
17
  from dkist_processing_common.parsers.experiment_id_bud import ContributingExperimentIdsBud
16
18
  from dkist_processing_common.parsers.experiment_id_bud import ExperimentIdBud
19
+ from dkist_processing_common.parsers.id_bud import TaskContributingIdsBud
17
20
  from dkist_processing_common.parsers.near_bud import NearFloatBud
18
21
  from dkist_processing_common.parsers.near_bud import TaskNearFloatBud
22
+ from dkist_processing_common.parsers.observing_program_id_bud import (
23
+ TaskContributingObservingProgramExecutionIdsBud,
24
+ )
19
25
  from dkist_processing_common.parsers.proposal_id_bud import ContributingProposalIdsBud
20
26
  from dkist_processing_common.parsers.proposal_id_bud import ProposalIdBud
21
27
  from dkist_processing_common.parsers.retarder import RetarderNameBud
@@ -31,9 +37,11 @@ from dkist_processing_common.parsers.time import MaximumCadenceBud
31
37
  from dkist_processing_common.parsers.time import MinimumCadenceBud
32
38
  from dkist_processing_common.parsers.time import ObsIpStartTimeBud
33
39
  from dkist_processing_common.parsers.time import ReadoutExpTimeFlower
40
+ from dkist_processing_common.parsers.time import TaskDateBeginBud
41
+ from dkist_processing_common.parsers.time import TaskDatetimeBudBase
34
42
  from dkist_processing_common.parsers.time import TaskExposureTimesBud
35
43
  from dkist_processing_common.parsers.time import TaskReadoutExpTimesBud
36
- from dkist_processing_common.parsers.time import TaskTimeBudBase
44
+ from dkist_processing_common.parsers.time import TaskRoundTimeBudBase
37
45
  from dkist_processing_common.parsers.time import VarianceCadenceBud
38
46
  from dkist_processing_common.parsers.unique_bud import TaskUniqueBud
39
47
  from dkist_processing_common.parsers.unique_bud import UniqueBud
@@ -46,6 +54,7 @@ class FitsReaderMetadataKey(StrEnum):
46
54
  near_thing = "near"
47
55
  proposal_id = "ID___013"
48
56
  experiment_id = "ID___012"
57
+ observing_program_execution_id = "ID___008"
49
58
  ip_task_type = "DKIST004"
50
59
  ip_start_time = "DKIST011"
51
60
  fpa_exposure_time_ms = "XPOSURE"
@@ -66,12 +75,38 @@ class FitsReaderMetadataKey(StrEnum):
66
75
  class FitsReader(FitsAccessBase):
67
76
  def __init__(self, hdu, name):
68
77
  super().__init__(hdu, name)
69
- for key in FitsReaderMetadataKey:
70
- self._set_metadata_key_value(key=key, optional=True)
71
- self._set_metadata_key_value(
72
- FitsReaderMetadataKey.roundable_time, optional=True, default=0.0
73
- )
78
+ self.thing_id: int = self.header.get(FitsReaderMetadataKey.thing_id)
79
+ self.constant_thing: int = self.header.get(FitsReaderMetadataKey.constant_thing)
80
+ self.near_thing: float = self.header.get(FitsReaderMetadataKey.near_thing)
74
81
  self.name = name
82
+ self.proposal_id: str = self.header.get(FitsReaderMetadataKey.proposal_id)
83
+ self.experiment_id: str = self.header.get(FitsReaderMetadataKey.experiment_id)
84
+ self.observing_program_execution_id: str = self.header.get(
85
+ FitsReaderMetadataKey.observing_program_execution_id
86
+ )
87
+ self.ip_task_type: str = self.header.get(FitsReaderMetadataKey.ip_task_type)
88
+ self.ip_start_time: str = self.header.get(FitsReaderMetadataKey.ip_start_time)
89
+ self.fpa_exposure_time_ms: float = self.header.get(
90
+ FitsReaderMetadataKey.fpa_exposure_time_ms
91
+ )
92
+ self.sensor_readout_exposure_time_ms: float = self.header.get(
93
+ FitsReaderMetadataKey.sensor_readout_exposure_time_ms
94
+ )
95
+ self.num_raw_frames_per_fpa: int = self.header.get(
96
+ FitsReaderMetadataKey.num_raw_frames_per_fpa
97
+ )
98
+ self.num_dsps_repeats: int = self.header.get(FitsReaderMetadataKey.num_dsps_repeats)
99
+ self.current_dsps_repeat: int = self.header.get(FitsReaderMetadataKey.current_dsps_repeat)
100
+ self.time_obs: str = self.header.get(FitsReaderMetadataKey.time_obs)
101
+ self.gos_level3_status: str = self.header.get(FitsReaderMetadataKey.gos_level3_status)
102
+ self.gos_level3_lamp_status: str = self.header.get(
103
+ FitsReaderMetadataKey.gos_level3_lamp_status
104
+ )
105
+ self.gos_level0_status: str = self.header.get(FitsReaderMetadataKey.gos_level0_status)
106
+ self.gos_retarder_status: str = self.header.get(FitsReaderMetadataKey.gos_retarder_status)
107
+ self.gos_polarizer_status: str = self.header.get(FitsReaderMetadataKey.gos_polarizer_status)
108
+ self.wavelength: str = self.header.get(FitsReaderMetadataKey.wavelength)
109
+ self.roundable_time: float = self.header.get(FitsReaderMetadataKey.roundable_time, 0.0)
75
110
 
76
111
 
77
112
  @pytest.fixture()
@@ -85,6 +120,7 @@ def basic_header_objs():
85
120
  "DKIST004": "observe",
86
121
  "ID___012": "experiment_id_1",
87
122
  "ID___013": "proposal_id_1",
123
+ "ID___008": "observing_program_execution_id_1",
88
124
  "XPOSURE": 0.0013000123,
89
125
  "TEXPOSUR": 10.0,
90
126
  "NSUMEXP": 3,
@@ -103,6 +139,7 @@ def basic_header_objs():
103
139
  "DKIST004": "observe",
104
140
  "ID___012": "experiment_id_1",
105
141
  "ID___013": "proposal_id_1",
142
+ "ID___008": "observing_program_execution_id_2",
106
143
  "XPOSURE": 0.0013000987,
107
144
  "TEXPOSUR": 10.0,
108
145
  "NSUMEXP": 3,
@@ -122,6 +159,7 @@ def basic_header_objs():
122
159
  "DKIST004": "dark",
123
160
  "ID___012": "experiment_id_2",
124
161
  "ID___013": "proposal_id_2",
162
+ "ID___008": "observing_program_execution_id_2",
125
163
  "XPOSURE": 12.345,
126
164
  "TEXPOSUR": 1.123456789,
127
165
  "NSUMEXP": 1,
@@ -142,6 +180,7 @@ def basic_header_objs():
142
180
  "DKIST004": "observe",
143
181
  "ID___012": "experiment_id_1",
144
182
  "ID___013": "proposal_id_1",
183
+ "ID___008": "observing_program_execution_id_1",
145
184
  "XPOSURE": 100.0,
146
185
  "TEXPOSUR": 11.0,
147
186
  "NSUMEXP": 4,
@@ -157,6 +196,7 @@ def basic_header_objs():
157
196
  {
158
197
  "DKIST004": "gain",
159
198
  "ID___013": "proposal_id_1",
199
+ "ID___008": "observing_program_execution_id_1",
160
200
  "id_key": 0,
161
201
  "constant": 6.28,
162
202
  "near": 1.23,
@@ -386,6 +426,38 @@ def test_single_value_single_key_flower(basic_header_objs):
386
426
  assert petals[2].keys == ["thing2"]
387
427
 
388
428
 
429
+ @pytest.mark.parametrize(
430
+ "ip_task_type, expected_value",
431
+ [
432
+ pytest.param("dark", (1655503202.0,), id="single_task_type"),
433
+ pytest.param(["dark", "gain"], (1655503202.0, 1655503203.0), id="task_type_list"),
434
+ pytest.param(
435
+ ["dark", "gain", "observe"],
436
+ (1655503200.0, 1655503201.0, 1655503202.0, 1655503203.0, 1655503203.0),
437
+ id="task_type_list2",
438
+ ),
439
+ ],
440
+ )
441
+ def test_task_datetime_base_bud(basic_header_objs, ip_task_type, expected_value):
442
+ """
443
+ Given: A set of headers with a datetime value that does not need to be rounded
444
+ When: Ingesting headers with a `TaskDatetimeBudBase` bud and asking for the value
445
+ Then: The bud's value is the list of datetimes in seconds
446
+ """
447
+ bud = TaskDatetimeBudBase(
448
+ stem_name="datetimes",
449
+ metadata_key=FitsReaderMetadataKey.time_obs,
450
+ ip_task_types=ip_task_type,
451
+ )
452
+ assert bud.stem_name == "datetimes"
453
+ for fo in basic_header_objs:
454
+ key = fo.name
455
+ bud.update(key, fo)
456
+
457
+ petal = list(bud.petals)
458
+ assert petal[0].value == expected_value
459
+
460
+
389
461
  @pytest.mark.parametrize(
390
462
  "ip_task_type, expected_value",
391
463
  [
@@ -394,13 +466,13 @@ def test_single_value_single_key_flower(basic_header_objs):
394
466
  pytest.param(["dark", "gain", "observe"], (0.0, 2.34), id="task_type_list2"),
395
467
  ],
396
468
  )
397
- def test_task_time_base_bud(basic_header_objs, ip_task_type, expected_value):
469
+ def test_task_round_time_base_bud(basic_header_objs, ip_task_type, expected_value):
398
470
  """
399
- Given: A set of headers with a value that needs to be rounded
400
- When: Ingesting headers with a `TaskTimeBudBase` bud and asking for the value
471
+ Given: A set of headers with a time value that needs to be rounded
472
+ When: Ingesting headers with a `TaskRoundTimeBudBase` bud and asking for the value
401
473
  Then: The bud's value is the header constant value
402
474
  """
403
- bud = TaskTimeBudBase(
475
+ bud = TaskRoundTimeBudBase(
404
476
  stem_name="rounded_time", metadata_key="roundable_time", ip_task_types=ip_task_type
405
477
  )
406
478
  assert bud.stem_name == "rounded_time"
@@ -522,6 +594,50 @@ def test_contributing_experiment_ids_bud(basic_header_objs):
522
594
  assert sorted(list(petal[0].value)) == ["experiment_id_1", "experiment_id_2"]
523
595
 
524
596
 
597
+ def test_task_contributing_ids_bud(basic_header_objs):
598
+ """
599
+ Given: A set of headers with experiment ID values for different tasks
600
+ When: Ingesting the headers with a TaskContributingIdsBud for the dark task
601
+ Then: The Bud's petal is just the experiment ID for the dark task
602
+ """
603
+ bud = TaskContributingIdsBud(
604
+ constant_name=BudName.experiment_id,
605
+ metadata_key=MetadataKey.experiment_id,
606
+ ip_task_types=TaskName.dark,
607
+ )
608
+ assert bud.stem_name == BudName.experiment_id.value
609
+ for fo in basic_header_objs:
610
+ key = fo.name
611
+ bud.update(key, fo)
612
+
613
+ petal = list(bud.petals)
614
+ assert len(petal) == 1
615
+ assert sorted(list(petal[0].value)) == ["experiment_id_2"]
616
+
617
+
618
+ def test_task_contributing_observing_program_execution_ids_bud(basic_header_objs):
619
+ """
620
+ Given: A set of headers with observing program execution ID values for different tasks
621
+ When: Ingesting the headers with a TaskContributingObservingProgramExecutionIdsBud for a task type
622
+ Then: The Bud's petal is the observing program execution IDs for the that task type
623
+ """
624
+ bud = TaskContributingObservingProgramExecutionIdsBud(
625
+ constant_name="NOT_A_REAL_BUD",
626
+ ip_task_types=TaskName.observe,
627
+ )
628
+ assert bud.stem_name == "NOT_A_REAL_BUD"
629
+ for fo in basic_header_objs:
630
+ key = fo.name
631
+ bud.update(key, fo)
632
+
633
+ petal = list(bud.petals)
634
+ assert len(petal) == 1
635
+ assert sorted(list(petal[0].value)) == [
636
+ "observing_program_execution_id_1",
637
+ "observing_program_execution_id_2",
638
+ ]
639
+
640
+
525
641
  def test_exp_time_flower(basic_header_objs):
526
642
  """
527
643
  Given: A set of filepaths and associated headers with XPOSURE keywords
@@ -783,6 +899,23 @@ def test_variance_cadence_bud(basic_header_objs):
783
899
  assert petal[0].value == 0.25
784
900
 
785
901
 
902
+ def test_task_date_begin_bud(basic_header_objs):
903
+ """
904
+ Given: A set of filepaths and associated headers with time_obs metadata keys
905
+ When: Ingesting with the TaskDateBeginBud
906
+ Then: The correct value is returned
907
+ """
908
+ bud = TaskDateBeginBud(constant_name=BudName.dark_date_begin, ip_task_types=TaskName.dark)
909
+ assert bud.stem_name == BudName.dark_date_begin.value
910
+ for fo in basic_header_objs:
911
+ key = fo.name
912
+ bud.update(key, fo)
913
+
914
+ petal = list(bud.petals)
915
+ assert len(petal) == 1
916
+ assert petal[0].value == "2022-06-17T22:00:02.000000"
917
+
918
+
786
919
  def test_observe_wavelength_bud(basic_header_objs):
787
920
  """
788
921
  Given: A set of headers with wavelength values
@@ -935,4 +1068,23 @@ def test_retarder_name_bud_error(bad_polcal_header_objs):
935
1068
  _ = bud.bud
936
1069
 
937
1070
 
1071
+ def test_task_average_bud(basic_header_objs):
1072
+ """
1073
+ Given: A set of headers with a differently valued header key
1074
+ When: Ingesting headers with an TaskAverageBud and asking for the value
1075
+ Then: The bud's value is the average of the header values of that task type
1076
+ """
1077
+ bud = TaskAverageBud(
1078
+ constant_name="average", metadata_key="near_thing", ip_task_types="observe"
1079
+ )
1080
+ assert bud.stem_name == "average"
1081
+ for fo in basic_header_objs:
1082
+ key = fo.name
1083
+ bud.update(key, fo)
1084
+
1085
+ petal = list(bud.petals)
1086
+ assert len(petal) == 1
1087
+ assert round(petal[0].value, 3) == 1.227
1088
+
1089
+
938
1090
  # TODO: test new stem types that have been added to parse_l0_input_data
@@ -28,12 +28,12 @@ class DummyFitsAccess(FitsAccessBase):
28
28
  auto_squeeze: bool = False, # Because L1 data should always have the right form, right?
29
29
  ):
30
30
  super().__init__(hdu=hdu, name=name, auto_squeeze=auto_squeeze)
31
- self._set_metadata_key_value(DummyMetadataKey.ip_task_type)
32
- self._set_metadata_key_value(DummyMetadataKey.gos_level3_status)
33
- self._set_metadata_key_value(DummyMetadataKey.gos_level3_lamp_status)
34
- self._set_metadata_key_value(DummyMetadataKey.gos_level0_status)
35
- self._set_metadata_key_value(DummyMetadataKey.gos_retarder_status)
36
- self._set_metadata_key_value(DummyMetadataKey.gos_polarizer_status)
31
+ self.ip_task_type = self.header[DummyMetadataKey.ip_task_type]
32
+ self.gos_level3_status = self.header[DummyMetadataKey.gos_level3_status]
33
+ self.gos_level3_lamp_status = self.header[DummyMetadataKey.gos_level3_lamp_status]
34
+ self.gos_level0_status = self.header[DummyMetadataKey.gos_level0_status]
35
+ self.gos_retarder_status = self.header[DummyMetadataKey.gos_retarder_status]
36
+ self.gos_polarizer_status = self.header[DummyMetadataKey.gos_polarizer_status]
37
37
 
38
38
 
39
39
  @pytest.fixture
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-common
3
- Version: 11.6.0rc1
3
+ Version: 11.7.0
4
4
  Summary: Common task classes used by the DKIST science data processing pipelines
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -17,12 +17,12 @@ Requires-Dist: asdf<4.0.0,>=3.5.0
17
17
  Requires-Dist: astropy>=7.0.0
18
18
  Requires-Dist: dkist-fits-specifications<5.0,>=4.0.0
19
19
  Requires-Dist: dkist-header-validator<6.0,>=5.0.0
20
- Requires-Dist: dkist-processing-core==6.0.0rc3
20
+ Requires-Dist: dkist-processing-core==6.0.0
21
21
  Requires-Dist: dkist-processing-pac<4.0,>=3.1
22
22
  Requires-Dist: dkist-service-configuration<5.0,>=4.1.7
23
23
  Requires-Dist: dkist-spectral-lines<4.0,>=3.0.0
24
24
  Requires-Dist: solar-wavelength-calibration<2.0,>=1.0
25
- Requires-Dist: globus-sdk>=3.12.0
25
+ Requires-Dist: globus-sdk<4.0.0,>=3.12.0
26
26
  Requires-Dist: gqlclient[pydantic]==1.2.3
27
27
  Requires-Dist: sqids==0.5.1
28
28
  Requires-Dist: matplotlib>=3.4
@@ -32,7 +32,7 @@ Requires-Dist: object-clerk==1.0.0
32
32
  Requires-Dist: pandas>=1.4.2
33
33
  Requires-Dist: pillow>=10.2.0
34
34
  Requires-Dist: pydantic>=2.0
35
- Requires-Dist: redis==4.6.0
35
+ Requires-Dist: redis==6.4.0
36
36
  Requires-Dist: requests>=2.23
37
37
  Requires-Dist: scipy>=1.15.1
38
38
  Requires-Dist: sunpy>=3.0.0
@@ -1,5 +1,4 @@
1
1
  changelog/.gitempty,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- changelog/268.misc.rst,sha256=radOBJqs--v8J03OdpzBpv79gFMMr4lUSNihKEmiieQ,115
3
2
  dkist_processing_common/__init__.py,sha256=GQ9EBnYhkOnt-qODclAoLS_g5YVhurxfg1tjVtI9rDI,320
4
3
  dkist_processing_common/config.py,sha256=kkFm-Q6jGGoV3Zdf3PSfk3xNYd2vSH0J2R8dBBav3Og,5218
5
4
  dkist_processing_common/manual.py,sha256=bIVVyLsbXMh-g_2L3kGROL-1TtJe0_XviHsp7Br31x8,7023
@@ -22,9 +21,9 @@ dkist_processing_common/codecs/str.py,sha256=Xqt5k8IhLc95KiiNiFwB1JWcVVc6T8AfcLr
22
21
  dkist_processing_common/fonts/Lato-Regular.ttf,sha256=1jbkaDIx-THtoiLViOlE0IK_0726AvkovuRhwPGFslE,656568
23
22
  dkist_processing_common/fonts/__init__.py,sha256=hBvZRtkoGRPlNDWCK-ZePXdSIlThCcjwBDfYaamVgAw,101
24
23
  dkist_processing_common/models/__init__.py,sha256=6LMqemdzVZ87fRrpAsbEnTtWZ02_Gu_oajsUlwGRH_Q,74
25
- dkist_processing_common/models/constants.py,sha256=oghBiVmtVk7YLkaQ2v8oZ-COHlAhmfjSvO9ZwzXCvLw,5828
24
+ dkist_processing_common/models/constants.py,sha256=VDYPfrZtmBDNaWc3EvbpX7Hs87wJ6cA2BqZQJhb2B1Q,19773
26
25
  dkist_processing_common/models/dkist_location.py,sha256=6Nk0wvv4R8ptlrV7BXon7abq4YLvmTdUmPsDN5G8nWc,971
27
- dkist_processing_common/models/fits_access.py,sha256=NLxvIsaFrv4Fui1EhGzkV5XXjv-Vi8DQaLfMHOrRdzc,5949
26
+ dkist_processing_common/models/fits_access.py,sha256=imKqL4-_g6gTR-IeIjZ6qkMhQX3JujdrKFrTd9gOXnw,5605
28
27
  dkist_processing_common/models/flower_pot.py,sha256=_J7DwHM8u5kQfdPCpk5pUmALtLrM1L_h-x8JW5BSjXA,5129
29
28
  dkist_processing_common/models/fried_parameter.py,sha256=ro_H2Eo3I88lRf1wJjZfTc_XOjhgLt4whIQR_sjAFbM,1609
30
29
  dkist_processing_common/models/graphql.py,sha256=oSEcdVsVRytnIDEORLs4b6r3C2Lr7gqEEMHu82zpOOg,5912
@@ -36,30 +35,32 @@ dkist_processing_common/models/parameters.py,sha256=9An3SxUEBI-oYHjICQ_q-IIScTfp
36
35
  dkist_processing_common/models/quality.py,sha256=TmDVbvPbfl5CIIs1ioD5guLUoEOFTfiJESvDjLTLl5s,3981
37
36
  dkist_processing_common/models/tags.py,sha256=0YqiDrismOSds_3XtFBb2dfv0gjMs6CgRv2dJKsSthI,12082
38
37
  dkist_processing_common/models/task_name.py,sha256=uAl7qTK4Xx1nqPAhNAe5nAXqxwPwQzAq58YmoccX6xQ,567
39
- dkist_processing_common/models/telemetry.py,sha256=LrALTxF1KNlX2ANsGEx2e0a5EP5eobwUGfgLLNu43r8,606
38
+ dkist_processing_common/models/telemetry.py,sha256=XVcLNgHCZsP9L7oYiklyLUoqQtWt_xjEkuf70Kbudz4,839
40
39
  dkist_processing_common/models/wavelength.py,sha256=4UhRVoNvCHZitXo5S1oRdewadbmGfmDK6wetMV06POA,967
41
40
  dkist_processing_common/parsers/__init__.py,sha256=XJQzHtPb78F6-qXXKXjyztc0x-aHVlgv1C_l4dR88tI,67
41
+ dkist_processing_common/parsers/average_bud.py,sha256=86zgcgLdDd8_Stf4RhZ9wfsmeuLXLA1jc-zcPHAz4YQ,1454
42
42
  dkist_processing_common/parsers/cs_step.py,sha256=rL2gdstKEV5aqdPDs3a5EuUaOT_6YXDJVqIPIVKSw8M,6450
43
43
  dkist_processing_common/parsers/dsps_repeat.py,sha256=Jg6oI9-PtFQbQHbGul6_eiRzBKr0Z2HIGOitG0G5CD4,1642
44
- dkist_processing_common/parsers/experiment_id_bud.py,sha256=5ARnj6M5PEef_5-IVD1W6zl5DkYqx8eyt5-26Se-X2s,804
45
- dkist_processing_common/parsers/id_bud.py,sha256=XohLGwVC-AD66qJe6I3AKdm5ArQIf3ryfDzPCQ5hEBk,1688
46
- dkist_processing_common/parsers/l0_fits_access.py,sha256=gbE_4vFexOeKNLvqWvUFNxg-zBRpY1rCfRpIWHFpt_0,1009
47
- dkist_processing_common/parsers/l1_fits_access.py,sha256=dJbbKRExoRpl94cSpgZg5SQZLh4tkV8p0vsKO8P8FLE,2814
48
- dkist_processing_common/parsers/near_bud.py,sha256=lOHrjERKh3ooFusbd3_N-IDDpEOD9VWq2G82_wJ2c08,4002
49
- dkist_processing_common/parsers/proposal_id_bud.py,sha256=tKW8dwh7XkECU1Z0T1E4AHj42emV3-RRVBBpVUZloTk,753
44
+ dkist_processing_common/parsers/experiment_id_bud.py,sha256=LUehIqB56hmDwARph1itSUsPenFHScfrrRuZmcCi4xA,960
45
+ dkist_processing_common/parsers/id_bud.py,sha256=dWNr-njRqDzTnXa2WLZQEb48ul7RdeGzSsURt74978w,2340
46
+ dkist_processing_common/parsers/l0_fits_access.py,sha256=Ol3eo8yyNbGqbN2whhD2jBNoqhOrlwmH8DbMmCLtNk0,1033
47
+ dkist_processing_common/parsers/l1_fits_access.py,sha256=BWojvcFl_RmkrRWHe1WxDCsPeexervlRFPothuXAyoI,4410
48
+ dkist_processing_common/parsers/near_bud.py,sha256=ithuQpnAaK5MDXFhMPNoNIGuF2M94q0n6_qofGl-CdU,4006
49
+ dkist_processing_common/parsers/observing_program_id_bud.py,sha256=foESQTMShcp-aPGZFcLEdXIdi5Y6vFeus-W447olQEc,884
50
+ dkist_processing_common/parsers/proposal_id_bud.py,sha256=VvVoYM-MUivra2fMZOSAOgGQslLROZxFuwHnuAZyAjc,942
50
51
  dkist_processing_common/parsers/quality.py,sha256=hhCT-bHODOYSp9jvgsiWfYcLYtQCSWgfuy0xZnkYXwo,1141
51
52
  dkist_processing_common/parsers/retarder.py,sha256=AvDrMLmxuwKOIP3NNm9mtV7dV2kw_aqW92hTLd1UdK0,1507
52
- dkist_processing_common/parsers/single_value_single_key_flower.py,sha256=3mcPOG6dEU7IHWm0Jtjx3FVzbxAJCiKtLyVwZqFd2lA,1425
53
+ dkist_processing_common/parsers/single_value_single_key_flower.py,sha256=Xy0_55H2VInGkMKSPOQjcYiMW0DFlDOn27n5jC2PKzE,1358
53
54
  dkist_processing_common/parsers/task.py,sha256=nuGxDl5_gjbi07jMOrCPD5J9L51lyZZ6VS25FuDC3V8,3990
54
- dkist_processing_common/parsers/time.py,sha256=z9zHV3Fz6ebEDgiPhv6H-aAS8e-sSW3EkBbPbtHpzGY,8576
55
+ dkist_processing_common/parsers/time.py,sha256=rbtC86d0-Dd1arsxitpixA8Vzg_GD2vE3uFQVN7vSqw,11686
55
56
  dkist_processing_common/parsers/unique_bud.py,sha256=IkS2zZkVzn3PRsYF2ksBkUxl_HJ4TxCqBKJUs1WdL54,3310
56
57
  dkist_processing_common/parsers/wavelength.py,sha256=P5C9mG8DAKK3GB3vWNRBI5l7pAW68lJK-kw-4eqERuQ,612
57
58
  dkist_processing_common/tasks/__init__.py,sha256=l23ctjNsKJbHbbqaZBMeOPaOtw0hmITEljI_JJ-CVsU,627
58
59
  dkist_processing_common/tasks/assemble_movie.py,sha256=1ixDG-f4ODt0vywqVccG3aodLljVO5OGlvuMO9EEvcU,12767
59
- dkist_processing_common/tasks/base.py,sha256=MseRBypflKFTSRjkNzrumbc6OXA8f_gWy17odWlfEhk,12351
60
+ dkist_processing_common/tasks/base.py,sha256=itAHCvzcodo-q8_AjpWoRaM86BlcjWDpCIiUP7uwmP0,13236
60
61
  dkist_processing_common/tasks/l1_output_data.py,sha256=D4S3kH2uRKp1b8_xF2YiWO_mGj19UJS5wKQZ4OdatGs,10568
61
62
  dkist_processing_common/tasks/output_data_base.py,sha256=r1Bu3FX5zTVj66GTMWtaV_NdhxjyjSm661Bt2Mxmfi4,3685
62
- dkist_processing_common/tasks/parse_l0_input_data.py,sha256=DV38chKJRxxXy0Q4FkZIomWic6Q8UW-XV8nO8LLafO4,9573
63
+ dkist_processing_common/tasks/parse_l0_input_data.py,sha256=KguXT0Xavynu7C8NFMjsV4628LRoTvfeSuApb6v4Neg,18835
63
64
  dkist_processing_common/tasks/quality_metrics.py,sha256=cvGF6tJ8yAvxOvkeG3tWxYwL885BrFW5X3V7_MSzL-A,12481
64
65
  dkist_processing_common/tasks/teardown.py,sha256=rwT9lWINVDF11-az_nx-Z5ykMTX_SJCchobpU6sErgk,2360
65
66
  dkist_processing_common/tasks/transfer_input_data.py,sha256=DAYfS-B1o-iBT9MXU-TiJG4Hv05Z0c_JzPrnFgvnK9g,5786
@@ -84,7 +85,7 @@ dkist_processing_common/tests/test_codecs.py,sha256=XuvG1sG8DECMPmxtDEi98TxlvTSA
84
85
  dkist_processing_common/tests/test_constants.py,sha256=I_KcJs7ScCn53GYhEO6qjWrrnfZuyC1IVYOy87Pjlg4,6565
85
86
  dkist_processing_common/tests/test_cs_step.py,sha256=RA0QD3D8eaL3YSOL_gIJ9wkngy14RQ2jbD-05KAziW4,2408
86
87
  dkist_processing_common/tests/test_dkist_location.py,sha256=-_OoSw4SZDLFyIuOltHvM6PQjxm5hTiJQsiTGZ8Sadc,456
87
- dkist_processing_common/tests/test_fits_access.py,sha256=IYLrGRq71ve_yKJA6N-Gxz2-r9iISExwM8Zt6bB-jJI,13832
88
+ dkist_processing_common/tests/test_fits_access.py,sha256=a50B4IAAH5NH5zeudTqyy0b5uWKJwJuzQLUdK1LoOHM,12832
88
89
  dkist_processing_common/tests/test_flower_pot.py,sha256=X9_UI3maa3ZQncV3jYHgovWnawDsdEkEB5vw6EAB96o,3151
89
90
  dkist_processing_common/tests/test_fried_parameter.py,sha256=iXtlQIifZ6cDOkEi-YDgP3oAlss2loq08Uohgvy1byQ,1295
90
91
  dkist_processing_common/tests/test_input_dataset.py,sha256=pQ01rWAkQ2XQojyHWzAqeOdrMXshNcgEVL5I_9bBTdo,9610
@@ -93,16 +94,16 @@ dkist_processing_common/tests/test_interservice_bus_mixin.py,sha256=IptJkW7Qeu2Y
93
94
  dkist_processing_common/tests/test_manual_processing.py,sha256=iHF7yQPlar9niYAGXtFv28Gw3Undlds38yMfszk4ccY,1037
94
95
  dkist_processing_common/tests/test_output_data_base.py,sha256=D8b1XKvbE3C5cGOiHq58yJ2pzQL3iL0wLZy_AkDdB9Y,3085
95
96
  dkist_processing_common/tests/test_parameters.py,sha256=CUEUIGBPMCUXPll0G0UxFDbMXi8lmnjRwXBarGX1PAQ,14033
96
- dkist_processing_common/tests/test_parse_l0_input_data.py,sha256=rwmtQJQo7SNdzPVzMOFxXS35H_nOLWYgbZsc9QuMEgc,10503
97
+ dkist_processing_common/tests/test_parse_l0_input_data.py,sha256=9OOqeMX8ReQO67ldoMHOBKLQg7Nd5qWHOEoHygcN5Ic,11889
97
98
  dkist_processing_common/tests/test_publish_catalog_messages.py,sha256=l6Wga1s2wNBIf4wGZ78ZIO_rtqjdidmtvlN9nMnQUAs,3222
98
99
  dkist_processing_common/tests/test_quality.py,sha256=IPz7liXcmoqWIsY78oX07Ui0nWHxoUH2FbKGEmMle7E,10258
99
100
  dkist_processing_common/tests/test_quality_mixin.py,sha256=qanm3SXEiLb0OJDawbh8ixVAG9uRglFMzwxTeYxkDsM,55369
100
101
  dkist_processing_common/tests/test_scratch.py,sha256=WO8C1VJlkcC5IzST9Hj08CyyrINwYcN8pyteD9x38xs,16482
101
- dkist_processing_common/tests/test_stems.py,sha256=8Im6TtEEwkU6MN5wAAbq2gL4Z5bCQp-rbVH_QEdc880,32316
102
+ dkist_processing_common/tests/test_stems.py,sha256=p__51u-b8vfWLI71aLxF3w2tcWtv6M6DyHJ7_6FZMHI,38949
102
103
  dkist_processing_common/tests/test_submit_dataset_metadata.py,sha256=LHEyjoIxJHXXssqKkr8Qn1NzzHD1FLJiD3lP8yaLiXU,3764
103
104
  dkist_processing_common/tests/test_tags.py,sha256=w5gmVfp3Ck92KNV80lJQRMz0OYgTYzWtwVUFWv1b5i8,5024
104
105
  dkist_processing_common/tests/test_task_name.py,sha256=kqFr59XX2K87xzfTlClzDV4-Je1dx72LvdaJ22UE8UU,1233
105
- dkist_processing_common/tests/test_task_parsing.py,sha256=leXQrIWU5CIkUWRaiG0hW4NCmFtlpxHNsgl4Jz2EghA,4368
106
+ dkist_processing_common/tests/test_task_parsing.py,sha256=2_OOmeZQWD17XAd_ECYmodJzD_iRIBKjCYdGh38BOx4,4421
106
107
  dkist_processing_common/tests/test_teardown.py,sha256=DaliHSGsiQBZaFkf5wb3XBo6rHNPmx2bmQtVymYeBN4,5601
107
108
  dkist_processing_common/tests/test_transfer_input_data.py,sha256=eyAAWXpTHQ8aew87-MncWpYBn4DAZrTSOL3LvlQfR5Q,12611
108
109
  dkist_processing_common/tests/test_transfer_l1_output_data.py,sha256=PVGDJBEUk4kAeu8ivrhlCE7yd29R18t9kZLFx-mpBwY,2063
@@ -118,7 +119,7 @@ docs/landing_page.rst,sha256=aPAuXFhBx73lEZ59B6E6JXxkK0LlxzD0n-HXqHrfumQ,746
118
119
  docs/make.bat,sha256=mBAhtURwhQ7yc95pqwJzlhqBSvRknr1aqZ5s8NKvdKs,4513
119
120
  docs/requirements.txt,sha256=Kbl_X4c7RQZw035YTeNB63We6I7pvXFU4T0Uflp2yDY,29
120
121
  licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
121
- dkist_processing_common-11.6.0rc1.dist-info/METADATA,sha256=xEnugllrpPzQIuFwW_mcD052MQ_KW6HMlYCyf9w9K3k,13319
122
- dkist_processing_common-11.6.0rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
123
- dkist_processing_common-11.6.0rc1.dist-info/top_level.txt,sha256=LJhd1W-Vn90K8HnQDIE4r52YDpUjjMWDnllAWHBByW0,48
124
- dkist_processing_common-11.6.0rc1.dist-info/RECORD,,
122
+ dkist_processing_common-11.7.0.dist-info/METADATA,sha256=7i9wdutuK-B2gqZRKmi2kLRkP0aUuAv04w-RpS-pt24,13320
123
+ dkist_processing_common-11.7.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
124
+ dkist_processing_common-11.7.0.dist-info/top_level.txt,sha256=LJhd1W-Vn90K8HnQDIE4r52YDpUjjMWDnllAWHBByW0,48
125
+ dkist_processing_common-11.7.0.dist-info/RECORD,,
changelog/268.misc.rst DELETED
@@ -1 +0,0 @@
1
- Integrate dkist-processing-core 6.0.0 which brings a swap of Elastic APM to OpenTelemetry for metrics and tracing.