dkist-processing-common 10.7.1rc1__tar.gz → 10.8.0rc1__tar.gz

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 (130) hide show
  1. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/CHANGELOG.rst +18 -0
  2. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/PKG-INFO +4 -4
  3. dkist_processing_common-10.8.0rc1/changelog/222.bugfix.rst +1 -0
  4. dkist_processing_common-10.8.0rc1/changelog/222.feature.2.rst +1 -0
  5. dkist_processing_common-10.8.0rc1/changelog/222.feature.rst +1 -0
  6. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/codecs/fits.py +1 -1
  7. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/write_l1.py +1 -1
  8. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_write_l1.py +13 -10
  9. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common.egg-info/PKG-INFO +4 -4
  10. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common.egg-info/SOURCES.txt +3 -1
  11. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common.egg-info/requires.txt +3 -3
  12. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/pyproject.toml +3 -3
  13. dkist_processing_common-10.7.1rc1/changelog/248.bugfix.rst +0 -1
  14. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/.gitignore +0 -0
  15. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/.pre-commit-config.yaml +0 -0
  16. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/.readthedocs.yml +0 -0
  17. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/.snyk +0 -0
  18. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/README.rst +0 -0
  19. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/bitbucket-pipelines.yml +0 -0
  20. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/changelog/.gitempty +0 -0
  21. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/__init__.py +0 -0
  22. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/_util/__init__.py +0 -0
  23. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/_util/constants.py +0 -0
  24. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/_util/graphql.py +0 -0
  25. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/_util/scratch.py +0 -0
  26. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/_util/tags.py +0 -0
  27. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/codecs/__init__.py +0 -0
  28. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/codecs/asdf.py +0 -0
  29. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/codecs/bytes.py +0 -0
  30. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/codecs/iobase.py +0 -0
  31. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/codecs/json.py +0 -0
  32. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/codecs/path.py +0 -0
  33. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/codecs/quality.py +0 -0
  34. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/codecs/str.py +0 -0
  35. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/config.py +0 -0
  36. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/fonts/Lato-Regular.ttf +0 -0
  37. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/fonts/__init__.py +0 -0
  38. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/manual.py +0 -0
  39. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/__init__.py +0 -0
  40. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/constants.py +0 -0
  41. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/fits_access.py +0 -0
  42. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/flower_pot.py +0 -0
  43. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/graphql.py +0 -0
  44. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/message.py +0 -0
  45. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/message_queue_binding.py +0 -0
  46. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/metric_code.py +0 -0
  47. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/parameters.py +0 -0
  48. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/quality.py +0 -0
  49. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/tags.py +0 -0
  50. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/task_name.py +0 -0
  51. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/models/wavelength.py +0 -0
  52. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/__init__.py +0 -0
  53. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/cs_step.py +0 -0
  54. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/dsps_repeat.py +0 -0
  55. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/experiment_id_bud.py +0 -0
  56. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/id_bud.py +0 -0
  57. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/l0_fits_access.py +0 -0
  58. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/l1_fits_access.py +0 -0
  59. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/near_bud.py +0 -0
  60. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/proposal_id_bud.py +0 -0
  61. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/quality.py +0 -0
  62. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/retarder.py +0 -0
  63. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/single_value_single_key_flower.py +0 -0
  64. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/task.py +0 -0
  65. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/time.py +0 -0
  66. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/unique_bud.py +0 -0
  67. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/parsers/wavelength.py +0 -0
  68. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/__init__.py +0 -0
  69. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/assemble_movie.py +0 -0
  70. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/base.py +0 -0
  71. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/l1_output_data.py +0 -0
  72. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/mixin/__init__.py +0 -0
  73. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/mixin/globus.py +0 -0
  74. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/mixin/input_dataset.py +0 -0
  75. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/mixin/interservice_bus.py +0 -0
  76. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/mixin/metadata_store.py +0 -0
  77. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/mixin/object_store.py +0 -0
  78. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/mixin/quality/__init__.py +0 -0
  79. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/mixin/quality/_base.py +0 -0
  80. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/mixin/quality/_metrics.py +0 -0
  81. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/output_data_base.py +0 -0
  82. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/parse_l0_input_data.py +0 -0
  83. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/quality_metrics.py +0 -0
  84. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/teardown.py +0 -0
  85. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/transfer_input_data.py +0 -0
  86. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/trial_catalog.py +0 -0
  87. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tasks/trial_output_data.py +0 -0
  88. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/__init__.py +0 -0
  89. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/conftest.py +0 -0
  90. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_assemble_movie.py +0 -0
  91. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_assemble_quality.py +0 -0
  92. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_base.py +0 -0
  93. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_codecs.py +0 -0
  94. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_constants.py +0 -0
  95. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_cs_step.py +0 -0
  96. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_fits_access.py +0 -0
  97. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_flower_pot.py +0 -0
  98. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_input_dataset.py +0 -0
  99. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_interservice_bus.py +0 -0
  100. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_interservice_bus_mixin.py +0 -0
  101. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_manual_processing.py +0 -0
  102. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_output_data_base.py +0 -0
  103. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_parameters.py +0 -0
  104. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_parse_l0_input_data.py +0 -0
  105. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_publish_catalog_messages.py +0 -0
  106. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_quality.py +0 -0
  107. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_quality_mixin.py +0 -0
  108. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_scratch.py +0 -0
  109. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_stems.py +0 -0
  110. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_submit_dataset_metadata.py +0 -0
  111. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_tags.py +0 -0
  112. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_task_name.py +0 -0
  113. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_task_parsing.py +0 -0
  114. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_teardown.py +0 -0
  115. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_transfer_input_data.py +0 -0
  116. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_transfer_l1_output_data.py +0 -0
  117. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_trial_catalog.py +0 -0
  118. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_trial_output_data.py +0 -0
  119. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common/tests/test_workflow_task_base.py +0 -0
  120. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common.egg-info/dependency_links.txt +0 -0
  121. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/dkist_processing_common.egg-info/top_level.txt +0 -0
  122. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/docs/Makefile +0 -0
  123. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/docs/changelog.rst +0 -0
  124. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/docs/conf.py +0 -0
  125. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/docs/index.rst +0 -0
  126. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/docs/landing_page.rst +0 -0
  127. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/docs/make.bat +0 -0
  128. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/docs/requirements.txt +0 -0
  129. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/licenses/LICENSE.rst +0 -0
  130. {dkist_processing_common-10.7.1rc1 → dkist_processing_common-10.8.0rc1}/setup.cfg +0 -0
@@ -1,3 +1,21 @@
1
+ v10.7.2 (2025-04-21)
2
+ ====================
3
+
4
+ Bugfixes
5
+ --------
6
+
7
+ - Fix a bug in which the AO_LOCK header key is assumed to exist. The AO_LOCK header key is optional. (`#249 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/249>`__)
8
+
9
+
10
+ v10.7.1 (2025-04-17)
11
+ ====================
12
+
13
+ Bugfixes
14
+ --------
15
+
16
+ - Fix a bug exposed by updates in the `dkist-inventory` package that did not manage HISTORY or COMMENT cards correctly. (`#248 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/248>`__)
17
+
18
+
1
19
  v10.7.0 (2025-04-14)
2
20
  ====================
3
21
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-common
3
- Version: 10.7.1rc1
3
+ Version: 10.8.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
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.11
14
14
  Requires-Python: >=3.11
15
15
  Description-Content-Type: text/x-rst
16
16
  Requires-Dist: asdf<4.0.0,>=3.5.0
17
- Requires-Dist: astropy<7.0.0,>=6.0.0
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
20
  Requires-Dist: dkist-processing-core==5.1.0
@@ -26,7 +26,7 @@ Requires-Dist: gqlclient[pydantic]==1.2.3
26
26
  Requires-Dist: sqids==0.5.1
27
27
  Requires-Dist: matplotlib>=3.4
28
28
  Requires-Dist: moviepy>=2.0.0
29
- Requires-Dist: numpy>=1.20.2
29
+ Requires-Dist: numpy>=2.2.5
30
30
  Requires-Dist: object-clerk==0.1.1
31
31
  Requires-Dist: pandas>=1.4.2
32
32
  Requires-Dist: pillow>=10.2.0
@@ -43,7 +43,7 @@ Requires-Dist: pytest-cov; extra == "test"
43
43
  Requires-Dist: pytest-mock; extra == "test"
44
44
  Requires-Dist: hypothesis; extra == "test"
45
45
  Requires-Dist: towncrier; extra == "test"
46
- Requires-Dist: dkist-data-simulator>=5.0.0; extra == "test"
46
+ Requires-Dist: dkist-data-simulator>=5.2.6; extra == "test"
47
47
  Requires-Dist: dkist-processing-common[inventory]; extra == "test"
48
48
  Requires-Dist: dkist-processing-common[asdf]; extra == "test"
49
49
  Requires-Dist: dkist-processing-common[quality]; extra == "test"
@@ -0,0 +1 @@
1
+ Modify usage of CompImageHeader to support astropy 7.
@@ -0,0 +1 @@
1
+ Bump numpy version to cross the 2.0.0 release.
@@ -0,0 +1 @@
1
+ Add checksum verification to the hdu decoder.
@@ -32,7 +32,7 @@ def fits_hdulist_encoder(hdu_list: fits.HDUList) -> bytes:
32
32
 
33
33
  def fits_hdu_decoder(path: Path) -> fits.PrimaryHDU | fits.CompImageHDU:
34
34
  """Read a Path with `fits` to produce an `HDUList`."""
35
- hdu_list = fits.open(path)
35
+ hdu_list = fits.open(path, checksum=True)
36
36
  return _extract_hdu(hdu_list)
37
37
 
38
38
 
@@ -512,6 +512,6 @@ class WriteL1Frame(WorkflowTaskBase, MetadataStoreMixin, ABC):
512
512
  @staticmethod
513
513
  def remove_invalid_r0_values(header: fits.Header) -> fits.Header:
514
514
  """Remove the Fried parameter r0 from the header if the AO is not locked."""
515
- if not header["AO_LOCK"]:
515
+ if header.get("AO_LOCK") is not True:
516
516
  header.pop("ATMOS_R0", None)
517
517
  return header
@@ -157,8 +157,9 @@ def write_l1_task(request, recipe_run_id, tmp_path):
157
157
  @pytest.fixture(
158
158
  scope="function",
159
159
  params=[
160
- pytest.param(True, id="AO_lock_on"),
161
- pytest.param(False, id="AO_lock_off"),
160
+ pytest.param({"AO_LOCK": True}, id="AO_LOCK_True"),
161
+ pytest.param({"AO_LOCK": False}, id="AO_LOCK_False"),
162
+ pytest.param({}, id="AO_LOCK_missing"),
162
163
  ],
163
164
  )
164
165
  def write_l1_task_no_data(request, recipe_run_id, tmp_path, complete_common_header):
@@ -171,7 +172,8 @@ def write_l1_task_no_data(request, recipe_run_id, tmp_path, complete_common_head
171
172
  ):
172
173
  task.scratch = WorkflowFileSystem(recipe_run_id=recipe_run_id, scratch_base_path=tmp_path)
173
174
  header = complete_common_header
174
- header["AO_LOCK"] = request.param
175
+ header.pop("AO_LOCK", None) # If it's not required, shouldn't be here in the first place??
176
+ header.update(request.param)
175
177
  fried_parameter = 0.2
176
178
  header["ATMOS_R0"] = fried_parameter
177
179
  hdu = fits.PrimaryHDU(data=np.random.random(size=(1, 1, 1)) * 1, header=header)
@@ -428,7 +430,8 @@ def test_rice_compression_with_specified_tile_size(write_l1_task, mocker):
428
430
  files = list(task.read(tags=[Tag.frame(), Tag.output()]))
429
431
  for file in files:
430
432
  hdul = fits.open(file)
431
- comp_header = hdul[1]._header
433
+ bintable = hdul[1]._get_bintable_without_data()
434
+ comp_header = bintable.header
432
435
  data_shape = list(hdul[1].data.shape)
433
436
  data_shape.reverse()
434
437
  for i, dim in enumerate(data_shape):
@@ -453,7 +456,8 @@ def test_rice_compression_with_default_tile_size(write_l1_task, mocker):
453
456
  files = list(task.read(tags=[Tag.frame(), Tag.output()]))
454
457
  for file in files:
455
458
  hdul = fits.open(file)
456
- comp_header = hdul[1]._header
459
+ bintable = hdul[1]._get_bintable_without_data()
460
+ comp_header = bintable.header
457
461
  data_shape = list(hdul[1].data.shape)
458
462
  data_shape.reverse()
459
463
  assert comp_header["ZTILE1"] == data_shape[0]
@@ -604,12 +608,11 @@ def test_check_r0_ao_lock(write_l1_task_no_data):
604
608
  """
605
609
  task, header, r0 = write_l1_task_no_data
606
610
  header_after_check = task.remove_invalid_r0_values(header=header)
607
- if header["AO_LOCK"]:
611
+ if header.get("AO_LOCK"):
608
612
  assert header_after_check["ATMOS_R0"] == header["ATMOS_R0"]
609
613
  assert header["ATMOS_R0"] == r0
610
614
  assert header["AO_LOCK"]
611
- if not header["AO_LOCK"]:
612
- with pytest.raises(KeyError) as ke:
615
+ else:
616
+ with pytest.raises(KeyError, match="Keyword 'ATMOS_R0' not found"):
613
617
  invalid_r0 = header_after_check["ATMOS_R0"]
614
- assert "Keyword 'ATMOS_R0' not found" in str(ke)
615
- assert not header["AO_LOCK"]
618
+ assert header.get("AO_LOCK") != True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-common
3
- Version: 10.7.1rc1
3
+ Version: 10.8.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
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.11
14
14
  Requires-Python: >=3.11
15
15
  Description-Content-Type: text/x-rst
16
16
  Requires-Dist: asdf<4.0.0,>=3.5.0
17
- Requires-Dist: astropy<7.0.0,>=6.0.0
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
20
  Requires-Dist: dkist-processing-core==5.1.0
@@ -26,7 +26,7 @@ Requires-Dist: gqlclient[pydantic]==1.2.3
26
26
  Requires-Dist: sqids==0.5.1
27
27
  Requires-Dist: matplotlib>=3.4
28
28
  Requires-Dist: moviepy>=2.0.0
29
- Requires-Dist: numpy>=1.20.2
29
+ Requires-Dist: numpy>=2.2.5
30
30
  Requires-Dist: object-clerk==0.1.1
31
31
  Requires-Dist: pandas>=1.4.2
32
32
  Requires-Dist: pillow>=10.2.0
@@ -43,7 +43,7 @@ Requires-Dist: pytest-cov; extra == "test"
43
43
  Requires-Dist: pytest-mock; extra == "test"
44
44
  Requires-Dist: hypothesis; extra == "test"
45
45
  Requires-Dist: towncrier; extra == "test"
46
- Requires-Dist: dkist-data-simulator>=5.0.0; extra == "test"
46
+ Requires-Dist: dkist-data-simulator>=5.2.6; extra == "test"
47
47
  Requires-Dist: dkist-processing-common[inventory]; extra == "test"
48
48
  Requires-Dist: dkist-processing-common[asdf]; extra == "test"
49
49
  Requires-Dist: dkist-processing-common[quality]; extra == "test"
@@ -7,7 +7,9 @@ README.rst
7
7
  bitbucket-pipelines.yml
8
8
  pyproject.toml
9
9
  changelog/.gitempty
10
- changelog/248.bugfix.rst
10
+ changelog/222.bugfix.rst
11
+ changelog/222.feature.2.rst
12
+ changelog/222.feature.rst
11
13
  dkist_processing_common/__init__.py
12
14
  dkist_processing_common/config.py
13
15
  dkist_processing_common/manual.py
@@ -1,5 +1,5 @@
1
1
  asdf<4.0.0,>=3.5.0
2
- astropy<7.0.0,>=6.0.0
2
+ astropy>=7.0.0
3
3
  dkist-fits-specifications<5.0,>=4.0.0
4
4
  dkist-header-validator<6.0,>=5.0.0
5
5
  dkist-processing-core==5.1.0
@@ -11,7 +11,7 @@ gqlclient[pydantic]==1.2.3
11
11
  sqids==0.5.1
12
12
  matplotlib>=3.4
13
13
  moviepy>=2.0.0
14
- numpy>=1.20.2
14
+ numpy>=2.2.5
15
15
  object-clerk==0.1.1
16
16
  pandas>=1.4.2
17
17
  pillow>=10.2.0
@@ -47,7 +47,7 @@ pytest-cov
47
47
  pytest-mock
48
48
  hypothesis
49
49
  towncrier
50
- dkist-data-simulator>=5.0.0
50
+ dkist-data-simulator>=5.2.6
51
51
  dkist-processing-common[inventory]
52
52
  dkist-processing-common[asdf]
53
53
  dkist-processing-common[quality]
@@ -22,7 +22,7 @@ classifiers = [
22
22
  ]
23
23
  dependencies = [
24
24
  "asdf >= 3.5.0, <4.0.0",
25
- "astropy >= 6.0.0, < 7.0.0",
25
+ "astropy >= 7.0.0",
26
26
  "dkist-fits-specifications >= 4.0.0, <5.0",
27
27
  "dkist-header-validator >= 5.0.0, <6.0",
28
28
  "dkist-processing-core == 5.1.0",
@@ -34,7 +34,7 @@ dependencies = [
34
34
  "sqids == 0.5.1",
35
35
  "matplotlib >= 3.4",
36
36
  "moviepy >= 2.0.0",
37
- "numpy >= 1.20.2",
37
+ "numpy >= 2.2.5",
38
38
  "object-clerk == 0.1.1",
39
39
  "pandas >= 1.4.2",
40
40
  "pillow >= 10.2.0",
@@ -60,7 +60,7 @@ test = [
60
60
  "pytest-mock",
61
61
  "hypothesis",
62
62
  "towncrier",
63
- "dkist-data-simulator >= 5.0.0",
63
+ "dkist-data-simulator >= 5.2.6",
64
64
  "dkist-processing-common[inventory]",
65
65
  "dkist-processing-common[asdf]",
66
66
  "dkist-processing-common[quality]",
@@ -1 +0,0 @@
1
- Fix a bug exposed by updates in the `dkist-inventory` package that did not manage HISTORY or COMMENT cards correctly.