dkist-processing-common 11.6.0__py3-none-any.whl → 11.7.0rc1__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 (26) hide show
  1. changelog/267.feature.1.rst +1 -0
  2. changelog/267.feature.2.rst +1 -0
  3. changelog/267.feature.rst +1 -0
  4. changelog/267.misc.rst +1 -0
  5. changelog/267.removal.1.rst +2 -0
  6. changelog/267.removal.rst +1 -0
  7. dkist_processing_common/models/constants.py +394 -16
  8. dkist_processing_common/models/fits_access.py +16 -25
  9. dkist_processing_common/parsers/average_bud.py +48 -0
  10. dkist_processing_common/parsers/experiment_id_bud.py +8 -4
  11. dkist_processing_common/parsers/id_bud.py +35 -17
  12. dkist_processing_common/parsers/l0_fits_access.py +3 -3
  13. dkist_processing_common/parsers/l1_fits_access.py +47 -21
  14. dkist_processing_common/parsers/near_bud.py +4 -4
  15. dkist_processing_common/parsers/proposal_id_bud.py +11 -5
  16. dkist_processing_common/parsers/single_value_single_key_flower.py +0 -1
  17. dkist_processing_common/parsers/time.py +141 -27
  18. dkist_processing_common/tasks/parse_l0_input_data.py +284 -1
  19. dkist_processing_common/tests/test_fits_access.py +19 -44
  20. dkist_processing_common/tests/test_parse_l0_input_data.py +39 -5
  21. dkist_processing_common/tests/test_stems.py +127 -10
  22. dkist_processing_common/tests/test_task_parsing.py +6 -6
  23. {dkist_processing_common-11.6.0.dist-info → dkist_processing_common-11.7.0rc1.dist-info}/METADATA +1 -1
  24. {dkist_processing_common-11.6.0.dist-info → dkist_processing_common-11.7.0rc1.dist-info}/RECORD +26 -19
  25. {dkist_processing_common-11.6.0.dist-info → dkist_processing_common-11.7.0rc1.dist-info}/WHEEL +0 -0
  26. {dkist_processing_common-11.6.0.dist-info → dkist_processing_common-11.7.0rc1.dist-info}/top_level.txt +0 -0
@@ -6,14 +6,17 @@ 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
19
22
  from dkist_processing_common.parsers.proposal_id_bud import ContributingProposalIdsBud
@@ -31,9 +34,11 @@ from dkist_processing_common.parsers.time import MaximumCadenceBud
31
34
  from dkist_processing_common.parsers.time import MinimumCadenceBud
32
35
  from dkist_processing_common.parsers.time import ObsIpStartTimeBud
33
36
  from dkist_processing_common.parsers.time import ReadoutExpTimeFlower
37
+ from dkist_processing_common.parsers.time import TaskDateBeginBud
38
+ from dkist_processing_common.parsers.time import TaskDatetimeBudBase
34
39
  from dkist_processing_common.parsers.time import TaskExposureTimesBud
35
40
  from dkist_processing_common.parsers.time import TaskReadoutExpTimesBud
36
- from dkist_processing_common.parsers.time import TaskTimeBudBase
41
+ from dkist_processing_common.parsers.time import TaskRoundTimeBudBase
37
42
  from dkist_processing_common.parsers.time import VarianceCadenceBud
38
43
  from dkist_processing_common.parsers.unique_bud import TaskUniqueBud
39
44
  from dkist_processing_common.parsers.unique_bud import UniqueBud
@@ -66,12 +71,35 @@ class FitsReaderMetadataKey(StrEnum):
66
71
  class FitsReader(FitsAccessBase):
67
72
  def __init__(self, hdu, name):
68
73
  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
- )
74
+ self.thing_id: int = self.header.get(FitsReaderMetadataKey.thing_id)
75
+ self.constant_thing: int = self.header.get(FitsReaderMetadataKey.constant_thing)
76
+ self.near_thing: float = self.header.get(FitsReaderMetadataKey.near_thing)
74
77
  self.name = name
78
+ self.proposal_id: str = self.header.get(FitsReaderMetadataKey.proposal_id)
79
+ self.experiment_id: str = self.header.get(FitsReaderMetadataKey.experiment_id)
80
+ self.ip_task_type: str = self.header.get(FitsReaderMetadataKey.ip_task_type)
81
+ self.ip_start_time: str = self.header.get(FitsReaderMetadataKey.ip_start_time)
82
+ self.fpa_exposure_time_ms: float = self.header.get(
83
+ FitsReaderMetadataKey.fpa_exposure_time_ms
84
+ )
85
+ self.sensor_readout_exposure_time_ms: float = self.header.get(
86
+ FitsReaderMetadataKey.sensor_readout_exposure_time_ms
87
+ )
88
+ self.num_raw_frames_per_fpa: int = self.header.get(
89
+ FitsReaderMetadataKey.num_raw_frames_per_fpa
90
+ )
91
+ self.num_dsps_repeats: int = self.header.get(FitsReaderMetadataKey.num_dsps_repeats)
92
+ self.current_dsps_repeat: int = self.header.get(FitsReaderMetadataKey.current_dsps_repeat)
93
+ self.time_obs: str = self.header.get(FitsReaderMetadataKey.time_obs)
94
+ self.gos_level3_status: str = self.header.get(FitsReaderMetadataKey.gos_level3_status)
95
+ self.gos_level3_lamp_status: str = self.header.get(
96
+ FitsReaderMetadataKey.gos_level3_lamp_status
97
+ )
98
+ self.gos_level0_status: str = self.header.get(FitsReaderMetadataKey.gos_level0_status)
99
+ self.gos_retarder_status: str = self.header.get(FitsReaderMetadataKey.gos_retarder_status)
100
+ self.gos_polarizer_status: str = self.header.get(FitsReaderMetadataKey.gos_polarizer_status)
101
+ self.wavelength: str = self.header.get(FitsReaderMetadataKey.wavelength)
102
+ self.roundable_time: float = self.header.get(FitsReaderMetadataKey.roundable_time, 0.0)
75
103
 
76
104
 
77
105
  @pytest.fixture()
@@ -386,6 +414,38 @@ def test_single_value_single_key_flower(basic_header_objs):
386
414
  assert petals[2].keys == ["thing2"]
387
415
 
388
416
 
417
+ @pytest.mark.parametrize(
418
+ "ip_task_type, expected_value",
419
+ [
420
+ pytest.param("dark", (1655503202.0,), id="single_task_type"),
421
+ pytest.param(["dark", "gain"], (1655503202.0, 1655503203.0), id="task_type_list"),
422
+ pytest.param(
423
+ ["dark", "gain", "observe"],
424
+ (1655503200.0, 1655503201.0, 1655503202.0, 1655503203.0, 1655503203.0),
425
+ id="task_type_list2",
426
+ ),
427
+ ],
428
+ )
429
+ def test_task_datetime_base_bud(basic_header_objs, ip_task_type, expected_value):
430
+ """
431
+ Given: A set of headers with a datetime value that does not need to be rounded
432
+ When: Ingesting headers with a `TaskDatetimeBudBase` bud and asking for the value
433
+ Then: The bud's value is the list of datetimes in seconds
434
+ """
435
+ bud = TaskDatetimeBudBase(
436
+ stem_name="datetimes",
437
+ metadata_key=FitsReaderMetadataKey.time_obs,
438
+ ip_task_types=ip_task_type,
439
+ )
440
+ assert bud.stem_name == "datetimes"
441
+ for fo in basic_header_objs:
442
+ key = fo.name
443
+ bud.update(key, fo)
444
+
445
+ petal = list(bud.petals)
446
+ assert petal[0].value == expected_value
447
+
448
+
389
449
  @pytest.mark.parametrize(
390
450
  "ip_task_type, expected_value",
391
451
  [
@@ -394,13 +454,13 @@ def test_single_value_single_key_flower(basic_header_objs):
394
454
  pytest.param(["dark", "gain", "observe"], (0.0, 2.34), id="task_type_list2"),
395
455
  ],
396
456
  )
397
- def test_task_time_base_bud(basic_header_objs, ip_task_type, expected_value):
457
+ def test_task_round_time_base_bud(basic_header_objs, ip_task_type, expected_value):
398
458
  """
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
459
+ Given: A set of headers with a time value that needs to be rounded
460
+ When: Ingesting headers with a `TaskRoundTimeBudBase` bud and asking for the value
401
461
  Then: The bud's value is the header constant value
402
462
  """
403
- bud = TaskTimeBudBase(
463
+ bud = TaskRoundTimeBudBase(
404
464
  stem_name="rounded_time", metadata_key="roundable_time", ip_task_types=ip_task_type
405
465
  )
406
466
  assert bud.stem_name == "rounded_time"
@@ -522,6 +582,27 @@ def test_contributing_experiment_ids_bud(basic_header_objs):
522
582
  assert sorted(list(petal[0].value)) == ["experiment_id_1", "experiment_id_2"]
523
583
 
524
584
 
585
+ def test_task_contributing_ids_bud(basic_header_objs):
586
+ """
587
+ Given: A set of headers with experiment ID values for different tasks
588
+ When: Ingesting the headers with a TaskContributingIdsBud for the dark task
589
+ Then: The Bud's petal is just the experiment ID for the dark task
590
+ """
591
+ bud = TaskContributingIdsBud(
592
+ constant_name=BudName.experiment_id,
593
+ metadata_key=MetadataKey.experiment_id,
594
+ ip_task_types=TaskName.dark,
595
+ )
596
+ assert bud.stem_name == BudName.experiment_id.value
597
+ for fo in basic_header_objs:
598
+ key = fo.name
599
+ bud.update(key, fo)
600
+
601
+ petal = list(bud.petals)
602
+ assert len(petal) == 1
603
+ assert sorted(list(petal[0].value)) == ["experiment_id_2"]
604
+
605
+
525
606
  def test_exp_time_flower(basic_header_objs):
526
607
  """
527
608
  Given: A set of filepaths and associated headers with XPOSURE keywords
@@ -783,6 +864,23 @@ def test_variance_cadence_bud(basic_header_objs):
783
864
  assert petal[0].value == 0.25
784
865
 
785
866
 
867
+ def test_task_date_begin_bud(basic_header_objs):
868
+ """
869
+ Given: A set of filepaths and associated headers with time_obs metadata keys
870
+ When: Ingesting with the TaskDateBeginBud
871
+ Then: The correct value is returned
872
+ """
873
+ bud = TaskDateBeginBud(constant_name=BudName.dark_date_begin, ip_task_types=TaskName.dark)
874
+ assert bud.stem_name == BudName.dark_date_begin.value
875
+ for fo in basic_header_objs:
876
+ key = fo.name
877
+ bud.update(key, fo)
878
+
879
+ petal = list(bud.petals)
880
+ assert len(petal) == 1
881
+ assert petal[0].value == "2022-06-17T22:00:02.000000"
882
+
883
+
786
884
  def test_observe_wavelength_bud(basic_header_objs):
787
885
  """
788
886
  Given: A set of headers with wavelength values
@@ -935,4 +1033,23 @@ def test_retarder_name_bud_error(bad_polcal_header_objs):
935
1033
  _ = bud.bud
936
1034
 
937
1035
 
1036
+ def test_task_average_bud(basic_header_objs):
1037
+ """
1038
+ Given: A set of headers with a differently valued header key
1039
+ When: Ingesting headers with an TaskAverageBud and asking for the value
1040
+ Then: The bud's value is the average of the header values of that task type
1041
+ """
1042
+ bud = TaskAverageBud(
1043
+ constant_name="average", metadata_key="near_thing", ip_task_types="observe"
1044
+ )
1045
+ assert bud.stem_name == "average"
1046
+ for fo in basic_header_objs:
1047
+ key = fo.name
1048
+ bud.update(key, fo)
1049
+
1050
+ petal = list(bud.petals)
1051
+ assert len(petal) == 1
1052
+ assert round(petal[0].value, 3) == 1.227
1053
+
1054
+
938
1055
  # 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.0
3
+ Version: 11.7.0rc1
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
@@ -1,4 +1,10 @@
1
1
  changelog/.gitempty,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ changelog/267.feature.1.rst,sha256=G5Xl7EwiRKAtftSUvalfF7iUL-WgqIvnQ3k6wyTYzaw,98
3
+ changelog/267.feature.2.rst,sha256=1z0TqX3159m-wFvEgElBjUp0XPWQvmqMlVlf4BzO-J8,99
4
+ changelog/267.feature.rst,sha256=g4bBK3EFQiQljW9lQrFh6rVOL8C6yxBYbXI4WOH8NE0,65
5
+ changelog/267.misc.rst,sha256=ciUqUesBbdxh41euyLhyD3Bl6IVT2TSIGeOg3LFjIvg,105
6
+ changelog/267.removal.1.rst,sha256=qiGl1FAy9ioLwfCh8EvM788wjFbOY3jM3eUJHPOzpu8,207
7
+ changelog/267.removal.rst,sha256=ecpctwJ-AE59sfbsTy-j3GYaPaN8h6oWphXUMNQ42Yw,103
2
8
  dkist_processing_common/__init__.py,sha256=GQ9EBnYhkOnt-qODclAoLS_g5YVhurxfg1tjVtI9rDI,320
3
9
  dkist_processing_common/config.py,sha256=kkFm-Q6jGGoV3Zdf3PSfk3xNYd2vSH0J2R8dBBav3Og,5218
4
10
  dkist_processing_common/manual.py,sha256=bIVVyLsbXMh-g_2L3kGROL-1TtJe0_XviHsp7Br31x8,7023
@@ -21,9 +27,9 @@ dkist_processing_common/codecs/str.py,sha256=Xqt5k8IhLc95KiiNiFwB1JWcVVc6T8AfcLr
21
27
  dkist_processing_common/fonts/Lato-Regular.ttf,sha256=1jbkaDIx-THtoiLViOlE0IK_0726AvkovuRhwPGFslE,656568
22
28
  dkist_processing_common/fonts/__init__.py,sha256=hBvZRtkoGRPlNDWCK-ZePXdSIlThCcjwBDfYaamVgAw,101
23
29
  dkist_processing_common/models/__init__.py,sha256=6LMqemdzVZ87fRrpAsbEnTtWZ02_Gu_oajsUlwGRH_Q,74
24
- dkist_processing_common/models/constants.py,sha256=oghBiVmtVk7YLkaQ2v8oZ-COHlAhmfjSvO9ZwzXCvLw,5828
30
+ dkist_processing_common/models/constants.py,sha256=WL-9j4RVxEoTTeZ0Sl1lgoW2JD_Gd624cBM_KYA8kfk,22702
25
31
  dkist_processing_common/models/dkist_location.py,sha256=6Nk0wvv4R8ptlrV7BXon7abq4YLvmTdUmPsDN5G8nWc,971
26
- dkist_processing_common/models/fits_access.py,sha256=NLxvIsaFrv4Fui1EhGzkV5XXjv-Vi8DQaLfMHOrRdzc,5949
32
+ dkist_processing_common/models/fits_access.py,sha256=imKqL4-_g6gTR-IeIjZ6qkMhQX3JujdrKFrTd9gOXnw,5605
27
33
  dkist_processing_common/models/flower_pot.py,sha256=_J7DwHM8u5kQfdPCpk5pUmALtLrM1L_h-x8JW5BSjXA,5129
28
34
  dkist_processing_common/models/fried_parameter.py,sha256=ro_H2Eo3I88lRf1wJjZfTc_XOjhgLt4whIQR_sjAFbM,1609
29
35
  dkist_processing_common/models/graphql.py,sha256=oSEcdVsVRytnIDEORLs4b6r3C2Lr7gqEEMHu82zpOOg,5912
@@ -38,19 +44,20 @@ dkist_processing_common/models/task_name.py,sha256=uAl7qTK4Xx1nqPAhNAe5nAXqxwPwQ
38
44
  dkist_processing_common/models/telemetry.py,sha256=XVcLNgHCZsP9L7oYiklyLUoqQtWt_xjEkuf70Kbudz4,839
39
45
  dkist_processing_common/models/wavelength.py,sha256=4UhRVoNvCHZitXo5S1oRdewadbmGfmDK6wetMV06POA,967
40
46
  dkist_processing_common/parsers/__init__.py,sha256=XJQzHtPb78F6-qXXKXjyztc0x-aHVlgv1C_l4dR88tI,67
47
+ dkist_processing_common/parsers/average_bud.py,sha256=86zgcgLdDd8_Stf4RhZ9wfsmeuLXLA1jc-zcPHAz4YQ,1454
41
48
  dkist_processing_common/parsers/cs_step.py,sha256=rL2gdstKEV5aqdPDs3a5EuUaOT_6YXDJVqIPIVKSw8M,6450
42
49
  dkist_processing_common/parsers/dsps_repeat.py,sha256=Jg6oI9-PtFQbQHbGul6_eiRzBKr0Z2HIGOitG0G5CD4,1642
43
- dkist_processing_common/parsers/experiment_id_bud.py,sha256=5ARnj6M5PEef_5-IVD1W6zl5DkYqx8eyt5-26Se-X2s,804
44
- dkist_processing_common/parsers/id_bud.py,sha256=XohLGwVC-AD66qJe6I3AKdm5ArQIf3ryfDzPCQ5hEBk,1688
45
- dkist_processing_common/parsers/l0_fits_access.py,sha256=gbE_4vFexOeKNLvqWvUFNxg-zBRpY1rCfRpIWHFpt_0,1009
46
- dkist_processing_common/parsers/l1_fits_access.py,sha256=dJbbKRExoRpl94cSpgZg5SQZLh4tkV8p0vsKO8P8FLE,2814
47
- dkist_processing_common/parsers/near_bud.py,sha256=lOHrjERKh3ooFusbd3_N-IDDpEOD9VWq2G82_wJ2c08,4002
48
- dkist_processing_common/parsers/proposal_id_bud.py,sha256=tKW8dwh7XkECU1Z0T1E4AHj42emV3-RRVBBpVUZloTk,753
50
+ dkist_processing_common/parsers/experiment_id_bud.py,sha256=LUehIqB56hmDwARph1itSUsPenFHScfrrRuZmcCi4xA,960
51
+ dkist_processing_common/parsers/id_bud.py,sha256=-VlMQq-6pVx0o_NretmCthI7X1R14UMQhFpjUBBwKpg,2471
52
+ dkist_processing_common/parsers/l0_fits_access.py,sha256=Ol3eo8yyNbGqbN2whhD2jBNoqhOrlwmH8DbMmCLtNk0,1033
53
+ dkist_processing_common/parsers/l1_fits_access.py,sha256=BWojvcFl_RmkrRWHe1WxDCsPeexervlRFPothuXAyoI,4410
54
+ dkist_processing_common/parsers/near_bud.py,sha256=ithuQpnAaK5MDXFhMPNoNIGuF2M94q0n6_qofGl-CdU,4006
55
+ dkist_processing_common/parsers/proposal_id_bud.py,sha256=VvVoYM-MUivra2fMZOSAOgGQslLROZxFuwHnuAZyAjc,942
49
56
  dkist_processing_common/parsers/quality.py,sha256=hhCT-bHODOYSp9jvgsiWfYcLYtQCSWgfuy0xZnkYXwo,1141
50
57
  dkist_processing_common/parsers/retarder.py,sha256=AvDrMLmxuwKOIP3NNm9mtV7dV2kw_aqW92hTLd1UdK0,1507
51
- dkist_processing_common/parsers/single_value_single_key_flower.py,sha256=3mcPOG6dEU7IHWm0Jtjx3FVzbxAJCiKtLyVwZqFd2lA,1425
58
+ dkist_processing_common/parsers/single_value_single_key_flower.py,sha256=Xy0_55H2VInGkMKSPOQjcYiMW0DFlDOn27n5jC2PKzE,1358
52
59
  dkist_processing_common/parsers/task.py,sha256=nuGxDl5_gjbi07jMOrCPD5J9L51lyZZ6VS25FuDC3V8,3990
53
- dkist_processing_common/parsers/time.py,sha256=z9zHV3Fz6ebEDgiPhv6H-aAS8e-sSW3EkBbPbtHpzGY,8576
60
+ dkist_processing_common/parsers/time.py,sha256=QDeptS9G_Pv5VkfS_G-r65fzczKK6-OvWHArjDlSBaY,11509
54
61
  dkist_processing_common/parsers/unique_bud.py,sha256=IkS2zZkVzn3PRsYF2ksBkUxl_HJ4TxCqBKJUs1WdL54,3310
55
62
  dkist_processing_common/parsers/wavelength.py,sha256=P5C9mG8DAKK3GB3vWNRBI5l7pAW68lJK-kw-4eqERuQ,612
56
63
  dkist_processing_common/tasks/__init__.py,sha256=l23ctjNsKJbHbbqaZBMeOPaOtw0hmITEljI_JJ-CVsU,627
@@ -58,7 +65,7 @@ dkist_processing_common/tasks/assemble_movie.py,sha256=1ixDG-f4ODt0vywqVccG3aodL
58
65
  dkist_processing_common/tasks/base.py,sha256=itAHCvzcodo-q8_AjpWoRaM86BlcjWDpCIiUP7uwmP0,13236
59
66
  dkist_processing_common/tasks/l1_output_data.py,sha256=D4S3kH2uRKp1b8_xF2YiWO_mGj19UJS5wKQZ4OdatGs,10568
60
67
  dkist_processing_common/tasks/output_data_base.py,sha256=r1Bu3FX5zTVj66GTMWtaV_NdhxjyjSm661Bt2Mxmfi4,3685
61
- dkist_processing_common/tasks/parse_l0_input_data.py,sha256=Gf8tA0aKqKuhkuxJqtblLL9y_ARCKoMb1cztSt_2hSU,8343
68
+ dkist_processing_common/tasks/parse_l0_input_data.py,sha256=2gK_g_s2UG3b8FJHu-WjuEmwdbC5ZOnza1a62o8q4eU,19790
62
69
  dkist_processing_common/tasks/quality_metrics.py,sha256=cvGF6tJ8yAvxOvkeG3tWxYwL885BrFW5X3V7_MSzL-A,12481
63
70
  dkist_processing_common/tasks/teardown.py,sha256=rwT9lWINVDF11-az_nx-Z5ykMTX_SJCchobpU6sErgk,2360
64
71
  dkist_processing_common/tasks/transfer_input_data.py,sha256=DAYfS-B1o-iBT9MXU-TiJG4Hv05Z0c_JzPrnFgvnK9g,5786
@@ -83,7 +90,7 @@ dkist_processing_common/tests/test_codecs.py,sha256=XuvG1sG8DECMPmxtDEi98TxlvTSA
83
90
  dkist_processing_common/tests/test_constants.py,sha256=I_KcJs7ScCn53GYhEO6qjWrrnfZuyC1IVYOy87Pjlg4,6565
84
91
  dkist_processing_common/tests/test_cs_step.py,sha256=RA0QD3D8eaL3YSOL_gIJ9wkngy14RQ2jbD-05KAziW4,2408
85
92
  dkist_processing_common/tests/test_dkist_location.py,sha256=-_OoSw4SZDLFyIuOltHvM6PQjxm5hTiJQsiTGZ8Sadc,456
86
- dkist_processing_common/tests/test_fits_access.py,sha256=IYLrGRq71ve_yKJA6N-Gxz2-r9iISExwM8Zt6bB-jJI,13832
93
+ dkist_processing_common/tests/test_fits_access.py,sha256=a50B4IAAH5NH5zeudTqyy0b5uWKJwJuzQLUdK1LoOHM,12832
87
94
  dkist_processing_common/tests/test_flower_pot.py,sha256=X9_UI3maa3ZQncV3jYHgovWnawDsdEkEB5vw6EAB96o,3151
88
95
  dkist_processing_common/tests/test_fried_parameter.py,sha256=iXtlQIifZ6cDOkEi-YDgP3oAlss2loq08Uohgvy1byQ,1295
89
96
  dkist_processing_common/tests/test_input_dataset.py,sha256=pQ01rWAkQ2XQojyHWzAqeOdrMXshNcgEVL5I_9bBTdo,9610
@@ -92,16 +99,16 @@ dkist_processing_common/tests/test_interservice_bus_mixin.py,sha256=IptJkW7Qeu2Y
92
99
  dkist_processing_common/tests/test_manual_processing.py,sha256=iHF7yQPlar9niYAGXtFv28Gw3Undlds38yMfszk4ccY,1037
93
100
  dkist_processing_common/tests/test_output_data_base.py,sha256=D8b1XKvbE3C5cGOiHq58yJ2pzQL3iL0wLZy_AkDdB9Y,3085
94
101
  dkist_processing_common/tests/test_parameters.py,sha256=CUEUIGBPMCUXPll0G0UxFDbMXi8lmnjRwXBarGX1PAQ,14033
95
- dkist_processing_common/tests/test_parse_l0_input_data.py,sha256=rwmtQJQo7SNdzPVzMOFxXS35H_nOLWYgbZsc9QuMEgc,10503
102
+ dkist_processing_common/tests/test_parse_l0_input_data.py,sha256=BiJZ_PrxOvaKW_l2yGyq7b7R4-SobkXEGqimYP5qmUw,11698
96
103
  dkist_processing_common/tests/test_publish_catalog_messages.py,sha256=l6Wga1s2wNBIf4wGZ78ZIO_rtqjdidmtvlN9nMnQUAs,3222
97
104
  dkist_processing_common/tests/test_quality.py,sha256=IPz7liXcmoqWIsY78oX07Ui0nWHxoUH2FbKGEmMle7E,10258
98
105
  dkist_processing_common/tests/test_quality_mixin.py,sha256=qanm3SXEiLb0OJDawbh8ixVAG9uRglFMzwxTeYxkDsM,55369
99
106
  dkist_processing_common/tests/test_scratch.py,sha256=WO8C1VJlkcC5IzST9Hj08CyyrINwYcN8pyteD9x38xs,16482
100
- dkist_processing_common/tests/test_stems.py,sha256=8Im6TtEEwkU6MN5wAAbq2gL4Z5bCQp-rbVH_QEdc880,32316
107
+ dkist_processing_common/tests/test_stems.py,sha256=Q-XrrTrF4joeWLh50vWpt34LrQ3mwLXqLraJszq0WLc,37460
101
108
  dkist_processing_common/tests/test_submit_dataset_metadata.py,sha256=LHEyjoIxJHXXssqKkr8Qn1NzzHD1FLJiD3lP8yaLiXU,3764
102
109
  dkist_processing_common/tests/test_tags.py,sha256=w5gmVfp3Ck92KNV80lJQRMz0OYgTYzWtwVUFWv1b5i8,5024
103
110
  dkist_processing_common/tests/test_task_name.py,sha256=kqFr59XX2K87xzfTlClzDV4-Je1dx72LvdaJ22UE8UU,1233
104
- dkist_processing_common/tests/test_task_parsing.py,sha256=leXQrIWU5CIkUWRaiG0hW4NCmFtlpxHNsgl4Jz2EghA,4368
111
+ dkist_processing_common/tests/test_task_parsing.py,sha256=2_OOmeZQWD17XAd_ECYmodJzD_iRIBKjCYdGh38BOx4,4421
105
112
  dkist_processing_common/tests/test_teardown.py,sha256=DaliHSGsiQBZaFkf5wb3XBo6rHNPmx2bmQtVymYeBN4,5601
106
113
  dkist_processing_common/tests/test_transfer_input_data.py,sha256=eyAAWXpTHQ8aew87-MncWpYBn4DAZrTSOL3LvlQfR5Q,12611
107
114
  dkist_processing_common/tests/test_transfer_l1_output_data.py,sha256=PVGDJBEUk4kAeu8ivrhlCE7yd29R18t9kZLFx-mpBwY,2063
@@ -117,7 +124,7 @@ docs/landing_page.rst,sha256=aPAuXFhBx73lEZ59B6E6JXxkK0LlxzD0n-HXqHrfumQ,746
117
124
  docs/make.bat,sha256=mBAhtURwhQ7yc95pqwJzlhqBSvRknr1aqZ5s8NKvdKs,4513
118
125
  docs/requirements.txt,sha256=Kbl_X4c7RQZw035YTeNB63We6I7pvXFU4T0Uflp2yDY,29
119
126
  licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
120
- dkist_processing_common-11.6.0.dist-info/METADATA,sha256=AQxL1zjp7254K1ZpFGOic8SHuO6bbexvQQ0KwHQGHOY,13313
121
- dkist_processing_common-11.6.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
122
- dkist_processing_common-11.6.0.dist-info/top_level.txt,sha256=LJhd1W-Vn90K8HnQDIE4r52YDpUjjMWDnllAWHBByW0,48
123
- dkist_processing_common-11.6.0.dist-info/RECORD,,
127
+ dkist_processing_common-11.7.0rc1.dist-info/METADATA,sha256=MAf4p2v2jbVnAIVzWs-XL_G8JyykR0iQoh7F7wOoekA,13316
128
+ dkist_processing_common-11.7.0rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
129
+ dkist_processing_common-11.7.0rc1.dist-info/top_level.txt,sha256=LJhd1W-Vn90K8HnQDIE4r52YDpUjjMWDnllAWHBByW0,48
130
+ dkist_processing_common-11.7.0rc1.dist-info/RECORD,,