dkist-processing-common 6.0.3__tar.gz → 6.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 (119) hide show
  1. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/CHANGELOG.rst +9 -0
  2. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/PKG-INFO +1 -1
  3. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/fits_access.py +5 -1
  4. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_fits_access.py +32 -0
  5. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common.egg-info/PKG-INFO +1 -1
  6. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/.gitignore +0 -0
  7. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/.pre-commit-config.yaml +0 -0
  8. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/.readthedocs.yml +0 -0
  9. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/README.rst +0 -0
  10. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/bitbucket-pipelines.yml +0 -0
  11. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/changelog/.gitempty +0 -0
  12. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/check_changelog_updated.sh +0 -0
  13. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/__init__.py +0 -0
  14. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/_util/__init__.py +0 -0
  15. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/_util/config.py +0 -0
  16. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/_util/constants.py +0 -0
  17. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/_util/dkist_location.py +0 -0
  18. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/_util/graphql.py +0 -0
  19. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/_util/scratch.py +0 -0
  20. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/_util/tags.py +0 -0
  21. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/codecs/__init__.py +0 -0
  22. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/codecs/asdf.py +0 -0
  23. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/codecs/bytes.py +0 -0
  24. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/codecs/fits.py +0 -0
  25. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/codecs/iobase.py +0 -0
  26. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/codecs/json.py +0 -0
  27. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/codecs/path.py +0 -0
  28. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/codecs/str.py +0 -0
  29. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/fonts/Lato-Regular.ttf +0 -0
  30. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/fonts/__init__.py +0 -0
  31. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/manual.py +0 -0
  32. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/__init__.py +0 -0
  33. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/constants.py +0 -0
  34. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/flower_pot.py +0 -0
  35. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/graphql.py +0 -0
  36. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/message.py +0 -0
  37. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/parameters.py +0 -0
  38. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/quality.py +0 -0
  39. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/quality_json_encoders.py +0 -0
  40. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/tags.py +0 -0
  41. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/task_name.py +0 -0
  42. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/models/wavelength.py +0 -0
  43. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/__init__.py +0 -0
  44. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/cs_step.py +0 -0
  45. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/dsps_repeat.py +0 -0
  46. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/experiment_id_bud.py +0 -0
  47. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/id_bud.py +0 -0
  48. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/l0_fits_access.py +0 -0
  49. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/l1_fits_access.py +0 -0
  50. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/proposal_id_bud.py +0 -0
  51. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/quality.py +0 -0
  52. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/single_value_single_key_flower.py +0 -0
  53. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/task.py +0 -0
  54. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/time.py +0 -0
  55. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/unique_bud.py +0 -0
  56. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/parsers/wavelength.py +0 -0
  57. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/__init__.py +0 -0
  58. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/assemble_movie.py +0 -0
  59. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/base.py +0 -0
  60. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/l1_output_data.py +0 -0
  61. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/mixin/__init__.py +0 -0
  62. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/mixin/globus.py +0 -0
  63. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/mixin/input_dataset.py +0 -0
  64. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/mixin/interservice_bus.py +0 -0
  65. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/mixin/metadata_store.py +0 -0
  66. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/mixin/object_store.py +0 -0
  67. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/mixin/quality/__init__.py +0 -0
  68. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/mixin/quality/_base.py +0 -0
  69. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/mixin/quality/_metrics.py +0 -0
  70. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/output_data_base.py +0 -0
  71. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/parse_l0_input_data.py +0 -0
  72. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/quality_metrics.py +0 -0
  73. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/teardown.py +0 -0
  74. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/transfer_input_data.py +0 -0
  75. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/trial_catalog.py +0 -0
  76. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/trial_output_data.py +0 -0
  77. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tasks/write_l1.py +0 -0
  78. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/__init__.py +0 -0
  79. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/conftest.py +0 -0
  80. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_assemble_movie.py +0 -0
  81. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_base.py +0 -0
  82. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_codecs.py +0 -0
  83. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_constants.py +0 -0
  84. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_cs_step.py +0 -0
  85. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_dkist_location.py +0 -0
  86. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_flower_pot.py +0 -0
  87. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_input_dataset.py +0 -0
  88. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_output_data_base.py +0 -0
  89. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_parameters.py +0 -0
  90. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_parse_l0_input_data.py +0 -0
  91. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_publish_catalog_messages.py +0 -0
  92. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_quality.py +0 -0
  93. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_quality_mixin.py +0 -0
  94. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_scratch.py +0 -0
  95. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_stems.py +0 -0
  96. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_tags.py +0 -0
  97. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_task_name.py +0 -0
  98. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_task_parsing.py +0 -0
  99. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_teardown.py +0 -0
  100. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_transfer_input_data.py +0 -0
  101. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_transfer_l1_output_data.py +0 -0
  102. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_trial_catalog.py +0 -0
  103. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_trial_output_data.py +0 -0
  104. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_workflow_task_base.py +0 -0
  105. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common/tests/test_write_l1.py +0 -0
  106. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common.egg-info/SOURCES.txt +0 -0
  107. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common.egg-info/dependency_links.txt +0 -0
  108. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common.egg-info/requires.txt +0 -0
  109. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/dkist_processing_common.egg-info/top_level.txt +0 -0
  110. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/docs/Makefile +0 -0
  111. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/docs/changelog.rst +0 -0
  112. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/docs/conf.py +0 -0
  113. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/docs/index.rst +0 -0
  114. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/docs/make.bat +0 -0
  115. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/docs/requirements.txt +0 -0
  116. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/licenses/LICENSE.rst +0 -0
  117. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/pyproject.toml +0 -0
  118. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/setup.cfg +0 -0
  119. {dkist-processing-common-6.0.3 → dkist-processing-common-6.0.4}/setup.py +0 -0
@@ -1,3 +1,12 @@
1
+ v6.0.4 (2024-03-26)
2
+ ===================
3
+
4
+ Bugfixes
5
+ --------
6
+
7
+ - `FitsAccessBase.from_header` no longer clobbers "NAXISn" (and likely other FITS controlled keys) values from input header. (`#179 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/179>`__)
8
+
9
+
1
10
  v6.0.3 (2024-03-05)
2
11
  ===================
3
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dkist-processing-common
3
- Version: 6.0.3
3
+ Version: 6.0.4
4
4
  Summary: Common task classes used by the DKIST Science Data Processing pipelines to process DKIST data.
5
5
  Home-page: https://bitbucket.org/dkistdc/dkist-processing-common/src/main/
6
6
  Author: NSO / AURA
@@ -106,7 +106,11 @@ class FitsAccessBase:
106
106
  """
107
107
  if isinstance(header, dict):
108
108
  header = fits.Header(header)
109
- hdu = fits.PrimaryHDU(header=header)
109
+ hdu = fits.PrimaryHDU()
110
+
111
+ # We need to update the header after `PrimaryHDU` instantiation because some of the FITS controlled keys
112
+ # (e.g., NAXIS, NAXISn) would otherwise be changed by checks that occur during instantiation.
113
+ hdu.header.update(header)
110
114
  return cls(hdu=hdu, name=name)
111
115
 
112
116
  @classmethod
@@ -125,6 +125,14 @@ def fits_file_path_with_data_in_imagehdu(tmp_path, complete_common_header):
125
125
  return file_path
126
126
 
127
127
 
128
+ class FitsAccessWithNaxisKeys(FitsAccessBase):
129
+ def __init__(self, hdu, name):
130
+ super().__init__(hdu, name)
131
+ self.naxis = self.header["NAXIS"]
132
+ self.naxis1 = self.header["NAXIS1"]
133
+ self.naxis2 = self.header["NAXIS2"]
134
+
135
+
128
136
  def test_from_single_hdu(hdu_with_complete_common_header):
129
137
  """
130
138
  Given: an HDU with expected, common by-frame keywords
@@ -279,3 +287,27 @@ def test_header_dict(hdu_with_special_keys):
279
287
  fits_obj = FitsAccessBase(hdu_with_special_keys)
280
288
  assert isinstance(fits_obj.header_dict, dict)
281
289
  assert len(fits_obj.header_dict) == len(fits_obj.header)
290
+
291
+
292
+ @pytest.mark.parametrize(
293
+ "header_type",
294
+ [
295
+ pytest.param(dict, id="Dict"),
296
+ pytest.param(fits.header.Header, id="Header"),
297
+ pytest.param(fits.hdu.compressed.CompImageHeader, id="CompHeader"),
298
+ ],
299
+ )
300
+ def test_from_header_naxis_preserved(header_type):
301
+ """
302
+ Given: A header with NAXIS and NAXISn keys
303
+ When: Ingesting that header with `FitsAccessBase.from_header`
304
+ Then: The original NAXIS and NAXISn keys are preserved
305
+ """
306
+ raw_header = {"NAXIS": 2, "NAXIS1": 123, "NAXIS2": 456}
307
+ header = header_type(raw_header)
308
+
309
+ fits_obj = FitsAccessWithNaxisKeys.from_header(header)
310
+
311
+ assert fits_obj.naxis == 2
312
+ assert fits_obj.naxis1 == 123
313
+ assert fits_obj.naxis2 == 456
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dkist-processing-common
3
- Version: 6.0.3
3
+ Version: 6.0.4
4
4
  Summary: Common task classes used by the DKIST Science Data Processing pipelines to process DKIST data.
5
5
  Home-page: https://bitbucket.org/dkistdc/dkist-processing-common/src/main/
6
6
  Author: NSO / AURA