dkist-processing-common 14.4.0__tar.gz → 14.5.0__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 (145) hide show
  1. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/CHANGELOG.rst +13 -0
  2. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/PKG-INFO +3 -3
  3. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/write_extra.py +1 -2
  4. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/write_l1.py +2 -6
  5. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/conftest.py +17 -39
  6. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common.egg-info/PKG-INFO +3 -3
  7. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common.egg-info/requires.txt +2 -2
  8. dkist_processing_common-14.5.0/dkist_processing_common.egg-info/scm_version.json +8 -0
  9. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/pyproject.toml +2 -2
  10. dkist_processing_common-14.4.0/dkist_processing_common.egg-info/scm_version.json +0 -8
  11. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/.gitignore +0 -0
  12. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/.pre-commit-config.yaml +0 -0
  13. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/.readthedocs.yml +0 -0
  14. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/.rovodev/.review-agent.md +0 -0
  15. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/.snyk +0 -0
  16. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/README.rst +0 -0
  17. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/bitbucket-pipelines.yml +0 -0
  18. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/changelog/.gitempty +0 -0
  19. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/__init__.py +0 -0
  20. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/_util/__init__.py +0 -0
  21. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/_util/constants.py +0 -0
  22. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/_util/graphql.py +0 -0
  23. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/_util/scratch.py +0 -0
  24. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/_util/tags.py +0 -0
  25. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/codecs/__init__.py +0 -0
  26. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/codecs/array.py +0 -0
  27. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/codecs/asdf.py +0 -0
  28. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/codecs/basemodel.py +0 -0
  29. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/codecs/bytes.py +0 -0
  30. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/codecs/fits.py +0 -0
  31. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/codecs/iobase.py +0 -0
  32. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/codecs/json.py +0 -0
  33. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/codecs/path.py +0 -0
  34. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/codecs/quality.py +0 -0
  35. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/codecs/str.py +0 -0
  36. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/config.py +0 -0
  37. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/fonts/Lato-Regular.ttf +0 -0
  38. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/fonts/__init__.py +0 -0
  39. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/manual.py +0 -0
  40. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/__init__.py +0 -0
  41. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/constants.py +0 -0
  42. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/dkist_location.py +0 -0
  43. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/extras.py +0 -0
  44. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/fits_access.py +0 -0
  45. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/flower_pot.py +0 -0
  46. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/fried_parameter.py +0 -0
  47. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/graphql.py +0 -0
  48. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/input_dataset.py +0 -0
  49. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/message.py +0 -0
  50. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/message_queue_binding.py +0 -0
  51. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/metric_code.py +0 -0
  52. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/parameters.py +0 -0
  53. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/quality.py +0 -0
  54. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/tags.py +0 -0
  55. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/task_name.py +0 -0
  56. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/telemetry.py +0 -0
  57. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/models/wavelength.py +0 -0
  58. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/__init__.py +0 -0
  59. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/average_bud.py +0 -0
  60. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/cs_step.py +0 -0
  61. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/dsps_repeat.py +0 -0
  62. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/experiment_id_bud.py +0 -0
  63. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/id_bud.py +0 -0
  64. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/l0_fits_access.py +0 -0
  65. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/l1_fits_access.py +0 -0
  66. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/lookup_bud.py +0 -0
  67. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/near_bud.py +0 -0
  68. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/observing_program_id_bud.py +0 -0
  69. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/proposal_id_bud.py +0 -0
  70. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/quality.py +0 -0
  71. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/retarder.py +0 -0
  72. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/single_value_single_key_flower.py +0 -0
  73. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/task.py +0 -0
  74. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/time.py +0 -0
  75. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/unique_bud.py +0 -0
  76. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/parsers/wavelength.py +0 -0
  77. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/__init__.py +0 -0
  78. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/assemble_movie.py +0 -0
  79. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/base.py +0 -0
  80. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/l1_output_data.py +0 -0
  81. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/mixin/__init__.py +0 -0
  82. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/mixin/globus.py +0 -0
  83. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/mixin/interservice_bus.py +0 -0
  84. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/mixin/metadata_store.py +0 -0
  85. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/mixin/object_store.py +0 -0
  86. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/mixin/quality/__init__.py +0 -0
  87. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/mixin/quality/_base.py +0 -0
  88. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/mixin/quality/_metrics.py +0 -0
  89. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/output_data_base.py +0 -0
  90. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/parse_l0_input_data.py +0 -0
  91. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/quality_metrics.py +0 -0
  92. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/teardown.py +0 -0
  93. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/transfer_input_data.py +0 -0
  94. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/trial_catalog.py +0 -0
  95. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/trial_output_data.py +0 -0
  96. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tasks/write_l1_base.py +0 -0
  97. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/__init__.py +0 -0
  98. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/mock_metadata_store.py +0 -0
  99. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_assemble_movie.py +0 -0
  100. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_assemble_quality.py +0 -0
  101. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_base.py +0 -0
  102. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_codecs.py +0 -0
  103. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_constants.py +0 -0
  104. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_construct_dataset_extras.py +0 -0
  105. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_cs_step.py +0 -0
  106. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_dkist_location.py +0 -0
  107. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_fits_access.py +0 -0
  108. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_flower_pot.py +0 -0
  109. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_fried_parameter.py +0 -0
  110. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_input_dataset.py +0 -0
  111. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_interservice_bus.py +0 -0
  112. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_interservice_bus_mixin.py +0 -0
  113. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_manual_processing.py +0 -0
  114. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_output_data_base.py +0 -0
  115. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_parameters.py +0 -0
  116. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_parse_l0_input_data.py +0 -0
  117. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_publish_catalog_messages.py +0 -0
  118. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_quality.py +0 -0
  119. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_quality_mixin.py +0 -0
  120. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_scratch.py +0 -0
  121. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_stems.py +0 -0
  122. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_submit_dataset_metadata.py +0 -0
  123. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_tags.py +0 -0
  124. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_task_name.py +0 -0
  125. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_task_parsing.py +0 -0
  126. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_teardown.py +0 -0
  127. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_transfer_input_data.py +0 -0
  128. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_transfer_l1_output_data.py +0 -0
  129. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_trial_catalog.py +0 -0
  130. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_trial_output_data.py +0 -0
  131. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_workflow_task_base.py +0 -0
  132. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common/tests/test_write_l1.py +0 -0
  133. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common.egg-info/SOURCES.txt +0 -0
  134. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common.egg-info/dependency_links.txt +0 -0
  135. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common.egg-info/scm_file_list.json +0 -0
  136. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/dkist_processing_common.egg-info/top_level.txt +0 -0
  137. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/docs/Makefile +0 -0
  138. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/docs/changelog.rst +0 -0
  139. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/docs/conf.py +0 -0
  140. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/docs/index.rst +0 -0
  141. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/docs/landing_page.rst +0 -0
  142. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/docs/make.bat +0 -0
  143. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/docs/requirements.txt +0 -0
  144. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/licenses/LICENSE.rst +0 -0
  145. {dkist_processing_common-14.4.0 → dkist_processing_common-14.5.0}/setup.cfg +0 -0
@@ -1,3 +1,16 @@
1
+ v14.5.0 (2026-09-24)
2
+ ====================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Remove call to `remove_extra_axis_keys` in the Write L1 task. The function was not
8
+ working as desired and has been deleted. (`#348 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/348>`__)
9
+ - Replace `validate_and_translate_to_214_l0` methods in tests by instantiating the
10
+ Dataset with "level0_spec214" file schema. (`#348 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/348>`__)
11
+ - Simplify calls to `dkist-header-validator` methods in the Write L1 and Write Extras tasks. (`#348 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/348>`__)
12
+
13
+
1
14
  v14.4.0 (2026-08-25)
2
15
  ====================
3
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-common
3
- Version: 14.4.0
3
+ Version: 14.5.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
@@ -16,7 +16,7 @@ Description-Content-Type: text/x-rst
16
16
  Requires-Dist: asdf<6.0,>=3.5.0
17
17
  Requires-Dist: astropy>=7.0.0
18
18
  Requires-Dist: dkist-fits-specifications<5.0,>=4.24.0
19
- Requires-Dist: dkist-header-validator<6.0,>=5.3.0
19
+ Requires-Dist: dkist-header-validator>=v6.0.0
20
20
  Requires-Dist: dkist-processing-core==7.5.0
21
21
  Requires-Dist: dkist-processing-pac<4.0,>=3.1
22
22
  Requires-Dist: dkist-service-configuration<5.0,>=4.3.0
@@ -44,7 +44,7 @@ Requires-Dist: pytest-xdist; extra == "test"
44
44
  Requires-Dist: pytest-cov; extra == "test"
45
45
  Requires-Dist: pytest-mock; extra == "test"
46
46
  Requires-Dist: hypothesis; extra == "test"
47
- Requires-Dist: dkist-data-simulator>=5.2.6; extra == "test"
47
+ Requires-Dist: dkist-data-simulator; extra == "test"
48
48
  Requires-Dist: dkist-processing-common[inventory]; extra == "test"
49
49
  Requires-Dist: dkist-processing-common[asdf]; extra == "test"
50
50
  Requires-Dist: dkist-processing-common[quality]; extra == "test"
@@ -342,8 +342,7 @@ class WriteL1DatasetExtras(WriteL1Base, ABC):
342
342
  if self.validate_l1_on_write:
343
343
  # Replace this logic with the fits_header_decoder once FITS library keys have been removed from the SPEC
344
344
  with fits.open(self.scratch.absolute_path(filename)) as hdul:
345
- header = hdul[1].header
346
- spec_extras_validator.validate(header, extra=False)
345
+ spec_extras_validator.validate(hdul, extra=False)
347
346
 
348
347
  logger.info(f"Wrote dataset extra to {filename}.")
349
348
 
@@ -15,7 +15,6 @@ from astropy.time import Time
15
15
  from dkist_fits_specifications import __version__ as spec_version
16
16
  from dkist_fits_specifications.utils.formatter import reformat_spec214_header
17
17
  from dkist_header_validator import spec214_validator
18
- from dkist_header_validator.translator import remove_extra_axis_keys
19
18
  from dkist_header_validator.translator import remove_spec_122_keys_and_spec_214_l0_keys
20
19
  from dkist_spectral_lines.search import get_closest_spectral_line
21
20
  from dkist_spectral_lines.search import get_spectral_lines
@@ -104,8 +103,7 @@ class WriteL1Frame(WriteL1Base, ABC):
104
103
  if self.validate_l1_on_write:
105
104
  # Replace this logic with the fits_header_decoder once FITS library keys have been removed from the SPEC
106
105
  with fits.open(self.scratch.absolute_path(relative_path)) as hdul:
107
- header = hdul[1].header
108
- spec214_validator.validate(header, extra=False)
106
+ spec214_validator.validate(hdul, extra=False)
109
107
 
110
108
  def replace_header_values(self, header: fits.Header, data: np.ndarray) -> fits.Header:
111
109
  """Replace header values that should already exist with new values."""
@@ -349,9 +347,7 @@ class WriteL1Frame(WriteL1Base, ABC):
349
347
  # Add the spectral line headers
350
348
  header = self.add_spectral_line_headers(header=header)
351
349
  # Remove any headers not contained in spec 214
352
- header = remove_spec_122_keys_and_spec_214_l0_keys(input_headers=header)
353
- # Remove any keys referring to axes that don't exist
354
- header = remove_extra_axis_keys(input_headers=header)
350
+ header = remove_spec_122_keys_and_spec_214_l0_keys(header)
355
351
  return header
356
352
 
357
353
  def add_doc_headers(self, header: fits.Header) -> fits.Header:
@@ -22,7 +22,6 @@ from astropy.io import fits
22
22
  from astropy.time import Time
23
23
  from dkist_data_simulator.dataset import key_function
24
24
  from dkist_data_simulator.spec122 import Spec122Dataset
25
- from dkist_header_validator import spec122_validator
26
25
  from dkist_header_validator.translator import sanitize_to_spec214_level1
27
26
  from dkist_processing_pac.fitter.fitter_parameters import PolcalDresserParameters
28
27
  from dkist_processing_pac.fitter.polcal_fitter import PolcalFitter
@@ -112,6 +111,7 @@ class CommonDataset(Spec122Dataset):
112
111
  dataset_shape=(2, 10, 10),
113
112
  instrument="visp",
114
113
  start_time=datetime(2020, 1, 1, 0, 0, 0, 0),
114
+ file_schema="level0_spec214",
115
115
  )
116
116
 
117
117
  self.add_constant_key("TELEVATN", 6.28)
@@ -150,13 +150,7 @@ def complete_common_header():
150
150
  A header with some common by-frame keywords
151
151
  """
152
152
  ds = CommonDataset()
153
- header_list = [
154
- spec122_validator.validate_and_translate_to_214_l0(d.header(), return_type=fits.HDUList)[
155
- 0
156
- ].header
157
- for d in ds
158
- ]
159
-
153
+ header_list = [fits.Header(d.header()) for d in ds]
160
154
  return header_list[0]
161
155
 
162
156
 
@@ -166,12 +160,7 @@ def complete_polarimetric_header():
166
160
  A header with some common by-frame keywords
167
161
  """
168
162
  ds = CommonDataset(polarimetric=True)
169
- header_list = [
170
- spec122_validator.validate_and_translate_to_214_l0(d.header(), return_type=fits.HDUList)[
171
- 0
172
- ].header
173
- for d in ds
174
- ]
163
+ header_list = [fits.Header(d.header()) for d in ds]
175
164
 
176
165
  return header_list[0]
177
166
 
@@ -237,6 +226,7 @@ class CalibrationSequenceDataset(Spec122Dataset):
237
226
  time_delta,
238
227
  instrument=instrument,
239
228
  start_time=datetime(2020, 1, 1, 0, 0, 0),
229
+ file_schema="level0_spec214",
240
230
  )
241
231
  self.add_constant_key("DKIST004", "polcal")
242
232
  self.add_constant_key("TELEVATN", 6.28)
@@ -281,6 +271,7 @@ class NonPolCalDataset(Spec122Dataset):
281
271
  time_delta=1,
282
272
  instrument="visp",
283
273
  start_time=datetime(2020, 1, 1, 0, 0, 0),
274
+ file_schema="level0_spec214",
284
275
  ) # Instrument doesn't matter
285
276
  self.add_constant_key("DKIST004", "dark") # Anything that's not polcal
286
277
  self.add_constant_key("ID___013", "PROPOSAL_ID1")
@@ -339,12 +330,8 @@ def grouped_cal_sequence_fits_objs(
339
330
  num_frames_per_CS_step=num_frames_per_cs_step,
340
331
  num_modstates=num_modstates,
341
332
  )
342
- header_list = [
343
- spec122_validator.validate_and_translate_to_214_l0(d.header(), return_type=fits.HDUList)[
344
- 0
345
- ].header
346
- for d in ds
347
- ]
333
+ header_list = [fits.Header(d.header()) for d in ds]
334
+
348
335
  expected_cs_dict = defaultdict(list)
349
336
  for i in range(ds.num_steps):
350
337
  for m in range(ds.num_modstates):
@@ -367,12 +354,8 @@ def grouped_cal_sequence_modstate_fits_objs(
367
354
  num_frames_per_CS_step=num_frames_per_cs_step,
368
355
  num_modstates=num_modstates,
369
356
  )
370
- header_list = [
371
- spec122_validator.validate_and_translate_to_214_l0(d.header(), return_type=fits.HDUList)[
372
- 0
373
- ].header
374
- for d in ds
375
- ]
357
+ header_list = [fits.Header(d.header()) for d in ds]
358
+
376
359
  expected_cs_dict = defaultdict(lambda: defaultdict(list))
377
360
  for i in range(ds.num_steps):
378
361
  for m in range(ds.num_modstates):
@@ -387,12 +370,7 @@ def grouped_cal_sequence_modstate_fits_objs(
387
370
  @pytest.fixture(scope="session")
388
371
  def non_polcal_fits_objs() -> list[L0FitsAccess]:
389
372
  ds = NonPolCalDataset()
390
- header_list = [
391
- spec122_validator.validate_and_translate_to_214_l0(d.header(), return_type=fits.HDUList)[
392
- 0
393
- ].header
394
- for d in ds
395
- ]
373
+ header_list = [fits.Header(d.header()) for d in ds]
396
374
  obj_list = [L0FitsAccess(header=h) for h in header_list]
397
375
  return obj_list
398
376
 
@@ -447,7 +425,12 @@ class CalibrationSequenceStepDataset(Spec122Dataset):
447
425
  self.dark_status = dark_status
448
426
  dataset_shape = (self.num_mod,) + array_shape[1:]
449
427
  super().__init__(
450
- dataset_shape, array_shape, time_delta, instrument=instrument, start_time=start_time
428
+ dataset_shape,
429
+ array_shape,
430
+ time_delta,
431
+ instrument=instrument,
432
+ start_time=start_time,
433
+ file_schema="level0_spec214",
451
434
  )
452
435
  self.add_constant_key("DKIST004", "polcal")
453
436
  self.add_constant_key("WAVELNTH", 666.0)
@@ -564,12 +547,7 @@ def cs_with_correct_geometry(cs_data_shape):
564
547
  start_time=start_time,
565
548
  num_mod=10,
566
549
  )
567
- header_list = [
568
- spec122_validator.validate_and_translate_to_214_l0(
569
- d.header(), return_type=fits.HDUList
570
- )[0].header
571
- for d in ds
572
- ]
550
+ header_list = [fits.Header(d.header()) for d in ds]
573
551
  hdu_list = []
574
552
  for m in range(ds.num_mod):
575
553
  hdu_list.append(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-common
3
- Version: 14.4.0
3
+ Version: 14.5.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
@@ -16,7 +16,7 @@ Description-Content-Type: text/x-rst
16
16
  Requires-Dist: asdf<6.0,>=3.5.0
17
17
  Requires-Dist: astropy>=7.0.0
18
18
  Requires-Dist: dkist-fits-specifications<5.0,>=4.24.0
19
- Requires-Dist: dkist-header-validator<6.0,>=5.3.0
19
+ Requires-Dist: dkist-header-validator>=v6.0.0
20
20
  Requires-Dist: dkist-processing-core==7.5.0
21
21
  Requires-Dist: dkist-processing-pac<4.0,>=3.1
22
22
  Requires-Dist: dkist-service-configuration<5.0,>=4.3.0
@@ -44,7 +44,7 @@ Requires-Dist: pytest-xdist; extra == "test"
44
44
  Requires-Dist: pytest-cov; extra == "test"
45
45
  Requires-Dist: pytest-mock; extra == "test"
46
46
  Requires-Dist: hypothesis; extra == "test"
47
- Requires-Dist: dkist-data-simulator>=5.2.6; extra == "test"
47
+ Requires-Dist: dkist-data-simulator; extra == "test"
48
48
  Requires-Dist: dkist-processing-common[inventory]; extra == "test"
49
49
  Requires-Dist: dkist-processing-common[asdf]; extra == "test"
50
50
  Requires-Dist: dkist-processing-common[quality]; extra == "test"
@@ -1,7 +1,7 @@
1
1
  asdf<6.0,>=3.5.0
2
2
  astropy>=7.0.0
3
3
  dkist-fits-specifications<5.0,>=4.24.0
4
- dkist-header-validator<6.0,>=5.3.0
4
+ dkist-header-validator>=v6.0.0
5
5
  dkist-processing-core==7.5.0
6
6
  dkist-processing-pac<4.0,>=3.1
7
7
  dkist-service-configuration<5.0,>=4.3.0
@@ -48,7 +48,7 @@ pytest-xdist
48
48
  pytest-cov
49
49
  pytest-mock
50
50
  hypothesis
51
- dkist-data-simulator>=5.2.6
51
+ dkist-data-simulator
52
52
  dkist-processing-common[inventory]
53
53
  dkist-processing-common[asdf]
54
54
  dkist-processing-common[quality]
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "14.5.0",
3
+ "distance": 0,
4
+ "node": "gbea30013127b2e627308dd13f03479bdf1387c5b",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-09-24"
8
+ }
@@ -24,7 +24,7 @@ dependencies = [
24
24
  "asdf >= 3.5.0, <6.0",
25
25
  "astropy >= 7.0.0",
26
26
  "dkist-fits-specifications >= 4.24.0, <5.0",
27
- "dkist-header-validator >= 5.3.0, <6.0",
27
+ "dkist-header-validator >= v6.0.0",
28
28
  "dkist-processing-core == 7.5.0",
29
29
  "dkist-processing-pac >= 3.1, <4.0",
30
30
  "dkist-service-configuration >= 4.3.0, <5.0",
@@ -61,7 +61,7 @@ test = [
61
61
  "pytest-cov",
62
62
  "pytest-mock",
63
63
  "hypothesis",
64
- "dkist-data-simulator >= 5.2.6",
64
+ "dkist-data-simulator",
65
65
  "dkist-processing-common[inventory]",
66
66
  "dkist-processing-common[asdf]",
67
67
  "dkist-processing-common[quality]",
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "14.4.0",
3
- "distance": 0,
4
- "node": "g03f7e0aad3e664b565bb1157eae944f016af3c30",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-08-25"
8
- }