dkist-processing-common 13.0.3rc3__tar.gz → 13.0.4__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 (143) hide show
  1. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/.readthedocs.yml +1 -1
  2. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/CHANGELOG.rst +30 -0
  3. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/PKG-INFO +2 -2
  4. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/assemble_movie.py +1 -1
  5. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/trial_catalog.py +1 -1
  6. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/conftest.py +2 -2
  7. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_codecs.py +8 -11
  8. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_fits_access.py +0 -1
  9. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_quality_mixin.py +2 -2
  10. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_write_l1.py +78 -64
  11. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common.egg-info/PKG-INFO +2 -2
  12. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common.egg-info/SOURCES.txt +0 -2
  13. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common.egg-info/requires.txt +1 -1
  14. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/pyproject.toml +11 -1
  15. dkist_processing_common-13.0.3rc3/changelog/322.misc.rst +0 -1
  16. dkist_processing_common-13.0.3rc3/changelog/326.feature.rst +0 -1
  17. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/.gitignore +0 -0
  18. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/.pre-commit-config.yaml +0 -0
  19. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/.snyk +0 -0
  20. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/README.rst +0 -0
  21. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/bitbucket-pipelines.yml +0 -0
  22. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/changelog/.gitempty +0 -0
  23. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/__init__.py +0 -0
  24. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/_util/__init__.py +0 -0
  25. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/_util/constants.py +0 -0
  26. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/_util/graphql.py +0 -0
  27. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/_util/scratch.py +0 -0
  28. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/_util/tags.py +0 -0
  29. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/__init__.py +0 -0
  30. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/array.py +0 -0
  31. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/asdf.py +0 -0
  32. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/basemodel.py +0 -0
  33. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/bytes.py +0 -0
  34. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/fits.py +0 -0
  35. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/iobase.py +0 -0
  36. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/json.py +0 -0
  37. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/path.py +0 -0
  38. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/quality.py +0 -0
  39. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/str.py +0 -0
  40. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/config.py +0 -0
  41. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/fonts/Lato-Regular.ttf +0 -0
  42. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/fonts/__init__.py +0 -0
  43. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/manual.py +0 -0
  44. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/__init__.py +0 -0
  45. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/constants.py +0 -0
  46. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/dkist_location.py +0 -0
  47. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/extras.py +0 -0
  48. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/fits_access.py +0 -0
  49. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/flower_pot.py +0 -0
  50. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/fried_parameter.py +0 -0
  51. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/graphql.py +0 -0
  52. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/input_dataset.py +0 -0
  53. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/message.py +0 -0
  54. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/message_queue_binding.py +0 -0
  55. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/metric_code.py +0 -0
  56. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/parameters.py +0 -0
  57. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/quality.py +0 -0
  58. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/tags.py +0 -0
  59. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/task_name.py +0 -0
  60. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/telemetry.py +0 -0
  61. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/wavelength.py +0 -0
  62. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/__init__.py +0 -0
  63. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/average_bud.py +0 -0
  64. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/cs_step.py +0 -0
  65. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/dsps_repeat.py +0 -0
  66. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/experiment_id_bud.py +0 -0
  67. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/id_bud.py +0 -0
  68. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/l0_fits_access.py +0 -0
  69. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/l1_fits_access.py +0 -0
  70. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/lookup_bud.py +0 -0
  71. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/near_bud.py +0 -0
  72. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/observing_program_id_bud.py +0 -0
  73. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/proposal_id_bud.py +0 -0
  74. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/quality.py +0 -0
  75. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/retarder.py +0 -0
  76. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/single_value_single_key_flower.py +0 -0
  77. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/task.py +0 -0
  78. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/time.py +0 -0
  79. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/unique_bud.py +0 -0
  80. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/wavelength.py +0 -0
  81. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/__init__.py +0 -0
  82. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/base.py +0 -0
  83. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/l1_output_data.py +0 -0
  84. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/__init__.py +0 -0
  85. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/globus.py +0 -0
  86. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/interservice_bus.py +0 -0
  87. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/metadata_store.py +0 -0
  88. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/object_store.py +0 -0
  89. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/quality/__init__.py +0 -0
  90. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/quality/_base.py +0 -0
  91. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/quality/_metrics.py +0 -0
  92. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/output_data_base.py +0 -0
  93. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/parse_l0_input_data.py +0 -0
  94. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/quality_metrics.py +0 -0
  95. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/teardown.py +0 -0
  96. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/transfer_input_data.py +0 -0
  97. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/trial_output_data.py +0 -0
  98. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/write_extra.py +0 -0
  99. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/write_l1.py +0 -0
  100. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/write_l1_base.py +0 -0
  101. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/__init__.py +0 -0
  102. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/mock_metadata_store.py +0 -0
  103. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_assemble_movie.py +0 -0
  104. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_assemble_quality.py +0 -0
  105. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_base.py +0 -0
  106. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_constants.py +0 -0
  107. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_construct_dataset_extras.py +0 -0
  108. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_cs_step.py +0 -0
  109. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_dkist_location.py +0 -0
  110. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_flower_pot.py +0 -0
  111. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_fried_parameter.py +0 -0
  112. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_input_dataset.py +0 -0
  113. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_interservice_bus.py +0 -0
  114. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_interservice_bus_mixin.py +0 -0
  115. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_manual_processing.py +0 -0
  116. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_output_data_base.py +0 -0
  117. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_parameters.py +0 -0
  118. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_parse_l0_input_data.py +0 -0
  119. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_publish_catalog_messages.py +0 -0
  120. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_quality.py +0 -0
  121. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_scratch.py +0 -0
  122. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_stems.py +0 -0
  123. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_submit_dataset_metadata.py +0 -0
  124. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_tags.py +0 -0
  125. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_task_name.py +0 -0
  126. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_task_parsing.py +0 -0
  127. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_teardown.py +0 -0
  128. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_transfer_input_data.py +0 -0
  129. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_transfer_l1_output_data.py +0 -0
  130. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_trial_catalog.py +0 -0
  131. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_trial_output_data.py +0 -0
  132. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_workflow_task_base.py +0 -0
  133. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common.egg-info/dependency_links.txt +0 -0
  134. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common.egg-info/top_level.txt +0 -0
  135. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/Makefile +0 -0
  136. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/changelog.rst +0 -0
  137. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/conf.py +0 -0
  138. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/index.rst +0 -0
  139. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/landing_page.rst +0 -0
  140. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/make.bat +0 -0
  141. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/requirements.txt +0 -0
  142. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/licenses/LICENSE.rst +0 -0
  143. {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  version: 2
2
2
  build:
3
- os: ubuntu-20.04
3
+ os: ubuntu-24.04
4
4
  tools:
5
5
  python: "3.13"
6
6
  apt_packages:
@@ -1,3 +1,33 @@
1
+ v13.0.4 (2026-04-16)
2
+ ====================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Convert fits.open usage in tests to context managers. (`#289 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/289>`__)
8
+ - Remove deprecated Astropy usage (e.g., CompImageHeader) and updated tests accordingly. (`#289 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/289>`__)
9
+ - Configure pyproject.toml to turn warnings raised during testing into errors.
10
+ Ignore certain testing warnings that we know are okay. (`#289 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/289>`__)
11
+ - Modernize code to address Python 3.13 deprecations (e.g., datetime.utcnow, Pillow image mode handling). (`#289 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/289>`__)
12
+ - Update dkist-processing-core to v7.2.1, which includes better warning handling and an RTD build OS update. (`#298 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/298>`__)
13
+ - Upgrade Read the Docs LTS build image to Ubuntu 24.04. (`#328 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/328>`__)
14
+
15
+
16
+ v13.0.3 (2026-04-14)
17
+ ====================
18
+
19
+ Features
20
+ --------
21
+
22
+ - Simplify the production of L1 quality metrics. (`#326 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/326>`__)
23
+
24
+
25
+ Misc
26
+ ----
27
+
28
+ - Make isb username and password configurable for local unit tests. (`#322 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/322>`__)
29
+
30
+
1
31
  v13.0.1 (2026-04-07)
2
32
  ====================
3
33
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-common
3
- Version: 13.0.3rc3
3
+ Version: 13.0.4
4
4
  Summary: Common task classes used by the DKIST science data processing pipelines
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -17,7 +17,7 @@ Requires-Dist: asdf<4.0.0,>=3.5.0
17
17
  Requires-Dist: astropy>=7.0.0
18
18
  Requires-Dist: dkist-fits-specifications<5.0,>=4.24.0
19
19
  Requires-Dist: dkist-header-validator<6.0,>=5.3.0
20
- Requires-Dist: dkist-processing-core==7.1.0
20
+ Requires-Dist: dkist-processing-core==7.2.1
21
21
  Requires-Dist: dkist-processing-pac<4.0,>=3.1
22
22
  Requires-Dist: dkist-service-configuration<5.0,>=4.3.0
23
23
  Requires-Dist: dkist-spectral-lines<4.0,>=3.0.0
@@ -225,7 +225,7 @@ class AssembleMovie(WorkflowTaskBase, ABC):
225
225
  )
226
226
 
227
227
  background = Image.new("RGB", self.MOVIE_FRAME_SHAPE, (0, 0, 0))
228
- frame_im = Image.fromarray(colored_image, mode="RGB")
228
+ frame_im = Image.fromarray(colored_image)
229
229
  frame_im = frame_im.resize(self.MOVIE_FRAME_SHAPE, resample=Image.NEAREST)
230
230
  background.paste(frame_im)
231
231
  draw = ImageDraw.Draw(background)
@@ -93,7 +93,7 @@ class CreateTrialDatasetInventory(OutputDataBase):
93
93
  frame_inventory["_id"] = uuid4().hex
94
94
  frame_inventory["bucket"] = self.destination_bucket
95
95
  frame_inventory["frameStatus"] = "AVAILABLE"
96
- frame_inventory["createDate"] = datetime.utcnow().isoformat("T")
96
+ frame_inventory["createDate"] = datetime.now().isoformat("T")
97
97
  frame_inventory["updateDate"] = None
98
98
  frame_inventory["lostDate"] = None
99
99
  frame_inventory["headerHDU"] = 1
@@ -617,7 +617,7 @@ def visp_modulation_matrix() -> np.ndarray:
617
617
 
618
618
  @pytest.fixture(scope="session")
619
619
  def fully_realistic_local_cs(
620
- cs_with_correct_geometry, visp_modulation_matrix, pac_fit_mode, pac_init_set
620
+ cs_with_correct_geometry, visp_modulation_matrix, pac_fit_mode, pac_init_set, cs_data_shape
621
621
  ):
622
622
 
623
623
  cs_dict = cs_with_correct_geometry
@@ -643,7 +643,7 @@ def fully_realistic_local_cs(
643
643
  # Now set the "observed" value for each of the input objects
644
644
  for m in range(dresser.nummod):
645
645
  for n in range(dresser.numsteps):
646
- cs_dict[n][m].data *= observed[m, n] / np.mean(cs_dict[n][m].data)
646
+ cs_dict[n][m].data = np.ones(cs_data_shape) * observed[m, n]
647
647
 
648
648
  return cs_dict
649
649
 
@@ -454,11 +454,10 @@ def test_fits_array_encoder_header_preserved(ndarray_object, header_func: Callab
454
454
  header = header_func(raw_header)
455
455
  encoded_data = fits_array_encoder(data=ndarray_object, header=header)
456
456
  bytes_reader = BytesIO(encoded_data)
457
- hdul = fits.open(bytes_reader)
458
-
459
- assert len(hdul) == 1
460
- np.testing.assert_equal(hdul[0].data, ndarray_object)
461
- assert hdul[0].header["KEY1"] == "VALUE1"
457
+ with fits.open(bytes_reader) as hdul:
458
+ assert len(hdul) == 1
459
+ np.testing.assert_equal(hdul[0].data, ndarray_object)
460
+ assert hdul[0].header["KEY1"] == "VALUE1"
462
461
 
463
462
 
464
463
  @pytest.mark.parametrize(
@@ -584,13 +583,11 @@ def test_fits_header_decoder(path_fixture_name, request):
584
583
  if init_num_fd is not None:
585
584
  assert init_num_fd == post_num_fd
586
585
 
587
- hdul = fits.open(file_path, disable_image_compression=True)
588
- if "compressed" in path_fixture_name:
589
- expected_header = hdul[1].header
590
- else:
591
- expected_header = hdul[0].header
586
+ with fits.open(file_path, disable_image_compression=True) as hdul:
587
+ index = 1 if "compressed" in path_fixture_name else 0
588
+ expected_header = hdul[index].header
592
589
 
593
- assert header == expected_header
590
+ assert header == expected_header
594
591
 
595
592
 
596
593
  @pytest.mark.parametrize(
@@ -342,7 +342,6 @@ def test_header_dict(hdu_with_special_keys):
342
342
  [
343
343
  pytest.param(dict, id="Dict"),
344
344
  pytest.param(fits.header.Header, id="Header"),
345
- pytest.param(fits.hdu.compressed.CompImageHeader, id="CompHeader"),
346
345
  ],
347
346
  )
348
347
  def test_from_header_naxis_preserved(header_type):
@@ -1074,8 +1074,8 @@ def test_validate_vertical_multi_pane_plot_model():
1074
1074
  # Test invalid case
1075
1075
  with pytest.raises(
1076
1076
  ValidationError,
1077
- match="The number of items in `top_to_bottom_height_ratios` list \(3\) is not "
1078
- "the same as the number of plots \(2\)",
1077
+ match=r"The number of items in `top_to_bottom_height_ratios` list \(3\) is not "
1078
+ r"the same as the number of plots \(2\)",
1079
1079
  ):
1080
1080
  _ = VerticalMultiPanePlot2D(
1081
1081
  top_to_bottom_plot_list=[plot2d, plot2d], top_to_bottom_height_ratios=[1.0, 2.0, 3.0]
@@ -445,17 +445,18 @@ def test_solarnet_keys(write_l1_task, mocker, fake_gql_client):
445
445
  task()
446
446
  files = list(task.read(tags=[Tag.frame(), Tag.output()]))
447
447
  for file in files:
448
- header = fits.open(file)[1].header
449
- assert header["DATEREF"] == header["DATE-BEG"]
450
- assert round(header["OBSGEO-X"]) == -5466045
451
- assert round(header["OBSGEO-Y"]) == -2404389
452
- assert round(header["OBSGEO-Z"]) == 2242134
453
- assert header["SOLARRAD"] == 975.58
454
- assert header["SPECSYS"] == "TOPOCENT"
455
- assert header["VELOSYS"] == 0.0
456
- assert header["WAVEBAND"] == "Fe XIII (1079.8 nm)"
457
- assert header["WAVEMIN"] == 1075.0
458
- assert header["WAVEMAX"] == 1085.0
448
+ with fits.open(file) as hdu:
449
+ header = hdu[1].header
450
+ assert header["DATEREF"] == header["DATE-BEG"]
451
+ assert round(header["OBSGEO-X"]) == -5466045
452
+ assert round(header["OBSGEO-Y"]) == -2404389
453
+ assert round(header["OBSGEO-Z"]) == 2242134
454
+ assert header["SOLARRAD"] == 975.58
455
+ assert header["SPECSYS"] == "TOPOCENT"
456
+ assert header["VELOSYS"] == 0.0
457
+ assert header["WAVEBAND"] == "Fe XIII (1079.8 nm)"
458
+ assert header["WAVEMIN"] == 1075.0
459
+ assert header["WAVEMAX"] == 1085.0
459
460
 
460
461
 
461
462
  def test_documentation_keys(write_l1_task, mocker, fake_gql_client):
@@ -477,18 +478,20 @@ def test_documentation_keys(write_l1_task, mocker, fake_gql_client):
477
478
  task()
478
479
  files = list(task.read(tags=[Tag.frame(), Tag.output()]))
479
480
  for file in files:
480
- header = fits.open(file)[1].header
481
- assert header["INFO_URL"] == task.docs_base_url
482
- assert header["HEADVERS"] == spec_version
483
- assert (
484
- header["HEAD_URL"] == f"{task.docs_base_url}/projects/data-products/en/v{spec_version}"
485
- )
486
- calvers = task.version_from_module_name()
487
- assert header["CALVERS"] == calvers
488
- assert (
489
- header["CAL_URL"]
490
- == f"{task.docs_base_url}/projects/{task.constants.instrument.lower()}/en/v{calvers}/{task.workflow_name}.html"
491
- )
481
+ with fits.open(file) as hdu:
482
+ header = hdu[1].header
483
+ assert header["INFO_URL"] == task.docs_base_url
484
+ assert header["HEADVERS"] == spec_version
485
+ assert (
486
+ header["HEAD_URL"]
487
+ == f"{task.docs_base_url}/projects/data-products/en/v{spec_version}"
488
+ )
489
+ calvers = task.version_from_module_name()
490
+ assert header["CALVERS"] == calvers
491
+ assert (
492
+ header["CAL_URL"]
493
+ == f"{task.docs_base_url}/projects/{task.constants.instrument.lower()}/en/v{calvers}/{task.workflow_name}.html"
494
+ )
492
495
 
493
496
 
494
497
  def test_get_version_from_module(write_l1_task):
@@ -519,13 +522,13 @@ def test_rice_compression_with_specified_tile_size(write_l1_task, mocker, fake_g
519
522
  task()
520
523
  files = list(task.read(tags=[Tag.frame(), Tag.output()]))
521
524
  for file in files:
522
- hdul = fits.open(file)
523
- bintable = hdul[1]._get_bintable_without_data()
524
- comp_header = bintable.header
525
- data_shape = list(hdul[1].data.shape)
526
- data_shape.reverse()
527
- for i, dim in enumerate(data_shape):
528
- assert comp_header["ZTILE" + str(i + 1)] == min(dim, TILE_SIZE)
525
+ with fits.open(file) as hdul:
526
+ bintable = hdul[1]._get_bintable_without_data()
527
+ comp_header = bintable.header
528
+ data_shape = list(hdul[1].data.shape)
529
+ data_shape.reverse()
530
+ for i, dim in enumerate(data_shape):
531
+ assert comp_header["ZTILE" + str(i + 1)] == min(dim, TILE_SIZE)
529
532
 
530
533
 
531
534
  def test_rice_compression_with_default_tile_size(
@@ -547,14 +550,14 @@ def test_rice_compression_with_default_tile_size(
547
550
  assert task.tile_size_param == None
548
551
  files = list(task.read(tags=[Tag.frame(), Tag.output()]))
549
552
  for file in files:
550
- hdul = fits.open(file)
551
- bintable = hdul[1]._get_bintable_without_data()
552
- comp_header = bintable.header
553
- data_shape = list(hdul[1].data.shape)
554
- data_shape.reverse()
555
- assert comp_header["ZTILE1"] == data_shape[0]
556
- assert comp_header["ZTILE2"] == 128
557
- assert comp_header["ZTILE3"] == 1
553
+ with fits.open(file) as hdul:
554
+ bintable = hdul[1]._get_bintable_without_data()
555
+ comp_header = bintable.header
556
+ data_shape = list(hdul[1].data.shape)
557
+ data_shape.reverse()
558
+ assert comp_header["ZTILE1"] == data_shape[0]
559
+ assert comp_header["ZTILE2"] == 128
560
+ assert comp_header["ZTILE3"] == 1
558
561
 
559
562
 
560
563
  def test_reprocessing_keys(write_l1_task, mocker, fake_gql_client):
@@ -571,20 +574,26 @@ def test_reprocessing_keys(write_l1_task, mocker, fake_gql_client):
571
574
  task()
572
575
  files = list(task.read(tags=[Tag.frame(), Tag.output()]))
573
576
  for file in files:
574
- header = fits.open(file)[1].header
575
- assert header["IDSPARID"] == task.metadata_store_input_dataset_parameters.inputDatasetPartId
576
- assert (
577
- header["IDSOBSID"]
578
- == task.metadata_store_input_dataset_observe_frames.inputDatasetPartId
579
- )
580
- assert (
581
- header["IDSCALID"]
582
- == task.metadata_store_input_dataset_calibration_frames.inputDatasetPartId
583
- )
584
- assert header["WKFLNAME"] == task.workflow_name
585
- assert header["WKFLVERS"] == task.workflow_version
586
- assert header["PROCTYPE"] == "L1"
587
- assert header["PRODUCT"] == task.compute_product_id(header["IDSOBSID"], header["PROCTYPE"])
577
+ with fits.open(file) as hdu:
578
+ header = hdu[1].header
579
+ assert (
580
+ header["IDSPARID"]
581
+ == task.metadata_store_input_dataset_parameters.inputDatasetPartId
582
+ )
583
+ assert (
584
+ header["IDSOBSID"]
585
+ == task.metadata_store_input_dataset_observe_frames.inputDatasetPartId
586
+ )
587
+ assert (
588
+ header["IDSCALID"]
589
+ == task.metadata_store_input_dataset_calibration_frames.inputDatasetPartId
590
+ )
591
+ assert header["WKFLNAME"] == task.workflow_name
592
+ assert header["WKFLVERS"] == task.workflow_version
593
+ assert header["PROCTYPE"] == "L1"
594
+ assert header["PRODUCT"] == task.compute_product_id(
595
+ header["IDSOBSID"], header["PROCTYPE"]
596
+ )
588
597
 
589
598
 
590
599
  def test_missing_input_dataset_part(
@@ -603,13 +612,17 @@ def test_missing_input_dataset_part(
603
612
  task()
604
613
  files = list(task.read(tags=[Tag.frame(), Tag.output()]))
605
614
  for file in files:
606
- header = fits.open(file)[1].header
607
- assert header["IDSPARID"] == task.metadata_store_input_dataset_parameters.inputDatasetPartId
608
- assert (
609
- header["IDSOBSID"]
610
- == task.metadata_store_input_dataset_observe_frames.inputDatasetPartId
611
- )
612
- assert "IDSCALID" not in header
615
+ with fits.open(file) as hdu:
616
+ header = hdu[1].header
617
+ assert (
618
+ header["IDSPARID"]
619
+ == task.metadata_store_input_dataset_parameters.inputDatasetPartId
620
+ )
621
+ assert (
622
+ header["IDSOBSID"]
623
+ == task.metadata_store_input_dataset_observe_frames.inputDatasetPartId
624
+ )
625
+ assert "IDSCALID" not in header
613
626
 
614
627
 
615
628
  @pytest.mark.parametrize(
@@ -757,8 +770,9 @@ def test_empty_waveband(write_l1_task_with_empty_waveband, mocker, fake_gql_clie
757
770
  task()
758
771
  files = list(task.read(tags=[Tag.frame(), Tag.output()]))
759
772
  for file in files:
760
- header = fits.open(file)[1].header
761
- assert header["WAVEMIN"] == 10000
762
- assert header["WAVEMAX"] == 10050
763
- with pytest.raises(KeyError):
764
- header["WAVEBAND"]
773
+ with fits.open(file) as hdu:
774
+ header = hdu[1].header
775
+ assert header["WAVEMIN"] == 10000
776
+ assert header["WAVEMAX"] == 10050
777
+ with pytest.raises(KeyError):
778
+ header["WAVEBAND"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-common
3
- Version: 13.0.3rc3
3
+ Version: 13.0.4
4
4
  Summary: Common task classes used by the DKIST science data processing pipelines
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -17,7 +17,7 @@ Requires-Dist: asdf<4.0.0,>=3.5.0
17
17
  Requires-Dist: astropy>=7.0.0
18
18
  Requires-Dist: dkist-fits-specifications<5.0,>=4.24.0
19
19
  Requires-Dist: dkist-header-validator<6.0,>=5.3.0
20
- Requires-Dist: dkist-processing-core==7.1.0
20
+ Requires-Dist: dkist-processing-core==7.2.1
21
21
  Requires-Dist: dkist-processing-pac<4.0,>=3.1
22
22
  Requires-Dist: dkist-service-configuration<5.0,>=4.3.0
23
23
  Requires-Dist: dkist-spectral-lines<4.0,>=3.0.0
@@ -7,8 +7,6 @@ README.rst
7
7
  bitbucket-pipelines.yml
8
8
  pyproject.toml
9
9
  changelog/.gitempty
10
- changelog/322.misc.rst
11
- changelog/326.feature.rst
12
10
  dkist_processing_common/__init__.py
13
11
  dkist_processing_common/config.py
14
12
  dkist_processing_common/manual.py
@@ -2,7 +2,7 @@ asdf<4.0.0,>=3.5.0
2
2
  astropy>=7.0.0
3
3
  dkist-fits-specifications<5.0,>=4.24.0
4
4
  dkist-header-validator<6.0,>=5.3.0
5
- dkist-processing-core==7.1.0
5
+ dkist-processing-core==7.2.1
6
6
  dkist-processing-pac<4.0,>=3.1
7
7
  dkist-service-configuration<5.0,>=4.3.0
8
8
  dkist-spectral-lines<4.0,>=3.0.0
@@ -25,7 +25,7 @@ dependencies = [
25
25
  "astropy >= 7.0.0",
26
26
  "dkist-fits-specifications >= 4.24.0, <5.0",
27
27
  "dkist-header-validator >= 5.3.0, <6.0",
28
- "dkist-processing-core == 7.1.0",
28
+ "dkist-processing-core == 7.2.1",
29
29
  "dkist-processing-pac >= 3.1, <4.0",
30
30
  "dkist-service-configuration >= 4.3.0, <5.0",
31
31
  "dkist-spectral-lines >= 3.0.0, <4.0",
@@ -89,6 +89,16 @@ markers = [
89
89
  "development: For tests that can only be run while developing with a sidecar proxy (as opposed to in bitbucket pipelines)",
90
90
  "flaky: For tests that sporadically fail",
91
91
  ]
92
+ filterwarnings = [
93
+ # Turn all warnings into errors so they do not pass silently.
94
+ "error",
95
+ # Ignore pytest's funnybusiness
96
+ "ignore::pytest.PytestUnraisableExceptionWarning",
97
+ # A few cards are too long (> 80 char) only in testing, not in production. Ignore it here
98
+ "ignore:Card is too long, comment will be truncated:astropy.io.fits.verify.VerifyWarning",
99
+ # We don't care about this 'invalid value' during testing
100
+ "ignore:invalid value encountered in scalar divide:RuntimeWarning"
101
+ ]
92
102
 
93
103
  [tool.coverage.run]
94
104
  omit = [
@@ -1 +0,0 @@
1
- Make isb username and password configurable for local unit tests.
@@ -1 +0,0 @@
1
- Simplify the production of L1 quality metrics.