dkist-processing-dlnirsp 1.2.4__tar.gz → 1.3.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 (117) hide show
  1. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/CHANGELOG.rst +9 -0
  2. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/PKG-INFO +9 -9
  3. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_quality.py +55 -20
  4. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp.egg-info/PKG-INFO +9 -9
  5. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp.egg-info/requires.txt +8 -8
  6. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/pyproject.toml +10 -10
  7. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/.gitignore +0 -0
  8. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/.pre-commit-config.yaml +0 -0
  9. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/.readthedocs.yml +0 -0
  10. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/.snyk +0 -0
  11. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/README.rst +0 -0
  12. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/SCIENCE_CHANGELOG.rst +0 -0
  13. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/bitbucket-pipelines.yml +0 -0
  14. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/changelog/.gitempty +0 -0
  15. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/__init__.py +0 -0
  16. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/config.py +0 -0
  17. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/dev_scripts/__init__.py +0 -0
  18. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/dev_scripts/test_slitbeam_group_assignment.py +0 -0
  19. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/models/__init__.py +0 -0
  20. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/models/constants.py +0 -0
  21. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/models/fits_access.py +0 -0
  22. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/models/parameters.py +0 -0
  23. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/models/tags.py +0 -0
  24. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/models/task_name.py +0 -0
  25. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/parsers/__init__.py +0 -0
  26. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/parsers/dlnirsp_l0_fits_access.py +0 -0
  27. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/parsers/dlnirsp_l1_fits_acess.py +0 -0
  28. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/parsers/mosaic.py +0 -0
  29. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/parsers/task.py +0 -0
  30. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/parsers/time.py +0 -0
  31. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/parsers/wcs_corrections.py +0 -0
  32. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/__init__.py +0 -0
  33. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/bad_pixel_map.py +0 -0
  34. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/dark.py +0 -0
  35. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/dlnirsp_base.py +0 -0
  36. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/geometric.py +0 -0
  37. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/ifu_drift.py +0 -0
  38. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/instrument_polarization.py +0 -0
  39. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/l1_output_data.py +0 -0
  40. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/lamp.py +0 -0
  41. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/linearity_correction.py +0 -0
  42. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/mixin/__init__.py +0 -0
  43. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/mixin/corrections.py +0 -0
  44. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/mixin/group_id.py +0 -0
  45. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/movie.py +0 -0
  46. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/parse.py +0 -0
  47. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/polcal_as_science.py +0 -0
  48. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/quality_metrics.py +0 -0
  49. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/science.py +0 -0
  50. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/solar.py +0 -0
  51. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/wavelength_calibration.py +0 -0
  52. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/write_dataset_extras.py +0 -0
  53. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tasks/write_l1.py +0 -0
  54. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/__init__.py +0 -0
  55. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/conftest.py +0 -0
  56. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/local_trial_workflows/__init__.py +0 -0
  57. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_linearize_only.py +0 -0
  58. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_polcals_as_science.py +0 -0
  59. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_solar_gain_as_science.py +0 -0
  60. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
  61. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_dev_mockers.py +0 -0
  62. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
  63. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/local_trial_workflows/translate_files.py +0 -0
  64. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_assemble_quality.py +0 -0
  65. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_bad_pixel_map.py +0 -0
  66. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_corrections.py +0 -0
  67. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_dark.py +0 -0
  68. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_dlnirsp_base.py +0 -0
  69. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_dlnirsp_constants.py +0 -0
  70. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_dlnirsp_fits_access.py +0 -0
  71. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_geometric.py +0 -0
  72. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_group_id.py +0 -0
  73. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_ifu_drift.py +0 -0
  74. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_instrument_polarization_calibration.py +0 -0
  75. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_lamp.py +0 -0
  76. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_linearity_correction.py +0 -0
  77. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_movie.py +0 -0
  78. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_parameters.py +0 -0
  79. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_parse.py +0 -0
  80. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_polcal_as_science.py +0 -0
  81. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_science.py +0 -0
  82. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_solar.py +0 -0
  83. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_trial_create_quality_report.py +0 -0
  84. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_wavelength_calibration.py +0 -0
  85. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_workflows.py +0 -0
  86. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_write_dataset_extras.py +0 -0
  87. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/tests/test_write_l1.py +0 -0
  88. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/workflows/__init__.py +0 -0
  89. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/workflows/l0_processing.py +0 -0
  90. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp/workflows/trial_workflow.py +0 -0
  91. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp.egg-info/SOURCES.txt +0 -0
  92. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp.egg-info/dependency_links.txt +0 -0
  93. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp.egg-info/entry_points.txt +0 -0
  94. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/dkist_processing_dlnirsp.egg-info/top_level.txt +0 -0
  95. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/Makefile +0 -0
  96. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/bad_pixel_calibration.rst +0 -0
  97. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/changelog.rst +0 -0
  98. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/conf.py +0 -0
  99. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/dataset_extras.rst +0 -0
  100. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/gain.rst +0 -0
  101. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/geometric.rst +0 -0
  102. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/ifu_drift.rst +0 -0
  103. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/index.rst +0 -0
  104. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/l0_to_l1_dlnirsp.rst +0 -0
  105. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/l0_to_l1_dlnirsp_full-trial.rst +0 -0
  106. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/landing_page.rst +0 -0
  107. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/linearization.rst +0 -0
  108. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/make.bat +0 -0
  109. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/polarization_calibration.rst +0 -0
  110. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/requirements_table.rst +0 -0
  111. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/science_calibration.rst +0 -0
  112. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/scientific_changelog.rst +0 -0
  113. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/docs/wavelength_calibration.rst +0 -0
  114. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/licenses/LICENSE.rst +0 -0
  115. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/science_towncrier.sh +0 -0
  116. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/setup.cfg +0 -0
  117. {dkist_processing_dlnirsp-1.2.4 → dkist_processing_dlnirsp-1.3.0}/towncrier_science.toml +0 -0
@@ -1,3 +1,12 @@
1
+ v1.3.0 (2026-04-02)
2
+ ===================
3
+
4
+ Features
5
+ --------
6
+
7
+ - Simplify the production of L0 quality metrics. Update dkist-processing-common to 12.10.0. (`#159 <https://bitbucket.org/dkistdc/dkist-processing-dlnirsp/pull-requests/159>`__)
8
+
9
+
1
10
  v1.2.4 (2026-04-01)
2
11
  ===================
3
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-dlnirsp
3
- Version: 1.2.4
3
+ Version: 1.3.0
4
4
  Summary: Science processing code for the DLNIRSP instrument on DKIST
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -13,7 +13,7 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/x-rst
16
- Requires-Dist: dkist-processing-common==12.9.0
16
+ Requires-Dist: dkist-processing-common==12.10.0
17
17
  Requires-Dist: dkist-processing-math==2.2.1
18
18
  Requires-Dist: dkist-processing-pac==3.1.1
19
19
  Requires-Dist: dkist-header-validator==5.3.0
@@ -113,13 +113,13 @@ Requires-Dist: asyncpg==0.31.0; extra == "frozen"
113
113
  Requires-Dist: attrs==26.1.0; extra == "frozen"
114
114
  Requires-Dist: babel==2.18.0; extra == "frozen"
115
115
  Requires-Dist: billiard==4.2.4; extra == "frozen"
116
- Requires-Dist: boto3==1.42.80; extra == "frozen"
117
- Requires-Dist: botocore==1.42.80; extra == "frozen"
116
+ Requires-Dist: boto3==1.42.82; extra == "frozen"
117
+ Requires-Dist: botocore==1.42.82; extra == "frozen"
118
118
  Requires-Dist: cadwyn==5.4.6; extra == "frozen"
119
119
  Requires-Dist: celery==5.6.3; extra == "frozen"
120
120
  Requires-Dist: certifi==2026.2.25; extra == "frozen"
121
121
  Requires-Dist: cffi==2.0.0; extra == "frozen"
122
- Requires-Dist: charset-normalizer==3.4.6; extra == "frozen"
122
+ Requires-Dist: charset-normalizer==3.4.7; extra == "frozen"
123
123
  Requires-Dist: click==8.3.1; extra == "frozen"
124
124
  Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
125
125
  Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
@@ -137,9 +137,9 @@ Requires-Dist: dask-image==2025.11.0; extra == "frozen"
137
137
  Requires-Dist: decorator==5.2.1; extra == "frozen"
138
138
  Requires-Dist: dill==0.4.1; extra == "frozen"
139
139
  Requires-Dist: dkist-header-validator==5.3.0; extra == "frozen"
140
- Requires-Dist: dkist-processing-common==12.9.0; extra == "frozen"
140
+ Requires-Dist: dkist-processing-common==12.10.0; extra == "frozen"
141
141
  Requires-Dist: dkist-processing-core==7.1.0; extra == "frozen"
142
- Requires-Dist: dkist-processing-dlnirsp==1.2.4; extra == "frozen"
142
+ Requires-Dist: dkist-processing-dlnirsp==1.3.0; extra == "frozen"
143
143
  Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
144
144
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
145
145
  Requires-Dist: dkist-service-configuration==4.3.0; extra == "frozen"
@@ -157,7 +157,7 @@ Requires-Dist: frozenlist==1.8.0; extra == "frozen"
157
157
  Requires-Dist: fsspec==2026.3.0; extra == "frozen"
158
158
  Requires-Dist: globus-sdk==4.5.0; extra == "frozen"
159
159
  Requires-Dist: google-crc32c==1.8.0; extra == "frozen"
160
- Requires-Dist: googleapis-common-protos==1.73.1; extra == "frozen"
160
+ Requires-Dist: googleapis-common-protos==1.74.0; extra == "frozen"
161
161
  Requires-Dist: gqlclient==1.2.3; extra == "frozen"
162
162
  Requires-Dist: greenback==1.3.0; extra == "frozen"
163
163
  Requires-Dist: greenlet==3.3.2; extra == "frozen"
@@ -190,7 +190,7 @@ Requires-Dist: markdown-it-py==4.0.0; extra == "frozen"
190
190
  Requires-Dist: matplotlib==3.10.8; extra == "frozen"
191
191
  Requires-Dist: mdurl==0.1.2; extra == "frozen"
192
192
  Requires-Dist: methodtools==0.4.7; extra == "frozen"
193
- Requires-Dist: more-itertools==10.8.0; extra == "frozen"
193
+ Requires-Dist: more-itertools==11.0.1; extra == "frozen"
194
194
  Requires-Dist: moviepy==2.2.1; extra == "frozen"
195
195
  Requires-Dist: msgspec==0.20.0; extra == "frozen"
196
196
  Requires-Dist: multidict==6.7.1; extra == "frozen"
@@ -1,7 +1,13 @@
1
+ from pathlib import Path
2
+ from typing import Callable
3
+
1
4
  import numpy as np
2
5
  import pytest
3
6
  from dkist_processing_common._util.scratch import WorkflowFileSystem
7
+ from dkist_processing_common.codecs.basemodel import basemodel_decoder
4
8
  from dkist_processing_common.codecs.json import json_decoder
9
+ from dkist_processing_common.models.quality import QualityMetric
10
+ from dkist_processing_common.models.tags import Tag
5
11
  from dkist_processing_common.models.task_name import TaskName
6
12
 
7
13
  from dkist_processing_dlnirsp.models.tags import DlnirspTag
@@ -27,7 +33,12 @@ def make_infy_3D_data(frame: CalibratedHeaders) -> np.ndarray:
27
33
 
28
34
 
29
35
  @pytest.fixture
30
- def quality_l0_task(recipe_run_id, is_polarimetric, link_constants_db, tmp_path):
36
+ def quality_l0_task(
37
+ recipe_run_id: int,
38
+ is_polarimetric: bool,
39
+ link_constants_db,
40
+ tmp_path: Path,
41
+ ) -> DlnirspL0QualityMetrics:
31
42
  constants = DlnirspTestingConstants(
32
43
  NUM_MODSTATES=8 if is_polarimetric else 1,
33
44
  POLARIMETER_MODE="Full Stokes" if is_polarimetric else "Stokes I",
@@ -71,7 +82,7 @@ def quality_l1_task(recipe_run_id, is_polarimetric, link_constants_db, tmp_path)
71
82
 
72
83
 
73
84
  @pytest.fixture
74
- def l0_task_types_and_writers():
85
+ def l0_task_types_and_writers() -> list[tuple[str, Callable]]:
75
86
  return [
76
87
  (TaskName.lamp_gain.value, write_lamp_gain_frames_to_task),
77
88
  (TaskName.solar_gain.value, write_solar_gain_frames_to_task),
@@ -79,12 +90,19 @@ def l0_task_types_and_writers():
79
90
 
80
91
 
81
92
  @pytest.fixture
82
- def metric_names():
83
- return ["FRAME_RMS", "FRAME_AVERAGE"]
93
+ def dataset_metric_codes() -> list[str]:
94
+ return ["DATASET_AVERAGE", "DATASET_RMS"]
95
+
96
+
97
+ @pytest.fixture
98
+ def frame_metric_codes() -> list[str]:
99
+ return ["FRAME_AVERAGE", "FRAME_RMS"]
84
100
 
85
101
 
86
102
  @pytest.fixture
87
- def write_l0_data_to_task(l0_task_types_and_writers, is_polarimetric):
103
+ def write_l0_data_to_task(
104
+ l0_task_types_and_writers: list[tuple[str, Callable]], is_polarimetric: bool
105
+ ):
88
106
  def writer(task):
89
107
  for task_type, task_writer in l0_task_types_and_writers:
90
108
  task_writer(
@@ -102,37 +120,54 @@ def write_l0_data_to_task(l0_task_types_and_writers, is_polarimetric):
102
120
  "is_polarimetric",
103
121
  [pytest.param(True, id="polarimetric"), pytest.param(False, id="spectrographic")],
104
122
  )
105
- def test_qualiy_l0_task(
106
- quality_l0_task, is_polarimetric, write_l0_data_to_task, l0_task_types_and_writers, metric_names
123
+ def test_quality_l0_task(
124
+ quality_l0_task: DlnirspL0QualityMetrics,
125
+ is_polarimetric: bool,
126
+ write_l0_data_to_task,
127
+ l0_task_types_and_writers: list[tuple[str, Callable]],
128
+ dataset_metric_codes: list[str],
129
+ frame_metric_codes: list[str],
107
130
  ):
108
131
  """
109
132
  Given: A quality L0 task and some linearized data
110
133
  When: Calling the task
111
134
  Then: The expected type and number of quality metric files is written
112
135
  """
136
+ # Given
113
137
  task = quality_l0_task
114
-
115
138
  write_l0_data_to_task(task)
116
139
 
140
+ # When
117
141
  task()
118
142
 
119
- for metric_name in metric_names:
120
- for task_type, _ in l0_task_types_and_writers:
121
- quality_files = list(
122
- task.read(
123
- tags=[DlnirspTag.quality_task(task_type), DlnirspTag.quality(metric_name)]
124
- )
125
- )
126
- assert len(quality_files) == task.constants.num_modstates
127
- for f in quality_files:
128
- assert f.exists()
143
+ # Then
144
+ tags = [Tag.quality("GENERIC")]
145
+ metrics: list[QualityMetric] = list(
146
+ task.read(tags=tags, decoder=basemodel_decoder, model=QualityMetric)
147
+ )
148
+ dataset_metrics = [metric for metric in metrics if metric.metric_code in dataset_metric_codes]
149
+ frame_metrics = [metric for metric in metrics if metric.metric_code in frame_metric_codes]
150
+ # 2 metrics, no segregation by task
151
+ assert len(dataset_metrics) == 2
152
+ for metric_code in dataset_metric_codes:
153
+ # make sure one metric code of each type
154
+ assert len([metric for metric in dataset_metrics if metric.metric_code == metric_code]) == 1
155
+ # 2 metrics, 2 task types (LAMP_GAIN and SOLAR_GAIN)
156
+ assert len(frame_metrics) == 2 * 2
157
+ for metric_code in frame_metric_codes:
158
+ # make sure two metric codes of each type
159
+ assert len([metric for metric in frame_metrics if metric.metric_code == metric_code]) == 2
160
+ task_types = [t[0] for t in l0_task_types_and_writers]
161
+ for facet in task_types:
162
+ # make sure two facets of each type
163
+ assert len([metric for metric in frame_metrics if metric.facet == facet]) == 2
129
164
 
130
165
 
131
166
  @pytest.mark.parametrize(
132
167
  "is_polarimetric",
133
168
  [pytest.param(True, id="polarimetric"), pytest.param(False, id="spectrographic")],
134
169
  )
135
- def test_qualiy_l1_task(
170
+ def test_quality_l1_task(
136
171
  quality_l1_task,
137
172
  is_polarimetric,
138
173
  ):
@@ -179,7 +214,7 @@ def test_qualiy_l1_task(
179
214
  )
180
215
  )
181
216
  assert len(noise_data) == 0
182
- # Don't assert noise while calculation is correct
217
+ # Don't assert noise while calculation is incorrect
183
218
  # assert (
184
219
  # len(noise_data[0]["x_values"])
185
220
  # == len(noise_data[0]["y_values"])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-dlnirsp
3
- Version: 1.2.4
3
+ Version: 1.3.0
4
4
  Summary: Science processing code for the DLNIRSP instrument on DKIST
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -13,7 +13,7 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/x-rst
16
- Requires-Dist: dkist-processing-common==12.9.0
16
+ Requires-Dist: dkist-processing-common==12.10.0
17
17
  Requires-Dist: dkist-processing-math==2.2.1
18
18
  Requires-Dist: dkist-processing-pac==3.1.1
19
19
  Requires-Dist: dkist-header-validator==5.3.0
@@ -113,13 +113,13 @@ Requires-Dist: asyncpg==0.31.0; extra == "frozen"
113
113
  Requires-Dist: attrs==26.1.0; extra == "frozen"
114
114
  Requires-Dist: babel==2.18.0; extra == "frozen"
115
115
  Requires-Dist: billiard==4.2.4; extra == "frozen"
116
- Requires-Dist: boto3==1.42.80; extra == "frozen"
117
- Requires-Dist: botocore==1.42.80; extra == "frozen"
116
+ Requires-Dist: boto3==1.42.82; extra == "frozen"
117
+ Requires-Dist: botocore==1.42.82; extra == "frozen"
118
118
  Requires-Dist: cadwyn==5.4.6; extra == "frozen"
119
119
  Requires-Dist: celery==5.6.3; extra == "frozen"
120
120
  Requires-Dist: certifi==2026.2.25; extra == "frozen"
121
121
  Requires-Dist: cffi==2.0.0; extra == "frozen"
122
- Requires-Dist: charset-normalizer==3.4.6; extra == "frozen"
122
+ Requires-Dist: charset-normalizer==3.4.7; extra == "frozen"
123
123
  Requires-Dist: click==8.3.1; extra == "frozen"
124
124
  Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
125
125
  Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
@@ -137,9 +137,9 @@ Requires-Dist: dask-image==2025.11.0; extra == "frozen"
137
137
  Requires-Dist: decorator==5.2.1; extra == "frozen"
138
138
  Requires-Dist: dill==0.4.1; extra == "frozen"
139
139
  Requires-Dist: dkist-header-validator==5.3.0; extra == "frozen"
140
- Requires-Dist: dkist-processing-common==12.9.0; extra == "frozen"
140
+ Requires-Dist: dkist-processing-common==12.10.0; extra == "frozen"
141
141
  Requires-Dist: dkist-processing-core==7.1.0; extra == "frozen"
142
- Requires-Dist: dkist-processing-dlnirsp==1.2.4; extra == "frozen"
142
+ Requires-Dist: dkist-processing-dlnirsp==1.3.0; extra == "frozen"
143
143
  Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
144
144
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
145
145
  Requires-Dist: dkist-service-configuration==4.3.0; extra == "frozen"
@@ -157,7 +157,7 @@ Requires-Dist: frozenlist==1.8.0; extra == "frozen"
157
157
  Requires-Dist: fsspec==2026.3.0; extra == "frozen"
158
158
  Requires-Dist: globus-sdk==4.5.0; extra == "frozen"
159
159
  Requires-Dist: google-crc32c==1.8.0; extra == "frozen"
160
- Requires-Dist: googleapis-common-protos==1.73.1; extra == "frozen"
160
+ Requires-Dist: googleapis-common-protos==1.74.0; extra == "frozen"
161
161
  Requires-Dist: gqlclient==1.2.3; extra == "frozen"
162
162
  Requires-Dist: greenback==1.3.0; extra == "frozen"
163
163
  Requires-Dist: greenlet==3.3.2; extra == "frozen"
@@ -190,7 +190,7 @@ Requires-Dist: markdown-it-py==4.0.0; extra == "frozen"
190
190
  Requires-Dist: matplotlib==3.10.8; extra == "frozen"
191
191
  Requires-Dist: mdurl==0.1.2; extra == "frozen"
192
192
  Requires-Dist: methodtools==0.4.7; extra == "frozen"
193
- Requires-Dist: more-itertools==10.8.0; extra == "frozen"
193
+ Requires-Dist: more-itertools==11.0.1; extra == "frozen"
194
194
  Requires-Dist: moviepy==2.2.1; extra == "frozen"
195
195
  Requires-Dist: msgspec==0.20.0; extra == "frozen"
196
196
  Requires-Dist: multidict==6.7.1; extra == "frozen"
@@ -1,4 +1,4 @@
1
- dkist-processing-common==12.9.0
1
+ dkist-processing-common==12.10.0
2
2
  dkist-processing-math==2.2.1
3
3
  dkist-processing-pac==3.1.1
4
4
  dkist-header-validator==5.3.0
@@ -79,13 +79,13 @@ asyncpg==0.31.0
79
79
  attrs==26.1.0
80
80
  babel==2.18.0
81
81
  billiard==4.2.4
82
- boto3==1.42.80
83
- botocore==1.42.80
82
+ boto3==1.42.82
83
+ botocore==1.42.82
84
84
  cadwyn==5.4.6
85
85
  celery==5.6.3
86
86
  certifi==2026.2.25
87
87
  cffi==2.0.0
88
- charset-normalizer==3.4.6
88
+ charset-normalizer==3.4.7
89
89
  click==8.3.1
90
90
  click-didyoumean==0.3.1
91
91
  click-plugins==1.1.1.2
@@ -103,9 +103,9 @@ dask-image==2025.11.0
103
103
  decorator==5.2.1
104
104
  dill==0.4.1
105
105
  dkist-header-validator==5.3.0
106
- dkist-processing-common==12.9.0
106
+ dkist-processing-common==12.10.0
107
107
  dkist-processing-core==7.1.0
108
- dkist-processing-dlnirsp==1.2.4
108
+ dkist-processing-dlnirsp==1.3.0
109
109
  dkist-processing-math==2.2.1
110
110
  dkist-processing-pac==3.1.1
111
111
  dkist-service-configuration==4.3.0
@@ -123,7 +123,7 @@ frozenlist==1.8.0
123
123
  fsspec==2026.3.0
124
124
  globus-sdk==4.5.0
125
125
  google-crc32c==1.8.0
126
- googleapis-common-protos==1.73.1
126
+ googleapis-common-protos==1.74.0
127
127
  gqlclient==1.2.3
128
128
  greenback==1.3.0
129
129
  greenlet==3.3.2
@@ -156,7 +156,7 @@ markdown-it-py==4.0.0
156
156
  matplotlib==3.10.8
157
157
  mdurl==0.1.2
158
158
  methodtools==0.4.7
159
- more-itertools==10.8.0
159
+ more-itertools==11.0.1
160
160
  moviepy==2.2.1
161
161
  msgspec==0.20.0
162
162
  multidict==6.7.1
@@ -9,8 +9,8 @@ exclude = ["build*"]
9
9
 
10
10
  [tool.dkist-dev-tools]
11
11
  # Most recently frozen version by dkist-dev-tools
12
- version = "1.2.4"
13
- date = 2026-04-01T12:35:40.324045
12
+ version = "1.3.0"
13
+ date = 2026-04-02T20:20:55.567983
14
14
 
15
15
  [project]
16
16
  dynamic = ["version"]
@@ -26,7 +26,7 @@ classifiers = [
26
26
  "Programming Language :: Python :: 3.13",
27
27
  ]
28
28
  dependencies = [
29
- "dkist-processing-common == 12.9.0",
29
+ "dkist-processing-common == 12.10.0",
30
30
  "dkist-processing-math == 2.2.1",
31
31
  "dkist-processing-pac == 3.1.1",
32
32
  "dkist-header-validator == 5.3.0",
@@ -141,13 +141,13 @@ frozen = [
141
141
  "attrs == 26.1.0",
142
142
  "babel == 2.18.0",
143
143
  "billiard == 4.2.4",
144
- "boto3 == 1.42.80",
145
- "botocore == 1.42.80",
144
+ "boto3 == 1.42.82",
145
+ "botocore == 1.42.82",
146
146
  "cadwyn == 5.4.6",
147
147
  "celery == 5.6.3",
148
148
  "certifi == 2026.2.25",
149
149
  "cffi == 2.0.0",
150
- "charset-normalizer == 3.4.6",
150
+ "charset-normalizer == 3.4.7",
151
151
  "click == 8.3.1",
152
152
  "click-didyoumean == 0.3.1",
153
153
  "click-plugins == 1.1.1.2",
@@ -165,9 +165,9 @@ frozen = [
165
165
  "decorator == 5.2.1",
166
166
  "dill == 0.4.1",
167
167
  "dkist-header-validator == 5.3.0",
168
- "dkist-processing-common == 12.9.0",
168
+ "dkist-processing-common == 12.10.0",
169
169
  "dkist-processing-core == 7.1.0",
170
- "dkist-processing-dlnirsp == 1.2.4",
170
+ "dkist-processing-dlnirsp == 1.3.0",
171
171
  "dkist-processing-math == 2.2.1",
172
172
  "dkist-processing-pac == 3.1.1",
173
173
  "dkist-service-configuration == 4.3.0",
@@ -185,7 +185,7 @@ frozen = [
185
185
  "fsspec == 2026.3.0",
186
186
  "globus-sdk == 4.5.0",
187
187
  "google-crc32c == 1.8.0",
188
- "googleapis-common-protos == 1.73.1",
188
+ "googleapis-common-protos == 1.74.0",
189
189
  "gqlclient == 1.2.3",
190
190
  "greenback == 1.3.0",
191
191
  "greenlet == 3.3.2",
@@ -218,7 +218,7 @@ frozen = [
218
218
  "matplotlib == 3.10.8",
219
219
  "mdurl == 0.1.2",
220
220
  "methodtools == 0.4.7",
221
- "more-itertools == 10.8.0",
221
+ "more-itertools == 11.0.1",
222
222
  "moviepy == 2.2.1",
223
223
  "msgspec == 0.20.0",
224
224
  "multidict == 6.7.1",