dkist-processing-common 6.2.2__tar.gz → 6.2.3rc1__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.

Potentially problematic release.


This version of dkist-processing-common might be problematic. Click here for more details.

Files changed (124) hide show
  1. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/CHANGELOG.rst +6 -0
  2. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/PKG-INFO +1 -1
  3. dkist-processing-common-6.2.3rc1/changelog/189.misc.rst +1 -0
  4. dkist-processing-common-6.2.3rc1/changelog/190.bugfix.rst +1 -0
  5. dkist-processing-common-6.2.3rc1/changelog/191.feature.rst +1 -0
  6. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/assemble_movie.py +5 -0
  7. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/mixin/quality/_base.py +14 -14
  8. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/write_l1.py +9 -4
  9. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_quality_mixin.py +20 -0
  10. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common.egg-info/PKG-INFO +1 -1
  11. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common.egg-info/SOURCES.txt +3 -0
  12. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/.gitignore +0 -0
  13. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/.pre-commit-config.yaml +0 -0
  14. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/.readthedocs.yml +0 -0
  15. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/README.rst +0 -0
  16. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/bitbucket-pipelines.yml +0 -0
  17. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/changelog/.gitempty +0 -0
  18. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/check_changelog_updated.sh +0 -0
  19. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/__init__.py +0 -0
  20. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/_util/__init__.py +0 -0
  21. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/_util/config.py +0 -0
  22. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/_util/constants.py +0 -0
  23. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/_util/dkist_location.py +0 -0
  24. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/_util/graphql.py +0 -0
  25. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/_util/scratch.py +0 -0
  26. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/_util/tags.py +0 -0
  27. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/codecs/__init__.py +0 -0
  28. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/codecs/asdf.py +0 -0
  29. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/codecs/bytes.py +0 -0
  30. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/codecs/fits.py +0 -0
  31. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/codecs/iobase.py +0 -0
  32. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/codecs/json.py +0 -0
  33. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/codecs/path.py +0 -0
  34. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/codecs/quality.py +0 -0
  35. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/codecs/str.py +0 -0
  36. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/fonts/Lato-Regular.ttf +0 -0
  37. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/fonts/__init__.py +0 -0
  38. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/manual.py +0 -0
  39. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/models/__init__.py +0 -0
  40. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/models/constants.py +0 -0
  41. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/models/fits_access.py +0 -0
  42. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/models/flower_pot.py +0 -0
  43. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/models/graphql.py +0 -0
  44. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/models/message.py +0 -0
  45. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/models/parameters.py +0 -0
  46. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/models/quality.py +0 -0
  47. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/models/tags.py +0 -0
  48. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/models/task_name.py +0 -0
  49. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/models/wavelength.py +0 -0
  50. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/__init__.py +0 -0
  51. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/cs_step.py +0 -0
  52. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/dsps_repeat.py +0 -0
  53. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/experiment_id_bud.py +0 -0
  54. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/id_bud.py +0 -0
  55. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/l0_fits_access.py +0 -0
  56. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/l1_fits_access.py +0 -0
  57. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/proposal_id_bud.py +0 -0
  58. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/quality.py +0 -0
  59. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/single_value_single_key_flower.py +0 -0
  60. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/task.py +0 -0
  61. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/time.py +0 -0
  62. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/unique_bud.py +0 -0
  63. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/parsers/wavelength.py +0 -0
  64. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/__init__.py +0 -0
  65. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/base.py +0 -0
  66. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/l1_output_data.py +0 -0
  67. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/mixin/__init__.py +0 -0
  68. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/mixin/globus.py +0 -0
  69. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/mixin/input_dataset.py +0 -0
  70. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/mixin/interservice_bus.py +0 -0
  71. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/mixin/metadata_store.py +0 -0
  72. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/mixin/object_store.py +0 -0
  73. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/mixin/quality/__init__.py +0 -0
  74. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/mixin/quality/_metrics.py +0 -0
  75. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/output_data_base.py +0 -0
  76. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/parse_l0_input_data.py +0 -0
  77. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/quality_metrics.py +0 -0
  78. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/teardown.py +0 -0
  79. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/transfer_input_data.py +0 -0
  80. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/trial_catalog.py +0 -0
  81. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tasks/trial_output_data.py +0 -0
  82. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/__init__.py +0 -0
  83. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/conftest.py +0 -0
  84. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_assemble_movie.py +0 -0
  85. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_assemble_quality.py +0 -0
  86. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_base.py +0 -0
  87. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_codecs.py +0 -0
  88. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_constants.py +0 -0
  89. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_cs_step.py +0 -0
  90. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_dkist_location.py +0 -0
  91. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_fits_access.py +0 -0
  92. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_flower_pot.py +0 -0
  93. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_input_dataset.py +0 -0
  94. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_output_data_base.py +0 -0
  95. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_parameters.py +0 -0
  96. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_parse_l0_input_data.py +0 -0
  97. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_publish_catalog_messages.py +0 -0
  98. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_quality.py +0 -0
  99. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_scratch.py +0 -0
  100. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_stems.py +0 -0
  101. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_submit_dataset_metadata.py +0 -0
  102. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_tags.py +0 -0
  103. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_task_name.py +0 -0
  104. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_task_parsing.py +0 -0
  105. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_teardown.py +0 -0
  106. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_transfer_input_data.py +0 -0
  107. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_transfer_l1_output_data.py +0 -0
  108. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_trial_catalog.py +0 -0
  109. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_trial_output_data.py +0 -0
  110. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_workflow_task_base.py +0 -0
  111. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common/tests/test_write_l1.py +0 -0
  112. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common.egg-info/dependency_links.txt +0 -0
  113. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common.egg-info/requires.txt +0 -0
  114. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/dkist_processing_common.egg-info/top_level.txt +0 -0
  115. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/docs/Makefile +0 -0
  116. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/docs/changelog.rst +0 -0
  117. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/docs/conf.py +0 -0
  118. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/docs/index.rst +0 -0
  119. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/docs/make.bat +0 -0
  120. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/docs/requirements.txt +0 -0
  121. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/licenses/LICENSE.rst +0 -0
  122. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/pyproject.toml +0 -0
  123. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/setup.cfg +0 -0
  124. {dkist-processing-common-6.2.2 → dkist-processing-common-6.2.3rc1}/setup.py +0 -0
@@ -7,6 +7,12 @@ Features
7
7
  - Add the ability to create a quality report from a trial workflow. (`#185 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/185>`__)
8
8
 
9
9
 
10
+ Bugfixes
11
+ --------
12
+
13
+ - `QualityL0Metrics.calculate_l0_metrics` now correctly identifies the TASK type. Previously it could have erroneously used the WORKFLOWTASK tag to find the IP TASK TYPE. (`#185 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/185>`__)
14
+
15
+
10
16
  v6.2.1 (2024-05-01)
11
17
  ===================
12
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dkist-processing-common
3
- Version: 6.2.2
3
+ Version: 6.2.3rc1
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
@@ -0,0 +1 @@
1
+ Cap the length of browse movies at 60 seconds by default.
@@ -0,0 +1 @@
1
+ `QualityMixin.avg_noise` is now NaN aware. I.e., it will ignore NaN values when computing the noise.
@@ -0,0 +1 @@
1
+ Save all floating point arrays as float32. The extra precision of float64 is not needed, especially when lossy quantization is applied before compression.
@@ -64,6 +64,7 @@ class AssembleMovie(WorkflowTaskBase, ABC):
64
64
  MOVIE_FRAME_SHAPE = (2048, 1536) # Is this a/THE standard size?
65
65
  IMAGES_PER_SEC = 3
66
66
  MINIMUM_DURATION = 10 # seconds
67
+ MAXIMUM_DURATION = 60 # seconds
67
68
  FPS = 15
68
69
  FONT_FILE = pkg_resources.resource_filename("dkist_processing_common", "fonts/Lato-Regular.ttf")
69
70
  TEXT_MARGIN_PX = 5
@@ -126,6 +127,10 @@ class AssembleMovie(WorkflowTaskBase, ABC):
126
127
  self.IMAGES_PER_SEC = self.num_images / self.MINIMUM_DURATION
127
128
  self.FPS = round(self.num_images / self.MINIMUM_DURATION) or 1
128
129
 
130
+ # IF movie length would be more than maximum duration, stride the frames
131
+ if (self.num_images / self.IMAGES_PER_SEC) > self.MAXIMUM_DURATION:
132
+ self.IMAGES_PER_SEC = self.num_images / self.MAXIMUM_DURATION
133
+
129
134
  self.duration = self.num_images / self.IMAGES_PER_SEC
130
135
 
131
136
  ## This is here to fix a floating point bug in moviepy
@@ -133,12 +133,12 @@ class QualityMixin(
133
133
 
134
134
  square_4 = data[-corner_square_length:, -corner_square_height:] # bottom right
135
135
 
136
- return np.average(
136
+ return np.nanmean(
137
137
  [
138
- np.std(square_1),
139
- np.std(square_2),
140
- np.std(square_3),
141
- np.std(square_4),
138
+ np.nanstd(square_1),
139
+ np.nanstd(square_2),
140
+ np.nanstd(square_3),
141
+ np.nanstd(square_4),
142
142
  ]
143
143
  )
144
144
 
@@ -179,15 +179,15 @@ class QualityMixin(
179
179
  -corner_cube_length:, -corner_cube_height:, -corner_cube_width:
180
180
  ] # bottom right back
181
181
 
182
- return np.average(
182
+ return np.nanmean(
183
183
  [
184
- np.std(cube_1),
185
- np.std(cube_2),
186
- np.std(cube_3),
187
- np.std(cube_4),
188
- np.std(cube_5),
189
- np.std(cube_6),
190
- np.std(cube_7),
191
- np.std(cube_8),
184
+ np.nanstd(cube_1),
185
+ np.nanstd(cube_2),
186
+ np.nanstd(cube_3),
187
+ np.nanstd(cube_4),
188
+ np.nanstd(cube_5),
189
+ np.nanstd(cube_6),
190
+ np.nanstd(cube_7),
191
+ np.nanstd(cube_8),
192
192
  ]
193
193
  )
@@ -68,12 +68,17 @@ class WriteL1Frame(WorkflowTaskBase, MetadataStoreMixin, ABC):
68
68
  stokes_param=stokes_param,
69
69
  )
70
70
 
71
+ data_array = calibrated_fits_object.data
72
+ # Cast array to float32 if float64
73
+ if np.issubdtype(data_array.dtype, np.float64):
74
+ # Cast to float32 with the conservative casting option
75
+ # just incase something weird has happened.
76
+ data_array = data_array.astype(np.float32, casting="same_kind")
77
+
71
78
  # Get the tile size to use for compression. None means use astropy defaults
72
- tile_size = self._get_tile_size(calibrated_fits_object.data)
79
+ tile_size = self._get_tile_size(data_array)
73
80
  # Write frame to disk - compressed
74
- hdu = fits.CompImageHDU(
75
- header=l1_header, data=calibrated_fits_object.data, tile_shape=tile_size
76
- )
81
+ hdu = fits.CompImageHDU(header=l1_header, data=data_array, tile_shape=tile_size)
77
82
  formatted_header = reformat_spec214_header(hdu.header)
78
83
  hdu = fits.CompImageHDU(
79
84
  header=formatted_header, data=hdu.data, tile_shape=tile_size
@@ -974,3 +974,23 @@ def test_polcal_build_efficiency(quality_task, polcal_efficiency_json):
974
974
  assert metric["name"] == f"PolCal Modulation Efficiency - {label}"
975
975
  efficiency_data = metric["efficiency_data"]
976
976
  assert efficiency_data["efficiency_list"] == [[1.0, 2.0], [2.0, 3.0]]
977
+
978
+
979
+ @pytest.mark.parametrize(
980
+ "array_shape", [pytest.param((100, 100), id="2D"), pytest.param((100, 100, 100), id="3D")]
981
+ )
982
+ def test_avg_noise_nan_values(quality_task, array_shape):
983
+ """
984
+ Given: A data array that contains NaN values
985
+ When: Computing the noise with `avg_noise`
986
+ Then: A non-NaN value is returned
987
+ """
988
+ rng = np.random.default_rng()
989
+ data = rng.random(array_shape)
990
+
991
+ # Make 1/3 of the px NaNs
992
+ nan_idx = np.where((data > 0.333) & (data < 0.666))
993
+ data[nan_idx] = np.nan
994
+ result = quality_task.avg_noise(data)
995
+
996
+ assert not np.isnan(result)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dkist-processing-common
3
- Version: 6.2.2
3
+ Version: 6.2.3rc1
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
@@ -9,6 +9,9 @@ pyproject.toml
9
9
  setup.cfg
10
10
  setup.py
11
11
  changelog/.gitempty
12
+ changelog/189.misc.rst
13
+ changelog/190.bugfix.rst
14
+ changelog/191.feature.rst
12
15
  dkist_processing_common/__init__.py
13
16
  dkist_processing_common/manual.py
14
17
  dkist_processing_common.egg-info/PKG-INFO