dkist-processing-dlnirsp 0.34.1__tar.gz → 0.34.3__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 (112) hide show
  1. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/CHANGELOG.rst +24 -0
  2. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/PKG-INFO +31 -31
  3. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/movie.py +21 -7
  4. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_movie.py +53 -2
  5. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp.egg-info/PKG-INFO +31 -31
  6. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp.egg-info/requires.txt +30 -30
  7. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/pyproject.toml +32 -32
  8. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/.gitignore +0 -0
  9. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/.pre-commit-config.yaml +0 -0
  10. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/.readthedocs.yml +0 -0
  11. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/.snyk +0 -0
  12. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/README.rst +0 -0
  13. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/SCIENCE_CHANGELOG.rst +0 -0
  14. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/bitbucket-pipelines.yml +0 -0
  15. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/changelog/.gitempty +0 -0
  16. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/__init__.py +0 -0
  17. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/config.py +0 -0
  18. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/dev_scripts/__init__.py +0 -0
  19. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/dev_scripts/test_slitbeam_group_assignment.py +0 -0
  20. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/models/__init__.py +0 -0
  21. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/models/constants.py +0 -0
  22. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/models/fits_access.py +0 -0
  23. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/models/parameters.py +0 -0
  24. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/models/tags.py +0 -0
  25. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/models/task_name.py +0 -0
  26. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/parsers/__init__.py +0 -0
  27. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/parsers/dlnirsp_l0_fits_access.py +0 -0
  28. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/parsers/dlnirsp_l1_fits_acess.py +0 -0
  29. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/parsers/mosaic.py +0 -0
  30. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/parsers/task.py +0 -0
  31. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/parsers/time.py +0 -0
  32. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/parsers/wcs_corrections.py +0 -0
  33. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/__init__.py +0 -0
  34. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/bad_pixel_map.py +0 -0
  35. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/dark.py +0 -0
  36. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/dlnirsp_base.py +0 -0
  37. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/geometric.py +0 -0
  38. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/ifu_drift.py +0 -0
  39. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/instrument_polarization.py +0 -0
  40. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/l1_output_data.py +0 -0
  41. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/lamp.py +0 -0
  42. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/linearity_correction.py +0 -0
  43. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/mixin/__init__.py +0 -0
  44. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/mixin/corrections.py +0 -0
  45. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/mixin/group_id.py +0 -0
  46. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/parse.py +0 -0
  47. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/quality_metrics.py +0 -0
  48. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/science.py +0 -0
  49. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/solar.py +0 -0
  50. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/wavelength_calibration.py +0 -0
  51. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tasks/write_l1.py +0 -0
  52. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/__init__.py +0 -0
  53. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/conftest.py +0 -0
  54. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/local_trial_workflows/__init__.py +0 -0
  55. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_linearize_only.py +0 -0
  56. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_polcals_as_science.py +0 -0
  57. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_solar_gain_as_science.py +0 -0
  58. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
  59. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_dev_mockers.py +0 -0
  60. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
  61. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/local_trial_workflows/translate_files.py +0 -0
  62. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_assemble_quality.py +0 -0
  63. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_bad_pixel_map.py +0 -0
  64. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_corrections.py +0 -0
  65. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_dark.py +0 -0
  66. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_dlnirsp_base.py +0 -0
  67. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_dlnirsp_constants.py +0 -0
  68. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_dlnirsp_fits_access.py +0 -0
  69. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_geometric.py +0 -0
  70. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_group_id.py +0 -0
  71. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_ifu_drift.py +0 -0
  72. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_instrument_polarization_calibration.py +0 -0
  73. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_lamp.py +0 -0
  74. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_linearity_correction.py +0 -0
  75. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_parameters.py +0 -0
  76. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_parse.py +0 -0
  77. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_quality.py +0 -0
  78. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_science.py +0 -0
  79. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_solar.py +0 -0
  80. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_trial_create_quality_report.py +0 -0
  81. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_wavelength_calibration.py +0 -0
  82. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_workflows.py +0 -0
  83. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/tests/test_write_l1.py +0 -0
  84. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/workflows/__init__.py +0 -0
  85. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/workflows/l0_processing.py +0 -0
  86. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp/workflows/trial_workflow.py +0 -0
  87. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp.egg-info/SOURCES.txt +0 -0
  88. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp.egg-info/dependency_links.txt +0 -0
  89. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp.egg-info/entry_points.txt +0 -0
  90. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/dkist_processing_dlnirsp.egg-info/top_level.txt +0 -0
  91. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/Makefile +0 -0
  92. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/bad_pixel_calibration.rst +0 -0
  93. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/changelog.rst +0 -0
  94. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/conf.py +0 -0
  95. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/gain.rst +0 -0
  96. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/geometric.rst +0 -0
  97. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/ifu_drift.rst +0 -0
  98. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/index.rst +0 -0
  99. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/l0_to_l1_dlnirsp.rst +0 -0
  100. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/l0_to_l1_dlnirsp_full-trial.rst +0 -0
  101. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/landing_page.rst +0 -0
  102. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/linearization.rst +0 -0
  103. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/make.bat +0 -0
  104. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/polarization_calibration.rst +0 -0
  105. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/requirements_table.rst +0 -0
  106. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/science_calibration.rst +0 -0
  107. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/scientific_changelog.rst +0 -0
  108. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/docs/wavelength_calibration.rst +0 -0
  109. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/licenses/LICENSE.rst +0 -0
  110. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/science_towncrier.sh +0 -0
  111. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/setup.cfg +0 -0
  112. {dkist_processing_dlnirsp-0.34.1 → dkist_processing_dlnirsp-0.34.3}/towncrier_science.toml +0 -0
@@ -1,3 +1,27 @@
1
+ v0.34.3 (2026-02-02)
2
+ ====================
3
+
4
+ Bugfixes
5
+ --------
6
+
7
+ - Fix file descriptor leak in `MakeDlnirspMovie` task. (`#130 <https://bitbucket.org/dkistdc/dkist-processing-dlnirsp/pull-requests/130>`__)
8
+
9
+
10
+ Misc
11
+ ----
12
+
13
+ - Move to `dkist-processing-common` v12.3.0, which fixes file descriptor leaks. (`#135 <https://bitbucket.org/dkistdc/dkist-processing-dlnirsp/pull-requests/135>`__)
14
+
15
+
16
+ v0.34.2 (2026-01-30)
17
+ ====================
18
+
19
+ Features
20
+ --------
21
+
22
+ - Integrate the dataset extras framework (`#134 <https://bitbucket.org/dkistdc/dkist-processing-dlnirsp/pull-requests/134>`__)
23
+
24
+
1
25
  v0.34.1 (2026-01-26)
2
26
  ====================
3
27
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-dlnirsp
3
- Version: 0.34.1
3
+ Version: 0.34.3
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,10 +13,10 @@ 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.1.0
16
+ Requires-Dist: dkist-processing-common==12.3.0
17
17
  Requires-Dist: dkist-processing-math==2.2.1
18
18
  Requires-Dist: dkist-processing-pac==3.1.1
19
- Requires-Dist: dkist-header-validator==5.2.1
19
+ Requires-Dist: dkist-header-validator==5.3.0
20
20
  Requires-Dist: dkist-fits-specifications==4.20.0
21
21
  Requires-Dist: dkist-spectral-lines==3.0.0
22
22
  Requires-Dist: dkist-service-configuration==4.2.0
@@ -73,7 +73,7 @@ Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
73
73
  Requires-Dist: PIMS==0.7; extra == "frozen"
74
74
  Requires-Dist: PeakUtils==1.3.5; extra == "frozen"
75
75
  Requires-Dist: PyAVM==0.9.8; extra == "frozen"
76
- Requires-Dist: PyJWT==2.10.1; extra == "frozen"
76
+ Requires-Dist: PyJWT==2.11.0; extra == "frozen"
77
77
  Requires-Dist: PyYAML==6.0.3; extra == "frozen"
78
78
  Requires-Dist: PyYAML-ft==8.0.0; extra == "frozen"
79
79
  Requires-Dist: Pygments==2.19.2; extra == "frozen"
@@ -87,19 +87,19 @@ Requires-Dist: aiohttp==3.13.3; extra == "frozen"
87
87
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
88
88
  Requires-Dist: aiosmtplib==5.1.0; extra == "frozen"
89
89
  Requires-Dist: aiosqlite==0.21.0; extra == "frozen"
90
- Requires-Dist: alembic==1.18.1; extra == "frozen"
90
+ Requires-Dist: alembic==1.18.3; extra == "frozen"
91
91
  Requires-Dist: amqp==5.3.1; extra == "frozen"
92
92
  Requires-Dist: annotated-types==0.7.0; extra == "frozen"
93
93
  Requires-Dist: anyio==4.12.1; extra == "frozen"
94
94
  Requires-Dist: apache-airflow==3.1.6; extra == "frozen"
95
95
  Requires-Dist: apache-airflow-core==3.1.6; extra == "frozen"
96
- Requires-Dist: apache-airflow-providers-celery==3.15.1; extra == "frozen"
97
- Requires-Dist: apache-airflow-providers-common-compat==1.12.0; extra == "frozen"
96
+ Requires-Dist: apache-airflow-providers-celery==3.15.2; extra == "frozen"
97
+ Requires-Dist: apache-airflow-providers-common-compat==1.13.0; extra == "frozen"
98
98
  Requires-Dist: apache-airflow-providers-common-io==1.7.1; extra == "frozen"
99
- Requires-Dist: apache-airflow-providers-common-sql==1.30.3; extra == "frozen"
100
- Requires-Dist: apache-airflow-providers-postgres==6.5.2; extra == "frozen"
99
+ Requires-Dist: apache-airflow-providers-common-sql==1.30.4; extra == "frozen"
100
+ Requires-Dist: apache-airflow-providers-postgres==6.5.3; extra == "frozen"
101
101
  Requires-Dist: apache-airflow-providers-smtp==2.4.2; extra == "frozen"
102
- Requires-Dist: apache-airflow-providers-standard==1.10.3; extra == "frozen"
102
+ Requires-Dist: apache-airflow-providers-standard==1.11.0; extra == "frozen"
103
103
  Requires-Dist: apache-airflow-task-sdk==1.1.6; extra == "frozen"
104
104
  Requires-Dist: argcomplete==3.6.3; extra == "frozen"
105
105
  Requires-Dist: asdf==3.5.0; extra == "frozen"
@@ -108,14 +108,14 @@ Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
108
108
  Requires-Dist: asgiref==3.11.0; extra == "frozen"
109
109
  Requires-Dist: asteval==1.0.8; extra == "frozen"
110
110
  Requires-Dist: astropy==7.0.2; extra == "frozen"
111
- Requires-Dist: astropy-iers-data==0.2026.1.26.0.43.56; extra == "frozen"
111
+ Requires-Dist: astropy-iers-data==0.2026.2.2.0.48.1; extra == "frozen"
112
112
  Requires-Dist: astropy_healpix==1.1.3; extra == "frozen"
113
113
  Requires-Dist: asyncpg==0.31.0; extra == "frozen"
114
114
  Requires-Dist: attrs==25.4.0; extra == "frozen"
115
- Requires-Dist: babel==2.17.0; extra == "frozen"
115
+ Requires-Dist: babel==2.18.0; extra == "frozen"
116
116
  Requires-Dist: billiard==4.2.4; extra == "frozen"
117
- Requires-Dist: boto3==1.42.34; extra == "frozen"
118
- Requires-Dist: botocore==1.42.34; extra == "frozen"
117
+ Requires-Dist: boto3==1.42.39; extra == "frozen"
118
+ Requires-Dist: botocore==1.42.39; extra == "frozen"
119
119
  Requires-Dist: cadwyn==5.4.6; extra == "frozen"
120
120
  Requires-Dist: celery==5.6.2; extra == "frozen"
121
121
  Requires-Dist: certifi==2026.1.4; extra == "frozen"
@@ -130,17 +130,17 @@ Requires-Dist: colorlog==6.10.1; extra == "frozen"
130
130
  Requires-Dist: contourpy==1.3.3; extra == "frozen"
131
131
  Requires-Dist: cron_descriptor==2.0.6; extra == "frozen"
132
132
  Requires-Dist: croniter==6.0.0; extra == "frozen"
133
- Requires-Dist: cryptography==46.0.3; extra == "frozen"
133
+ Requires-Dist: cryptography==46.0.4; extra == "frozen"
134
134
  Requires-Dist: cycler==0.12.1; extra == "frozen"
135
135
  Requires-Dist: dacite==1.9.2; extra == "frozen"
136
- Requires-Dist: dask==2026.1.1; extra == "frozen"
136
+ Requires-Dist: dask==2026.1.2; extra == "frozen"
137
137
  Requires-Dist: dask-image==2025.11.0; extra == "frozen"
138
138
  Requires-Dist: decorator==5.2.1; extra == "frozen"
139
139
  Requires-Dist: dill==0.4.1; extra == "frozen"
140
- Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
141
- Requires-Dist: dkist-processing-common==12.1.0; extra == "frozen"
140
+ Requires-Dist: dkist-header-validator==5.3.0; extra == "frozen"
141
+ Requires-Dist: dkist-processing-common==12.3.0; extra == "frozen"
142
142
  Requires-Dist: dkist-processing-core==7.0.1; extra == "frozen"
143
- Requires-Dist: dkist-processing-dlnirsp==0.34.1; extra == "frozen"
143
+ Requires-Dist: dkist-processing-dlnirsp==0.34.3; extra == "frozen"
144
144
  Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
145
145
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
146
146
  Requires-Dist: dkist-service-configuration==4.2.0; extra == "frozen"
@@ -229,22 +229,22 @@ Requires-Dist: opentelemetry-util-http==0.60b1; extra == "frozen"
229
229
  Requires-Dist: outcome==1.3.0.post0; extra == "frozen"
230
230
  Requires-Dist: packaging==26.0; extra == "frozen"
231
231
  Requires-Dist: pandas==3.0.0; extra == "frozen"
232
- Requires-Dist: parfive==2.3.0; extra == "frozen"
232
+ Requires-Dist: parfive==2.3.1; extra == "frozen"
233
233
  Requires-Dist: partd==1.4.2; extra == "frozen"
234
- Requires-Dist: pathspec==1.0.3; extra == "frozen"
235
- Requires-Dist: pendulum==3.1.0; extra == "frozen"
234
+ Requires-Dist: pathspec==1.0.4; extra == "frozen"
235
+ Requires-Dist: pendulum==3.2.0; extra == "frozen"
236
236
  Requires-Dist: pika==1.3.2; extra == "frozen"
237
237
  Requires-Dist: pillow==11.3.0; extra == "frozen"
238
- Requires-Dist: pip==25.3; extra == "frozen"
238
+ Requires-Dist: pip==26.0; extra == "frozen"
239
239
  Requires-Dist: platformdirs==4.5.1; extra == "frozen"
240
240
  Requires-Dist: pluggy==1.6.0; extra == "frozen"
241
- Requires-Dist: pooch==1.8.2; extra == "frozen"
241
+ Requires-Dist: pooch==1.9.0; extra == "frozen"
242
242
  Requires-Dist: proglog==0.1.12; extra == "frozen"
243
243
  Requires-Dist: prometheus_client==0.24.1; extra == "frozen"
244
244
  Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
245
245
  Requires-Dist: propcache==0.4.1; extra == "frozen"
246
- Requires-Dist: protobuf==6.33.4; extra == "frozen"
247
- Requires-Dist: psutil==7.2.1; extra == "frozen"
246
+ Requires-Dist: protobuf==6.33.5; extra == "frozen"
247
+ Requires-Dist: psutil==7.2.2; extra == "frozen"
248
248
  Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
249
249
  Requires-Dist: pyarrow==23.0.0; extra == "frozen"
250
250
  Requires-Dist: pycparser==3.0; extra == "frozen"
@@ -264,9 +264,9 @@ Requires-Dist: redis==6.4.0; extra == "frozen"
264
264
  Requires-Dist: referencing==0.37.0; extra == "frozen"
265
265
  Requires-Dist: reproject==0.19.0; extra == "frozen"
266
266
  Requires-Dist: requests==2.32.5; extra == "frozen"
267
- Requires-Dist: rich==14.3.1; extra == "frozen"
267
+ Requires-Dist: rich==14.3.2; extra == "frozen"
268
268
  Requires-Dist: rich-argparse==1.7.2; extra == "frozen"
269
- Requires-Dist: rich-toolkit==0.17.1; extra == "frozen"
269
+ Requires-Dist: rich-toolkit==0.18.1; extra == "frozen"
270
270
  Requires-Dist: rpds-py==0.30.0; extra == "frozen"
271
271
  Requires-Dist: s3transfer==0.16.0; extra == "frozen"
272
272
  Requires-Dist: scikit-image==0.26.0; extra == "frozen"
@@ -289,10 +289,10 @@ Requires-Dist: talus==1.3.4; extra == "frozen"
289
289
  Requires-Dist: tenacity==8.5.0; extra == "frozen"
290
290
  Requires-Dist: termcolor==3.3.0; extra == "frozen"
291
291
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
292
- Requires-Dist: tifffile==2026.1.14; extra == "frozen"
292
+ Requires-Dist: tifffile==2026.1.28; extra == "frozen"
293
293
  Requires-Dist: toolz==1.1.0; extra == "frozen"
294
294
  Requires-Dist: tornado==6.5.4; extra == "frozen"
295
- Requires-Dist: tqdm==4.67.1; extra == "frozen"
295
+ Requires-Dist: tqdm==4.67.2; extra == "frozen"
296
296
  Requires-Dist: traitlets==5.14.3; extra == "frozen"
297
297
  Requires-Dist: typer==0.21.1; extra == "frozen"
298
298
  Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
@@ -309,7 +309,7 @@ Requires-Dist: uvloop==0.22.1; extra == "frozen"
309
309
  Requires-Dist: vine==5.1.0; extra == "frozen"
310
310
  Requires-Dist: voluptuous==0.16.0; extra == "frozen"
311
311
  Requires-Dist: watchfiles==1.1.1; extra == "frozen"
312
- Requires-Dist: wcwidth==0.4.0; extra == "frozen"
312
+ Requires-Dist: wcwidth==0.5.3; extra == "frozen"
313
313
  Requires-Dist: websockets==16.0; extra == "frozen"
314
314
  Requires-Dist: wirerope==1.0.0; extra == "frozen"
315
315
  Requires-Dist: wrapt==1.17.3; extra == "frozen"
@@ -262,10 +262,9 @@ class MakeDlnirspMovie(DlnirspTaskBase):
262
262
  logger.info("Parsing headers")
263
263
  wcs_list = []
264
264
  for f in file_list:
265
- hdul = fits.open(f)
266
- header = self.add_L1_header_values(hdul[0].header)
265
+ raw_header = fits.getheader(f)
266
+ header = self.add_L1_header_values(raw_header)
267
267
  wcs_list.append(WCS(header).dropaxis(2))
268
- del hdul
269
268
 
270
269
  logger.info("Computing reference WCS")
271
270
  reference_wcs, shape_out = find_optimal_celestial_wcs(
@@ -829,18 +828,33 @@ class MakeDlnirspMovie(DlnirspTaskBase):
829
828
  date_beg_list = []
830
829
  data_list = [[], []]
831
830
  for fo in file_paths:
832
- hdul = fits.open(fo)
831
+ # `memmap = True` saves us a bit in terms of peak memory in this function.
832
+ # See below for how we make sure the open file descriptors don't linger
833
+ hdul = fits.open(fo, memmap=True)
833
834
  header = self.add_L1_header_values(hdul[0].header)
834
835
  wcs_list.append(WCS(header).dropaxis(2))
835
836
  date_beg_list.append(header["DATE-BEG"])
836
837
 
837
838
  for i, s in enumerate([self.core_wave_idx, self.cont_wave_idx]):
838
- data = hdul[0].data[s, :, :]
839
+ # By assigning `hdul[0].data` to a variable explicitly we can ensure its FD will be cleaned up
840
+ # once we're done with it.
841
+ full_data = hdul[0].data
842
+ # The `float32` casting has two functions: First, it acts like `.copy()` in that it decouples `data`
843
+ # from the `full_data` variable (i.e., it's not just a view). This lets us clean up the FD used by
844
+ # `full_data` while keeping the much smaller `data` around. Secondly, the original data type is float64
845
+ # and this reduces the absolute size of `data` in memory. This task is just for a visualization, so
846
+ # those extra 32 bits really don't matter.
847
+ data = full_data[s, :, :].astype(np.float32)
839
848
  for vs in self.parameters.movie_vertical_nan_slices:
840
849
  data[vs, :] = np.nan
841
850
  data_list[i].append(data)
842
851
 
843
- del hdul
852
+ # These two lines aren't strictly necessary because these variables will be "cleaned up" when they are
853
+ # reused in the next loop iteration, but keeping them around makes it clear what our intentions are;
854
+ # these are the way to guarantee that the `hdul` opened with `memmap=True` closes both of its open file
855
+ # descriptors.
856
+ hdul.close()
857
+ del full_data
844
858
 
845
859
  return data_list, wcs_list, date_beg_list
846
860
 
@@ -892,7 +906,7 @@ class MakeDlnirspMovie(DlnirspTaskBase):
892
906
 
893
907
  def get_stacked_spectra(self, file_path: Path) -> np.ndarray:
894
908
  """Read a file for a single mosaic step and flatten the 3D cube into a stacked, 2D spectral array."""
895
- data = fits.getdata(file_path)
909
+ data = fits.getdata(file_path, memmap=False)
896
910
  stack = data.reshape(self.num_wave, self.num_spec).T
897
911
  return stack
898
912
 
@@ -1,7 +1,9 @@
1
- import shutil
1
+ import os
2
+ from pathlib import Path
2
3
 
3
4
  import numpy as np
4
5
  import pytest
6
+ from astropy.wcs import WCS
5
7
  from dkist_processing_common._util.scratch import WorkflowFileSystem
6
8
  from dkist_processing_common.codecs.json import json_encoder
7
9
 
@@ -13,13 +15,51 @@ from dkist_processing_dlnirsp.tests.conftest import DlnirspTestingParameters
13
15
  from dkist_processing_dlnirsp.tests.conftest import write_calibrated_frames_to_task
14
16
 
15
17
 
18
+ def check_open_file_descriptors() -> int | None:
19
+ """
20
+ Look for the number of open file descriptors by examining /proc/self/fd.
21
+
22
+ This concept doesn't apply to Windows machines, so we will catch that error gracefully. The result is that Windows
23
+ won't test this condition, but that's OK because it doesn't apply to them anyway.
24
+ """
25
+ try:
26
+ return len(os.listdir("/proc/self/fd"))
27
+ except FileNotFoundError:
28
+ return None
29
+
30
+
31
+ class LeakFindingMovieTask(MakeDlnirspMovie):
32
+ """Same as `MakeDlnirspMovie`, but keeps track of file descriptors before and after each call to potentially leaky functions."""
33
+
34
+ def pre_run(self) -> None:
35
+ super().pre_run()
36
+ self._test_pre_mosaic_num_fd = []
37
+ self._test_post_mosaic_num_fd = []
38
+ self._test_pre_stack_num_fd = []
39
+ self._test_post_stack_num_fd = []
40
+
41
+ def read_mosaic_frames(
42
+ self, mosaic_num: int, stokes: str
43
+ ) -> tuple[list[list[np.ndarray]], list[WCS], list[str]]:
44
+ self._test_pre_mosaic_num_fd.append(check_open_file_descriptors())
45
+ result = super().read_mosaic_frames(mosaic_num, stokes)
46
+ self._test_post_mosaic_num_fd.append(check_open_file_descriptors())
47
+ return result
48
+
49
+ def get_stacked_spectra(self, file_path: Path) -> np.ndarray:
50
+ self._test_pre_stack_num_fd.append(check_open_file_descriptors())
51
+ result = super().get_stacked_spectra(file_path)
52
+ self._test_post_stack_num_fd.append(check_open_file_descriptors())
53
+ return result
54
+
55
+
16
56
  @pytest.fixture
17
57
  def movie_task(recipe_run_id, tmp_path, link_constants_db, assign_input_dataset_doc_to_task):
18
58
  link_constants_db(
19
59
  recipe_run_id=recipe_run_id,
20
60
  constants_obj=DlnirspTestingConstants(),
21
61
  )
22
- with MakeDlnirspMovie(
62
+ with LeakFindingMovieTask(
23
63
  recipe_run_id=recipe_run_id,
24
64
  workflow_name="workflow_name",
25
65
  workflow_version="workflow_version",
@@ -139,3 +179,14 @@ def test_movie_task(
139
179
  movie_file_list = list(task.read(tags=[DlnirspTag.output(), DlnirspTag.movie()]))
140
180
 
141
181
  assert len(movie_file_list) == 1
182
+
183
+ # Check that there are no file descriptor leaks in the functions that could be leaky
184
+ #
185
+ # Using `xdist` can cause some timing issues with these tests.
186
+ # The "true" assert is `after == before`, but tests have shown that sometimes `after` can be lower than `before`,
187
+ # presumably because some fixture cleanup or something happens in a race with the checking of open FD that occurs
188
+ # in `LeakFindingMovieTask`. To deal with this we just test `<=`, which still captures the intent with no downside.
189
+ for before, after in zip(task._test_pre_mosaic_num_fd, task._test_post_mosaic_num_fd):
190
+ assert after <= before
191
+ for before, after in zip(task._test_pre_stack_num_fd, task._test_post_stack_num_fd):
192
+ assert after <= before
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-dlnirsp
3
- Version: 0.34.1
3
+ Version: 0.34.3
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,10 +13,10 @@ 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.1.0
16
+ Requires-Dist: dkist-processing-common==12.3.0
17
17
  Requires-Dist: dkist-processing-math==2.2.1
18
18
  Requires-Dist: dkist-processing-pac==3.1.1
19
- Requires-Dist: dkist-header-validator==5.2.1
19
+ Requires-Dist: dkist-header-validator==5.3.0
20
20
  Requires-Dist: dkist-fits-specifications==4.20.0
21
21
  Requires-Dist: dkist-spectral-lines==3.0.0
22
22
  Requires-Dist: dkist-service-configuration==4.2.0
@@ -73,7 +73,7 @@ Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
73
73
  Requires-Dist: PIMS==0.7; extra == "frozen"
74
74
  Requires-Dist: PeakUtils==1.3.5; extra == "frozen"
75
75
  Requires-Dist: PyAVM==0.9.8; extra == "frozen"
76
- Requires-Dist: PyJWT==2.10.1; extra == "frozen"
76
+ Requires-Dist: PyJWT==2.11.0; extra == "frozen"
77
77
  Requires-Dist: PyYAML==6.0.3; extra == "frozen"
78
78
  Requires-Dist: PyYAML-ft==8.0.0; extra == "frozen"
79
79
  Requires-Dist: Pygments==2.19.2; extra == "frozen"
@@ -87,19 +87,19 @@ Requires-Dist: aiohttp==3.13.3; extra == "frozen"
87
87
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
88
88
  Requires-Dist: aiosmtplib==5.1.0; extra == "frozen"
89
89
  Requires-Dist: aiosqlite==0.21.0; extra == "frozen"
90
- Requires-Dist: alembic==1.18.1; extra == "frozen"
90
+ Requires-Dist: alembic==1.18.3; extra == "frozen"
91
91
  Requires-Dist: amqp==5.3.1; extra == "frozen"
92
92
  Requires-Dist: annotated-types==0.7.0; extra == "frozen"
93
93
  Requires-Dist: anyio==4.12.1; extra == "frozen"
94
94
  Requires-Dist: apache-airflow==3.1.6; extra == "frozen"
95
95
  Requires-Dist: apache-airflow-core==3.1.6; extra == "frozen"
96
- Requires-Dist: apache-airflow-providers-celery==3.15.1; extra == "frozen"
97
- Requires-Dist: apache-airflow-providers-common-compat==1.12.0; extra == "frozen"
96
+ Requires-Dist: apache-airflow-providers-celery==3.15.2; extra == "frozen"
97
+ Requires-Dist: apache-airflow-providers-common-compat==1.13.0; extra == "frozen"
98
98
  Requires-Dist: apache-airflow-providers-common-io==1.7.1; extra == "frozen"
99
- Requires-Dist: apache-airflow-providers-common-sql==1.30.3; extra == "frozen"
100
- Requires-Dist: apache-airflow-providers-postgres==6.5.2; extra == "frozen"
99
+ Requires-Dist: apache-airflow-providers-common-sql==1.30.4; extra == "frozen"
100
+ Requires-Dist: apache-airflow-providers-postgres==6.5.3; extra == "frozen"
101
101
  Requires-Dist: apache-airflow-providers-smtp==2.4.2; extra == "frozen"
102
- Requires-Dist: apache-airflow-providers-standard==1.10.3; extra == "frozen"
102
+ Requires-Dist: apache-airflow-providers-standard==1.11.0; extra == "frozen"
103
103
  Requires-Dist: apache-airflow-task-sdk==1.1.6; extra == "frozen"
104
104
  Requires-Dist: argcomplete==3.6.3; extra == "frozen"
105
105
  Requires-Dist: asdf==3.5.0; extra == "frozen"
@@ -108,14 +108,14 @@ Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
108
108
  Requires-Dist: asgiref==3.11.0; extra == "frozen"
109
109
  Requires-Dist: asteval==1.0.8; extra == "frozen"
110
110
  Requires-Dist: astropy==7.0.2; extra == "frozen"
111
- Requires-Dist: astropy-iers-data==0.2026.1.26.0.43.56; extra == "frozen"
111
+ Requires-Dist: astropy-iers-data==0.2026.2.2.0.48.1; extra == "frozen"
112
112
  Requires-Dist: astropy_healpix==1.1.3; extra == "frozen"
113
113
  Requires-Dist: asyncpg==0.31.0; extra == "frozen"
114
114
  Requires-Dist: attrs==25.4.0; extra == "frozen"
115
- Requires-Dist: babel==2.17.0; extra == "frozen"
115
+ Requires-Dist: babel==2.18.0; extra == "frozen"
116
116
  Requires-Dist: billiard==4.2.4; extra == "frozen"
117
- Requires-Dist: boto3==1.42.34; extra == "frozen"
118
- Requires-Dist: botocore==1.42.34; extra == "frozen"
117
+ Requires-Dist: boto3==1.42.39; extra == "frozen"
118
+ Requires-Dist: botocore==1.42.39; extra == "frozen"
119
119
  Requires-Dist: cadwyn==5.4.6; extra == "frozen"
120
120
  Requires-Dist: celery==5.6.2; extra == "frozen"
121
121
  Requires-Dist: certifi==2026.1.4; extra == "frozen"
@@ -130,17 +130,17 @@ Requires-Dist: colorlog==6.10.1; extra == "frozen"
130
130
  Requires-Dist: contourpy==1.3.3; extra == "frozen"
131
131
  Requires-Dist: cron_descriptor==2.0.6; extra == "frozen"
132
132
  Requires-Dist: croniter==6.0.0; extra == "frozen"
133
- Requires-Dist: cryptography==46.0.3; extra == "frozen"
133
+ Requires-Dist: cryptography==46.0.4; extra == "frozen"
134
134
  Requires-Dist: cycler==0.12.1; extra == "frozen"
135
135
  Requires-Dist: dacite==1.9.2; extra == "frozen"
136
- Requires-Dist: dask==2026.1.1; extra == "frozen"
136
+ Requires-Dist: dask==2026.1.2; extra == "frozen"
137
137
  Requires-Dist: dask-image==2025.11.0; extra == "frozen"
138
138
  Requires-Dist: decorator==5.2.1; extra == "frozen"
139
139
  Requires-Dist: dill==0.4.1; extra == "frozen"
140
- Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
141
- Requires-Dist: dkist-processing-common==12.1.0; extra == "frozen"
140
+ Requires-Dist: dkist-header-validator==5.3.0; extra == "frozen"
141
+ Requires-Dist: dkist-processing-common==12.3.0; extra == "frozen"
142
142
  Requires-Dist: dkist-processing-core==7.0.1; extra == "frozen"
143
- Requires-Dist: dkist-processing-dlnirsp==0.34.1; extra == "frozen"
143
+ Requires-Dist: dkist-processing-dlnirsp==0.34.3; extra == "frozen"
144
144
  Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
145
145
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
146
146
  Requires-Dist: dkist-service-configuration==4.2.0; extra == "frozen"
@@ -229,22 +229,22 @@ Requires-Dist: opentelemetry-util-http==0.60b1; extra == "frozen"
229
229
  Requires-Dist: outcome==1.3.0.post0; extra == "frozen"
230
230
  Requires-Dist: packaging==26.0; extra == "frozen"
231
231
  Requires-Dist: pandas==3.0.0; extra == "frozen"
232
- Requires-Dist: parfive==2.3.0; extra == "frozen"
232
+ Requires-Dist: parfive==2.3.1; extra == "frozen"
233
233
  Requires-Dist: partd==1.4.2; extra == "frozen"
234
- Requires-Dist: pathspec==1.0.3; extra == "frozen"
235
- Requires-Dist: pendulum==3.1.0; extra == "frozen"
234
+ Requires-Dist: pathspec==1.0.4; extra == "frozen"
235
+ Requires-Dist: pendulum==3.2.0; extra == "frozen"
236
236
  Requires-Dist: pika==1.3.2; extra == "frozen"
237
237
  Requires-Dist: pillow==11.3.0; extra == "frozen"
238
- Requires-Dist: pip==25.3; extra == "frozen"
238
+ Requires-Dist: pip==26.0; extra == "frozen"
239
239
  Requires-Dist: platformdirs==4.5.1; extra == "frozen"
240
240
  Requires-Dist: pluggy==1.6.0; extra == "frozen"
241
- Requires-Dist: pooch==1.8.2; extra == "frozen"
241
+ Requires-Dist: pooch==1.9.0; extra == "frozen"
242
242
  Requires-Dist: proglog==0.1.12; extra == "frozen"
243
243
  Requires-Dist: prometheus_client==0.24.1; extra == "frozen"
244
244
  Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
245
245
  Requires-Dist: propcache==0.4.1; extra == "frozen"
246
- Requires-Dist: protobuf==6.33.4; extra == "frozen"
247
- Requires-Dist: psutil==7.2.1; extra == "frozen"
246
+ Requires-Dist: protobuf==6.33.5; extra == "frozen"
247
+ Requires-Dist: psutil==7.2.2; extra == "frozen"
248
248
  Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
249
249
  Requires-Dist: pyarrow==23.0.0; extra == "frozen"
250
250
  Requires-Dist: pycparser==3.0; extra == "frozen"
@@ -264,9 +264,9 @@ Requires-Dist: redis==6.4.0; extra == "frozen"
264
264
  Requires-Dist: referencing==0.37.0; extra == "frozen"
265
265
  Requires-Dist: reproject==0.19.0; extra == "frozen"
266
266
  Requires-Dist: requests==2.32.5; extra == "frozen"
267
- Requires-Dist: rich==14.3.1; extra == "frozen"
267
+ Requires-Dist: rich==14.3.2; extra == "frozen"
268
268
  Requires-Dist: rich-argparse==1.7.2; extra == "frozen"
269
- Requires-Dist: rich-toolkit==0.17.1; extra == "frozen"
269
+ Requires-Dist: rich-toolkit==0.18.1; extra == "frozen"
270
270
  Requires-Dist: rpds-py==0.30.0; extra == "frozen"
271
271
  Requires-Dist: s3transfer==0.16.0; extra == "frozen"
272
272
  Requires-Dist: scikit-image==0.26.0; extra == "frozen"
@@ -289,10 +289,10 @@ Requires-Dist: talus==1.3.4; extra == "frozen"
289
289
  Requires-Dist: tenacity==8.5.0; extra == "frozen"
290
290
  Requires-Dist: termcolor==3.3.0; extra == "frozen"
291
291
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
292
- Requires-Dist: tifffile==2026.1.14; extra == "frozen"
292
+ Requires-Dist: tifffile==2026.1.28; extra == "frozen"
293
293
  Requires-Dist: toolz==1.1.0; extra == "frozen"
294
294
  Requires-Dist: tornado==6.5.4; extra == "frozen"
295
- Requires-Dist: tqdm==4.67.1; extra == "frozen"
295
+ Requires-Dist: tqdm==4.67.2; extra == "frozen"
296
296
  Requires-Dist: traitlets==5.14.3; extra == "frozen"
297
297
  Requires-Dist: typer==0.21.1; extra == "frozen"
298
298
  Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
@@ -309,7 +309,7 @@ Requires-Dist: uvloop==0.22.1; extra == "frozen"
309
309
  Requires-Dist: vine==5.1.0; extra == "frozen"
310
310
  Requires-Dist: voluptuous==0.16.0; extra == "frozen"
311
311
  Requires-Dist: watchfiles==1.1.1; extra == "frozen"
312
- Requires-Dist: wcwidth==0.4.0; extra == "frozen"
312
+ Requires-Dist: wcwidth==0.5.3; extra == "frozen"
313
313
  Requires-Dist: websockets==16.0; extra == "frozen"
314
314
  Requires-Dist: wirerope==1.0.0; extra == "frozen"
315
315
  Requires-Dist: wrapt==1.17.3; extra == "frozen"
@@ -1,7 +1,7 @@
1
- dkist-processing-common==12.1.0
1
+ dkist-processing-common==12.3.0
2
2
  dkist-processing-math==2.2.1
3
3
  dkist-processing-pac==3.1.1
4
- dkist-header-validator==5.2.1
4
+ dkist-header-validator==5.3.0
5
5
  dkist-fits-specifications==4.20.0
6
6
  dkist-spectral-lines==3.0.0
7
7
  dkist-service-configuration==4.2.0
@@ -38,7 +38,7 @@ MarkupSafe==3.0.3
38
38
  PIMS==0.7
39
39
  PeakUtils==1.3.5
40
40
  PyAVM==0.9.8
41
- PyJWT==2.10.1
41
+ PyJWT==2.11.0
42
42
  PyYAML==6.0.3
43
43
  PyYAML-ft==8.0.0
44
44
  Pygments==2.19.2
@@ -52,19 +52,19 @@ aiohttp==3.13.3
52
52
  aiosignal==1.4.0
53
53
  aiosmtplib==5.1.0
54
54
  aiosqlite==0.21.0
55
- alembic==1.18.1
55
+ alembic==1.18.3
56
56
  amqp==5.3.1
57
57
  annotated-types==0.7.0
58
58
  anyio==4.12.1
59
59
  apache-airflow==3.1.6
60
60
  apache-airflow-core==3.1.6
61
- apache-airflow-providers-celery==3.15.1
62
- apache-airflow-providers-common-compat==1.12.0
61
+ apache-airflow-providers-celery==3.15.2
62
+ apache-airflow-providers-common-compat==1.13.0
63
63
  apache-airflow-providers-common-io==1.7.1
64
- apache-airflow-providers-common-sql==1.30.3
65
- apache-airflow-providers-postgres==6.5.2
64
+ apache-airflow-providers-common-sql==1.30.4
65
+ apache-airflow-providers-postgres==6.5.3
66
66
  apache-airflow-providers-smtp==2.4.2
67
- apache-airflow-providers-standard==1.10.3
67
+ apache-airflow-providers-standard==1.11.0
68
68
  apache-airflow-task-sdk==1.1.6
69
69
  argcomplete==3.6.3
70
70
  asdf==3.5.0
@@ -73,14 +73,14 @@ asdf_transform_schemas==0.6.0
73
73
  asgiref==3.11.0
74
74
  asteval==1.0.8
75
75
  astropy==7.0.2
76
- astropy-iers-data==0.2026.1.26.0.43.56
76
+ astropy-iers-data==0.2026.2.2.0.48.1
77
77
  astropy_healpix==1.1.3
78
78
  asyncpg==0.31.0
79
79
  attrs==25.4.0
80
- babel==2.17.0
80
+ babel==2.18.0
81
81
  billiard==4.2.4
82
- boto3==1.42.34
83
- botocore==1.42.34
82
+ boto3==1.42.39
83
+ botocore==1.42.39
84
84
  cadwyn==5.4.6
85
85
  celery==5.6.2
86
86
  certifi==2026.1.4
@@ -95,17 +95,17 @@ colorlog==6.10.1
95
95
  contourpy==1.3.3
96
96
  cron_descriptor==2.0.6
97
97
  croniter==6.0.0
98
- cryptography==46.0.3
98
+ cryptography==46.0.4
99
99
  cycler==0.12.1
100
100
  dacite==1.9.2
101
- dask==2026.1.1
101
+ dask==2026.1.2
102
102
  dask-image==2025.11.0
103
103
  decorator==5.2.1
104
104
  dill==0.4.1
105
- dkist-header-validator==5.2.1
106
- dkist-processing-common==12.1.0
105
+ dkist-header-validator==5.3.0
106
+ dkist-processing-common==12.3.0
107
107
  dkist-processing-core==7.0.1
108
- dkist-processing-dlnirsp==0.34.1
108
+ dkist-processing-dlnirsp==0.34.3
109
109
  dkist-processing-math==2.2.1
110
110
  dkist-processing-pac==3.1.1
111
111
  dkist-service-configuration==4.2.0
@@ -194,22 +194,22 @@ opentelemetry-util-http==0.60b1
194
194
  outcome==1.3.0.post0
195
195
  packaging==26.0
196
196
  pandas==3.0.0
197
- parfive==2.3.0
197
+ parfive==2.3.1
198
198
  partd==1.4.2
199
- pathspec==1.0.3
200
- pendulum==3.1.0
199
+ pathspec==1.0.4
200
+ pendulum==3.2.0
201
201
  pika==1.3.2
202
202
  pillow==11.3.0
203
- pip==25.3
203
+ pip==26.0
204
204
  platformdirs==4.5.1
205
205
  pluggy==1.6.0
206
- pooch==1.8.2
206
+ pooch==1.9.0
207
207
  proglog==0.1.12
208
208
  prometheus_client==0.24.1
209
209
  prompt_toolkit==3.0.52
210
210
  propcache==0.4.1
211
- protobuf==6.33.4
212
- psutil==7.2.1
211
+ protobuf==6.33.5
212
+ psutil==7.2.2
213
213
  psycopg2-binary==2.9.11
214
214
  pyarrow==23.0.0
215
215
  pycparser==3.0
@@ -229,9 +229,9 @@ redis==6.4.0
229
229
  referencing==0.37.0
230
230
  reproject==0.19.0
231
231
  requests==2.32.5
232
- rich==14.3.1
232
+ rich==14.3.2
233
233
  rich-argparse==1.7.2
234
- rich-toolkit==0.17.1
234
+ rich-toolkit==0.18.1
235
235
  rpds-py==0.30.0
236
236
  s3transfer==0.16.0
237
237
  scikit-image==0.26.0
@@ -254,10 +254,10 @@ talus==1.3.4
254
254
  tenacity==8.5.0
255
255
  termcolor==3.3.0
256
256
  text-unidecode==1.3
257
- tifffile==2026.1.14
257
+ tifffile==2026.1.28
258
258
  toolz==1.1.0
259
259
  tornado==6.5.4
260
- tqdm==4.67.1
260
+ tqdm==4.67.2
261
261
  traitlets==5.14.3
262
262
  typer==0.21.1
263
263
  typing-inspection==0.4.2
@@ -274,7 +274,7 @@ uvloop==0.22.1
274
274
  vine==5.1.0
275
275
  voluptuous==0.16.0
276
276
  watchfiles==1.1.1
277
- wcwidth==0.4.0
277
+ wcwidth==0.5.3
278
278
  websockets==16.0
279
279
  wirerope==1.0.0
280
280
  wrapt==1.17.3
@@ -9,8 +9,8 @@ find = {}
9
9
 
10
10
  [tool.dkist-dev-tools]
11
11
  # Most recently frozen version by dkist-dev-tools
12
- version = "0.34.1"
13
- date = 2026-01-26T13:33:00.443026
12
+ version = "0.34.3"
13
+ date = 2026-02-02T11:01:45.532760
14
14
 
15
15
  [project]
16
16
  dynamic = ["version"]
@@ -26,10 +26,10 @@ classifiers = [
26
26
  "Programming Language :: Python :: 3.13",
27
27
  ]
28
28
  dependencies = [
29
- "dkist-processing-common == 12.1.0",
29
+ "dkist-processing-common == 12.3.0",
30
30
  "dkist-processing-math == 2.2.1",
31
31
  "dkist-processing-pac == 3.1.1",
32
- "dkist-header-validator == 5.2.1",
32
+ "dkist-header-validator == 5.3.0",
33
33
  "dkist-fits-specifications == 4.20.0",
34
34
  "dkist-spectral-lines == 3.0.0",
35
35
  "dkist-service-configuration == 4.2.0",
@@ -101,7 +101,7 @@ frozen = [
101
101
  "PIMS == 0.7",
102
102
  "PeakUtils == 1.3.5",
103
103
  "PyAVM == 0.9.8",
104
- "PyJWT == 2.10.1",
104
+ "PyJWT == 2.11.0",
105
105
  "PyYAML == 6.0.3",
106
106
  "PyYAML-ft == 8.0.0",
107
107
  "Pygments == 2.19.2",
@@ -115,19 +115,19 @@ frozen = [
115
115
  "aiosignal == 1.4.0",
116
116
  "aiosmtplib == 5.1.0",
117
117
  "aiosqlite == 0.21.0",
118
- "alembic == 1.18.1",
118
+ "alembic == 1.18.3",
119
119
  "amqp == 5.3.1",
120
120
  "annotated-types == 0.7.0",
121
121
  "anyio == 4.12.1",
122
122
  "apache-airflow == 3.1.6",
123
123
  "apache-airflow-core == 3.1.6",
124
- "apache-airflow-providers-celery == 3.15.1",
125
- "apache-airflow-providers-common-compat == 1.12.0",
124
+ "apache-airflow-providers-celery == 3.15.2",
125
+ "apache-airflow-providers-common-compat == 1.13.0",
126
126
  "apache-airflow-providers-common-io == 1.7.1",
127
- "apache-airflow-providers-common-sql == 1.30.3",
128
- "apache-airflow-providers-postgres == 6.5.2",
127
+ "apache-airflow-providers-common-sql == 1.30.4",
128
+ "apache-airflow-providers-postgres == 6.5.3",
129
129
  "apache-airflow-providers-smtp == 2.4.2",
130
- "apache-airflow-providers-standard == 1.10.3",
130
+ "apache-airflow-providers-standard == 1.11.0",
131
131
  "apache-airflow-task-sdk == 1.1.6",
132
132
  "argcomplete == 3.6.3",
133
133
  "asdf == 3.5.0",
@@ -136,14 +136,14 @@ frozen = [
136
136
  "asgiref == 3.11.0",
137
137
  "asteval == 1.0.8",
138
138
  "astropy == 7.0.2",
139
- "astropy-iers-data == 0.2026.1.26.0.43.56",
139
+ "astropy-iers-data == 0.2026.2.2.0.48.1",
140
140
  "astropy_healpix == 1.1.3",
141
141
  "asyncpg == 0.31.0",
142
142
  "attrs == 25.4.0",
143
- "babel == 2.17.0",
143
+ "babel == 2.18.0",
144
144
  "billiard == 4.2.4",
145
- "boto3 == 1.42.34",
146
- "botocore == 1.42.34",
145
+ "boto3 == 1.42.39",
146
+ "botocore == 1.42.39",
147
147
  "cadwyn == 5.4.6",
148
148
  "celery == 5.6.2",
149
149
  "certifi == 2026.1.4",
@@ -158,17 +158,17 @@ frozen = [
158
158
  "contourpy == 1.3.3",
159
159
  "cron_descriptor == 2.0.6",
160
160
  "croniter == 6.0.0",
161
- "cryptography == 46.0.3",
161
+ "cryptography == 46.0.4",
162
162
  "cycler == 0.12.1",
163
163
  "dacite == 1.9.2",
164
- "dask == 2026.1.1",
164
+ "dask == 2026.1.2",
165
165
  "dask-image == 2025.11.0",
166
166
  "decorator == 5.2.1",
167
167
  "dill == 0.4.1",
168
- "dkist-header-validator == 5.2.1",
169
- "dkist-processing-common == 12.1.0",
168
+ "dkist-header-validator == 5.3.0",
169
+ "dkist-processing-common == 12.3.0",
170
170
  "dkist-processing-core == 7.0.1",
171
- "dkist-processing-dlnirsp == 0.34.1",
171
+ "dkist-processing-dlnirsp == 0.34.3",
172
172
  "dkist-processing-math == 2.2.1",
173
173
  "dkist-processing-pac == 3.1.1",
174
174
  "dkist-service-configuration == 4.2.0",
@@ -257,22 +257,22 @@ frozen = [
257
257
  "outcome == 1.3.0.post0",
258
258
  "packaging == 26.0",
259
259
  "pandas == 3.0.0",
260
- "parfive == 2.3.0",
260
+ "parfive == 2.3.1",
261
261
  "partd == 1.4.2",
262
- "pathspec == 1.0.3",
263
- "pendulum == 3.1.0",
262
+ "pathspec == 1.0.4",
263
+ "pendulum == 3.2.0",
264
264
  "pika == 1.3.2",
265
265
  "pillow == 11.3.0",
266
- "pip == 25.3",
266
+ "pip == 26.0",
267
267
  "platformdirs == 4.5.1",
268
268
  "pluggy == 1.6.0",
269
- "pooch == 1.8.2",
269
+ "pooch == 1.9.0",
270
270
  "proglog == 0.1.12",
271
271
  "prometheus_client == 0.24.1",
272
272
  "prompt_toolkit == 3.0.52",
273
273
  "propcache == 0.4.1",
274
- "protobuf == 6.33.4",
275
- "psutil == 7.2.1",
274
+ "protobuf == 6.33.5",
275
+ "psutil == 7.2.2",
276
276
  "psycopg2-binary == 2.9.11",
277
277
  "pyarrow == 23.0.0",
278
278
  "pycparser == 3.0",
@@ -292,9 +292,9 @@ frozen = [
292
292
  "referencing == 0.37.0",
293
293
  "reproject == 0.19.0",
294
294
  "requests == 2.32.5",
295
- "rich == 14.3.1",
295
+ "rich == 14.3.2",
296
296
  "rich-argparse == 1.7.2",
297
- "rich-toolkit == 0.17.1",
297
+ "rich-toolkit == 0.18.1",
298
298
  "rpds-py == 0.30.0",
299
299
  "s3transfer == 0.16.0",
300
300
  "scikit-image == 0.26.0",
@@ -317,10 +317,10 @@ frozen = [
317
317
  "tenacity == 8.5.0",
318
318
  "termcolor == 3.3.0",
319
319
  "text-unidecode == 1.3",
320
- "tifffile == 2026.1.14",
320
+ "tifffile == 2026.1.28",
321
321
  "toolz == 1.1.0",
322
322
  "tornado == 6.5.4",
323
- "tqdm == 4.67.1",
323
+ "tqdm == 4.67.2",
324
324
  "traitlets == 5.14.3",
325
325
  "typer == 0.21.1",
326
326
  "typing-inspection == 0.4.2",
@@ -337,7 +337,7 @@ frozen = [
337
337
  "vine == 5.1.0",
338
338
  "voluptuous == 0.16.0",
339
339
  "watchfiles == 1.1.1",
340
- "wcwidth == 0.4.0",
340
+ "wcwidth == 0.5.3",
341
341
  "websockets == 16.0",
342
342
  "wirerope == 1.0.0",
343
343
  "wrapt == 1.17.3",