dkist-processing-common 11.7.0rc3__py3-none-any.whl → 11.7.0rc4__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.
@@ -44,9 +44,9 @@ class BudName(StrEnum):
44
44
  software_binning_y = "SOFTWARE_BINNING_Y"
45
45
  hls_version = "HLS_VERSION"
46
46
  # Multi-task buds start here:
47
- dark_observing_program_execution_id = "DARK_OBSERVING_PROGRAM_EXECUTION_ID"
48
- solar_gain_observing_program_execution_id = "SOLAR_GAIN_OBSERVING_PROGRAM_EXECUTION_ID"
49
- polcal_observing_program_execution_id = "POLCAL_OBSERVING_PROGRAM_EXECUTION_ID"
47
+ dark_observing_program_execution_ids = "DARK_OBSERVING_PROGRAM_EXECUTION_IDS"
48
+ solar_gain_observing_program_execution_ids = "SOLAR_GAIN_OBSERVING_PROGRAM_EXECUTION_IDS"
49
+ polcal_observing_program_execution_ids = "POLCAL_OBSERVING_PROGRAM_EXECUTION_IDS"
50
50
  dark_date_begin = "DARK_DATE_BEGIN"
51
51
  solar_gain_date_begin = "SOLAR_GAIN_DATE_BEGIN"
52
52
  polcal_date_begin = "POLCAL_DATE_BEGIN"
@@ -285,21 +285,21 @@ class ConstantsBase:
285
285
  # Multi-task constants start here:
286
286
 
287
287
  @property
288
- def dark_observing_program_execution_id(self) -> list[str]:
289
- """Return the observing program execution id constant for the dark task."""
290
- observing_programs = self._db_dict[BudName.dark_observing_program_execution_id]
288
+ def dark_observing_program_execution_ids(self) -> list[str]:
289
+ """Return the observing program execution ids constant for the dark task."""
290
+ observing_programs = self._db_dict[BudName.dark_observing_program_execution_ids]
291
291
  return list(observing_programs)
292
292
 
293
293
  @property
294
- def solar_gain_observing_program_execution_id(self) -> list[str]:
295
- """Return the observing program execution id constant for the solar_gain task."""
296
- observing_programs = self._db_dict[BudName.solar_gain_observing_program_execution_id]
294
+ def solar_gain_observing_program_execution_ids(self) -> list[str]:
295
+ """Return the observing program execution ids constant for the solar_gain task."""
296
+ observing_programs = self._db_dict[BudName.solar_gain_observing_program_execution_ids]
297
297
  return list(observing_programs)
298
298
 
299
299
  @property
300
- def polcal_observing_program_execution_id(self) -> list[str]:
301
- """Return the observing program execution id constant."""
302
- observing_programs = self._db_dict[BudName.polcal_observing_program_execution_id]
300
+ def polcal_observing_program_execution_ids(self) -> list[str]:
301
+ """Return the observing program execution ids constant."""
302
+ observing_programs = self._db_dict[BudName.polcal_observing_program_execution_ids]
303
303
  return list(observing_programs)
304
304
 
305
305
  @property
@@ -0,0 +1,24 @@
1
+ """Observing Program Id parser."""
2
+
3
+ from typing import Callable
4
+
5
+ from dkist_processing_common.models.fits_access import MetadataKey
6
+ from dkist_processing_common.parsers.id_bud import TaskContributingIdsBud
7
+ from dkist_processing_common.parsers.task import passthrough_header_ip_task
8
+
9
+
10
+ class TaskContributingObservingProgramExecutionIdsBud(TaskContributingIdsBud):
11
+ """Class to create a Bud for the supporting observing_program_ids."""
12
+
13
+ def __init__(
14
+ self,
15
+ constant_name: str,
16
+ ip_task_types: str | list[str],
17
+ task_type_parsing_function: Callable = passthrough_header_ip_task,
18
+ ):
19
+ super().__init__(
20
+ constant_name=constant_name,
21
+ metadata_key=MetadataKey.observing_program_execution_id,
22
+ ip_task_types=ip_task_types,
23
+ task_type_parsing_function=task_type_parsing_function,
24
+ )
@@ -37,7 +37,9 @@ from dkist_processing_common.models.task_name import TaskName
37
37
  from dkist_processing_common.parsers.average_bud import TaskAverageBud
38
38
  from dkist_processing_common.parsers.experiment_id_bud import ContributingExperimentIdsBud
39
39
  from dkist_processing_common.parsers.experiment_id_bud import ExperimentIdBud
40
- from dkist_processing_common.parsers.id_bud import TaskContributingIdsBud
40
+ from dkist_processing_common.parsers.observing_program_id_bud import (
41
+ TaskContributingObservingProgramExecutionIdsBud,
42
+ )
41
43
  from dkist_processing_common.parsers.proposal_id_bud import ContributingProposalIdsBud
42
44
  from dkist_processing_common.parsers.proposal_id_bud import ProposalIdBud
43
45
  from dkist_processing_common.parsers.task import parse_header_ip_task_with_gains
@@ -88,20 +90,17 @@ def dataset_extra_bud_factory() -> list[S]:
88
90
  constant_name=BudName.hls_version,
89
91
  metadata_key=MetadataKey.hls_version,
90
92
  ),
91
- TaskContributingIdsBud(
92
- constant_name=BudName.dark_observing_program_execution_id,
93
- metadata_key=MetadataKey.observing_program_execution_id,
93
+ TaskContributingObservingProgramExecutionIdsBud(
94
+ constant_name=BudName.dark_observing_program_execution_ids,
94
95
  ip_task_types=TaskName.dark,
95
96
  ),
96
- TaskContributingIdsBud(
97
- constant_name=BudName.solar_gain_observing_program_execution_id,
98
- metadata_key=MetadataKey.observing_program_execution_id,
97
+ TaskContributingObservingProgramExecutionIdsBud(
98
+ constant_name=BudName.solar_gain_observing_program_execution_ids,
99
99
  ip_task_types=TaskName.solar_gain,
100
100
  task_type_parsing_function=parse_header_ip_task_with_gains,
101
101
  ),
102
- TaskContributingIdsBud(
103
- constant_name=BudName.polcal_observing_program_execution_id,
104
- metadata_key=MetadataKey.observing_program_execution_id,
102
+ TaskContributingObservingProgramExecutionIdsBud(
103
+ constant_name=BudName.polcal_observing_program_execution_ids,
105
104
  ip_task_types=TaskName.polcal,
106
105
  ),
107
106
  TaskUniqueBud(
@@ -120,11 +119,6 @@ def dataset_extra_bud_factory() -> list[S]:
120
119
  metadata_key=MetadataKey.num_raw_frames_per_fpa,
121
120
  ip_task_types=TaskName.polcal,
122
121
  ),
123
- TaskUniqueBud(
124
- constant_name=BudName.dark_telescope_tracking_mode,
125
- metadata_key=MetadataKey.telescope_tracking_mode,
126
- ip_task_types=TaskName.dark,
127
- ),
128
122
  TaskUniqueBud(
129
123
  constant_name=BudName.solar_gain_telescope_tracking_mode,
130
124
  metadata_key=MetadataKey.telescope_tracking_mode,
@@ -136,11 +130,6 @@ def dataset_extra_bud_factory() -> list[S]:
136
130
  metadata_key=MetadataKey.telescope_tracking_mode,
137
131
  ip_task_types=TaskName.polcal,
138
132
  ),
139
- TaskUniqueBud(
140
- constant_name=BudName.dark_coude_table_tracking_mode,
141
- metadata_key=MetadataKey.coude_table_tracking_mode,
142
- ip_task_types=TaskName.dark,
143
- ),
144
133
  TaskUniqueBud(
145
134
  constant_name=BudName.solar_gain_coude_table_tracking_mode,
146
135
  metadata_key=MetadataKey.coude_table_tracking_mode,
@@ -152,11 +141,6 @@ def dataset_extra_bud_factory() -> list[S]:
152
141
  metadata_key=MetadataKey.coude_table_tracking_mode,
153
142
  ip_task_types=TaskName.polcal,
154
143
  ),
155
- TaskUniqueBud(
156
- constant_name=BudName.dark_telescope_scanning_mode,
157
- metadata_key=MetadataKey.telescope_scanning_mode,
158
- ip_task_types=TaskName.dark,
159
- ),
160
144
  TaskUniqueBud(
161
145
  constant_name=BudName.solar_gain_telescope_scanning_mode,
162
146
  metadata_key=MetadataKey.telescope_scanning_mode,
@@ -260,7 +260,7 @@ def test_subclass_flowers(visp_parse_inputs_task, max_cs_step_time_sec):
260
260
  tag_pot, constant_pot = visp_parse_inputs_task.make_flower_pots()
261
261
 
262
262
  assert len(tag_pot.stems) == 1
263
- assert len(constant_pot.stems) == 64
263
+ assert len(constant_pot.stems) == 61
264
264
  all_flower_names = [StemName.modstate]
265
265
  assert sorted([f.stem_name for f in tag_pot.stems]) == sorted(all_flower_names)
266
266
  all_bud_names = [b.stem_name for b in default_constant_bud_factory()] + [BudName.num_modstates]
@@ -277,7 +277,7 @@ def test_dataset_extra_bud_factory(visp_parse_inputs_task, max_cs_step_time_sec)
277
277
  stem_names = [f.stem_name.value for f in constant_pot.stems]
278
278
  bud_name_base = [
279
279
  "DATE_BEGIN",
280
- "OBSERVING_PROGRAM_EXECUTION_ID",
280
+ "OBSERVING_PROGRAM_EXECUTION_IDS",
281
281
  "NUM_RAW_FRAMES_PER_FPA",
282
282
  "TELESCOPE_TRACKING_MODE",
283
283
  "COUDE_TABLE_TRACKING_MODE",
@@ -295,8 +295,9 @@ def test_dataset_extra_bud_factory(visp_parse_inputs_task, max_cs_step_time_sec)
295
295
  "GOS_LEVEL0_STATUS",
296
296
  ]
297
297
  for base in bud_name_base:
298
- assert "DARK_" + base in stem_names
299
298
  assert "SOLAR_GAIN_" + base in stem_names
299
+ if "MODE" not in base:
300
+ assert "DARK_" + base in stem_names
300
301
  if "GOS" not in base:
301
302
  assert "POLCAL_" + base in stem_names
302
303
 
@@ -19,6 +19,9 @@ from dkist_processing_common.parsers.experiment_id_bud import ExperimentIdBud
19
19
  from dkist_processing_common.parsers.id_bud import TaskContributingIdsBud
20
20
  from dkist_processing_common.parsers.near_bud import NearFloatBud
21
21
  from dkist_processing_common.parsers.near_bud import TaskNearFloatBud
22
+ from dkist_processing_common.parsers.observing_program_id_bud import (
23
+ TaskContributingObservingProgramExecutionIdsBud,
24
+ )
22
25
  from dkist_processing_common.parsers.proposal_id_bud import ContributingProposalIdsBud
23
26
  from dkist_processing_common.parsers.proposal_id_bud import ProposalIdBud
24
27
  from dkist_processing_common.parsers.retarder import RetarderNameBud
@@ -51,6 +54,7 @@ class FitsReaderMetadataKey(StrEnum):
51
54
  near_thing = "near"
52
55
  proposal_id = "ID___013"
53
56
  experiment_id = "ID___012"
57
+ observing_program_execution_id = "ID___008"
54
58
  ip_task_type = "DKIST004"
55
59
  ip_start_time = "DKIST011"
56
60
  fpa_exposure_time_ms = "XPOSURE"
@@ -77,6 +81,9 @@ class FitsReader(FitsAccessBase):
77
81
  self.name = name
78
82
  self.proposal_id: str = self.header.get(FitsReaderMetadataKey.proposal_id)
79
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
+ )
80
87
  self.ip_task_type: str = self.header.get(FitsReaderMetadataKey.ip_task_type)
81
88
  self.ip_start_time: str = self.header.get(FitsReaderMetadataKey.ip_start_time)
82
89
  self.fpa_exposure_time_ms: float = self.header.get(
@@ -113,6 +120,7 @@ def basic_header_objs():
113
120
  "DKIST004": "observe",
114
121
  "ID___012": "experiment_id_1",
115
122
  "ID___013": "proposal_id_1",
123
+ "ID___008": "observing_program_execution_id_1",
116
124
  "XPOSURE": 0.0013000123,
117
125
  "TEXPOSUR": 10.0,
118
126
  "NSUMEXP": 3,
@@ -131,6 +139,7 @@ def basic_header_objs():
131
139
  "DKIST004": "observe",
132
140
  "ID___012": "experiment_id_1",
133
141
  "ID___013": "proposal_id_1",
142
+ "ID___008": "observing_program_execution_id_2",
134
143
  "XPOSURE": 0.0013000987,
135
144
  "TEXPOSUR": 10.0,
136
145
  "NSUMEXP": 3,
@@ -150,6 +159,7 @@ def basic_header_objs():
150
159
  "DKIST004": "dark",
151
160
  "ID___012": "experiment_id_2",
152
161
  "ID___013": "proposal_id_2",
162
+ "ID___008": "observing_program_execution_id_2",
153
163
  "XPOSURE": 12.345,
154
164
  "TEXPOSUR": 1.123456789,
155
165
  "NSUMEXP": 1,
@@ -170,6 +180,7 @@ def basic_header_objs():
170
180
  "DKIST004": "observe",
171
181
  "ID___012": "experiment_id_1",
172
182
  "ID___013": "proposal_id_1",
183
+ "ID___008": "observing_program_execution_id_1",
173
184
  "XPOSURE": 100.0,
174
185
  "TEXPOSUR": 11.0,
175
186
  "NSUMEXP": 4,
@@ -185,6 +196,7 @@ def basic_header_objs():
185
196
  {
186
197
  "DKIST004": "gain",
187
198
  "ID___013": "proposal_id_1",
199
+ "ID___008": "observing_program_execution_id_1",
188
200
  "id_key": 0,
189
201
  "constant": 6.28,
190
202
  "near": 1.23,
@@ -603,6 +615,29 @@ def test_task_contributing_ids_bud(basic_header_objs):
603
615
  assert sorted(list(petal[0].value)) == ["experiment_id_2"]
604
616
 
605
617
 
618
+ def test_task_contributing_observing_program_ids_bud(basic_header_objs):
619
+ """
620
+ Given: A set of headers with observing program ID values for different tasks
621
+ When: Ingesting the headers with a TaskContributingIdsBud for a task type
622
+ Then: The Bud's petal is just the experiment ID 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
+
606
641
  def test_exp_time_flower(basic_header_objs):
607
642
  """
608
643
  Given: A set of filepaths and associated headers with XPOSURE keywords
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-common
3
- Version: 11.7.0rc3
3
+ Version: 11.7.0rc4
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
@@ -27,7 +27,7 @@ dkist_processing_common/codecs/str.py,sha256=Xqt5k8IhLc95KiiNiFwB1JWcVVc6T8AfcLr
27
27
  dkist_processing_common/fonts/Lato-Regular.ttf,sha256=1jbkaDIx-THtoiLViOlE0IK_0726AvkovuRhwPGFslE,656568
28
28
  dkist_processing_common/fonts/__init__.py,sha256=hBvZRtkoGRPlNDWCK-ZePXdSIlThCcjwBDfYaamVgAw,101
29
29
  dkist_processing_common/models/__init__.py,sha256=6LMqemdzVZ87fRrpAsbEnTtWZ02_Gu_oajsUlwGRH_Q,74
30
- dkist_processing_common/models/constants.py,sha256=zwDHNmRUajbTg6-FUYqzbT07kIMipNyLRqKn36Rf_rA,20873
30
+ dkist_processing_common/models/constants.py,sha256=-bJpDnp_CaJ0KgRx4_kcBo2Sy-iC1JWSFwdkzR8Q0lQ,20888
31
31
  dkist_processing_common/models/dkist_location.py,sha256=6Nk0wvv4R8ptlrV7BXon7abq4YLvmTdUmPsDN5G8nWc,971
32
32
  dkist_processing_common/models/fits_access.py,sha256=imKqL4-_g6gTR-IeIjZ6qkMhQX3JujdrKFrTd9gOXnw,5605
33
33
  dkist_processing_common/models/flower_pot.py,sha256=_J7DwHM8u5kQfdPCpk5pUmALtLrM1L_h-x8JW5BSjXA,5129
@@ -52,6 +52,7 @@ dkist_processing_common/parsers/id_bud.py,sha256=dWNr-njRqDzTnXa2WLZQEb48ul7RdeG
52
52
  dkist_processing_common/parsers/l0_fits_access.py,sha256=Ol3eo8yyNbGqbN2whhD2jBNoqhOrlwmH8DbMmCLtNk0,1033
53
53
  dkist_processing_common/parsers/l1_fits_access.py,sha256=BWojvcFl_RmkrRWHe1WxDCsPeexervlRFPothuXAyoI,4410
54
54
  dkist_processing_common/parsers/near_bud.py,sha256=ithuQpnAaK5MDXFhMPNoNIGuF2M94q0n6_qofGl-CdU,4006
55
+ dkist_processing_common/parsers/observing_program_id_bud.py,sha256=dmskHh9cVdSqcRk5Z8rVw9vihGDo_iKugmpjDmzrYWI,874
55
56
  dkist_processing_common/parsers/proposal_id_bud.py,sha256=VvVoYM-MUivra2fMZOSAOgGQslLROZxFuwHnuAZyAjc,942
56
57
  dkist_processing_common/parsers/quality.py,sha256=hhCT-bHODOYSp9jvgsiWfYcLYtQCSWgfuy0xZnkYXwo,1141
57
58
  dkist_processing_common/parsers/retarder.py,sha256=AvDrMLmxuwKOIP3NNm9mtV7dV2kw_aqW92hTLd1UdK0,1507
@@ -65,7 +66,7 @@ dkist_processing_common/tasks/assemble_movie.py,sha256=1ixDG-f4ODt0vywqVccG3aodL
65
66
  dkist_processing_common/tasks/base.py,sha256=itAHCvzcodo-q8_AjpWoRaM86BlcjWDpCIiUP7uwmP0,13236
66
67
  dkist_processing_common/tasks/l1_output_data.py,sha256=D4S3kH2uRKp1b8_xF2YiWO_mGj19UJS5wKQZ4OdatGs,10568
67
68
  dkist_processing_common/tasks/output_data_base.py,sha256=r1Bu3FX5zTVj66GTMWtaV_NdhxjyjSm661Bt2Mxmfi4,3685
68
- dkist_processing_common/tasks/parse_l0_input_data.py,sha256=Mg3Wk6JApGJX0YbO1kIx3RzlKTt_6nBcbhbwS1B1t6A,19718
69
+ dkist_processing_common/tasks/parse_l0_input_data.py,sha256=R9IDCwuzJ9U5HG0Clm6SAMKKLR9aC9yfxQu62S-z19U,19034
69
70
  dkist_processing_common/tasks/quality_metrics.py,sha256=cvGF6tJ8yAvxOvkeG3tWxYwL885BrFW5X3V7_MSzL-A,12481
70
71
  dkist_processing_common/tasks/teardown.py,sha256=rwT9lWINVDF11-az_nx-Z5ykMTX_SJCchobpU6sErgk,2360
71
72
  dkist_processing_common/tasks/transfer_input_data.py,sha256=DAYfS-B1o-iBT9MXU-TiJG4Hv05Z0c_JzPrnFgvnK9g,5786
@@ -99,12 +100,12 @@ dkist_processing_common/tests/test_interservice_bus_mixin.py,sha256=IptJkW7Qeu2Y
99
100
  dkist_processing_common/tests/test_manual_processing.py,sha256=iHF7yQPlar9niYAGXtFv28Gw3Undlds38yMfszk4ccY,1037
100
101
  dkist_processing_common/tests/test_output_data_base.py,sha256=D8b1XKvbE3C5cGOiHq58yJ2pzQL3iL0wLZy_AkDdB9Y,3085
101
102
  dkist_processing_common/tests/test_parameters.py,sha256=CUEUIGBPMCUXPll0G0UxFDbMXi8lmnjRwXBarGX1PAQ,14033
102
- dkist_processing_common/tests/test_parse_l0_input_data.py,sha256=I2djQFvFTpI9XaHwig8ig9r3DBCA6mamzscRISavc-k,11691
103
+ dkist_processing_common/tests/test_parse_l0_input_data.py,sha256=OoGqlH_sitvLra7ViydKRdRCr32eJQvCq0hDPdWEvBg,11727
103
104
  dkist_processing_common/tests/test_publish_catalog_messages.py,sha256=l6Wga1s2wNBIf4wGZ78ZIO_rtqjdidmtvlN9nMnQUAs,3222
104
105
  dkist_processing_common/tests/test_quality.py,sha256=IPz7liXcmoqWIsY78oX07Ui0nWHxoUH2FbKGEmMle7E,10258
105
106
  dkist_processing_common/tests/test_quality_mixin.py,sha256=qanm3SXEiLb0OJDawbh8ixVAG9uRglFMzwxTeYxkDsM,55369
106
107
  dkist_processing_common/tests/test_scratch.py,sha256=WO8C1VJlkcC5IzST9Hj08CyyrINwYcN8pyteD9x38xs,16482
107
- dkist_processing_common/tests/test_stems.py,sha256=Q-XrrTrF4joeWLh50vWpt34LrQ3mwLXqLraJszq0WLc,37460
108
+ dkist_processing_common/tests/test_stems.py,sha256=LnGuyh7L1y2Gud6oOaZpIXMQsD4LiKFsRwJ8WPeWe9s,38891
108
109
  dkist_processing_common/tests/test_submit_dataset_metadata.py,sha256=LHEyjoIxJHXXssqKkr8Qn1NzzHD1FLJiD3lP8yaLiXU,3764
109
110
  dkist_processing_common/tests/test_tags.py,sha256=w5gmVfp3Ck92KNV80lJQRMz0OYgTYzWtwVUFWv1b5i8,5024
110
111
  dkist_processing_common/tests/test_task_name.py,sha256=kqFr59XX2K87xzfTlClzDV4-Je1dx72LvdaJ22UE8UU,1233
@@ -124,7 +125,7 @@ docs/landing_page.rst,sha256=aPAuXFhBx73lEZ59B6E6JXxkK0LlxzD0n-HXqHrfumQ,746
124
125
  docs/make.bat,sha256=mBAhtURwhQ7yc95pqwJzlhqBSvRknr1aqZ5s8NKvdKs,4513
125
126
  docs/requirements.txt,sha256=Kbl_X4c7RQZw035YTeNB63We6I7pvXFU4T0Uflp2yDY,29
126
127
  licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
127
- dkist_processing_common-11.7.0rc3.dist-info/METADATA,sha256=x7gZ2v1D_PI0eQ_8NPwGptH63QUVYw2dvUdRoGAA8JI,13316
128
- dkist_processing_common-11.7.0rc3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
129
- dkist_processing_common-11.7.0rc3.dist-info/top_level.txt,sha256=LJhd1W-Vn90K8HnQDIE4r52YDpUjjMWDnllAWHBByW0,48
130
- dkist_processing_common-11.7.0rc3.dist-info/RECORD,,
128
+ dkist_processing_common-11.7.0rc4.dist-info/METADATA,sha256=pRBfFqyqarQKT1UZ9eiLwrhyfeSA9WXClBoPdFps9nw,13316
129
+ dkist_processing_common-11.7.0rc4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
130
+ dkist_processing_common-11.7.0rc4.dist-info/top_level.txt,sha256=LJhd1W-Vn90K8HnQDIE4r52YDpUjjMWDnllAWHBByW0,48
131
+ dkist_processing_common-11.7.0rc4.dist-info/RECORD,,