dkist-processing-dlnirsp 0.31.1__tar.gz → 0.32.1__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 (114) hide show
  1. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/CHANGELOG.rst +18 -0
  2. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/PKG-INFO +145 -52
  3. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/README.rst +77 -1
  4. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/bad_pixel_map.py +6 -6
  5. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/dark.py +4 -4
  6. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/geometric.py +5 -5
  7. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/ifu_drift.py +5 -5
  8. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/instrument_polarization.py +14 -14
  9. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/lamp.py +3 -3
  10. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/linearity_correction.py +2 -2
  11. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/quality_metrics.py +4 -4
  12. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/science.py +5 -5
  13. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/solar.py +6 -6
  14. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/wavelength_calibration.py +5 -5
  15. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/conftest.py +54 -2
  16. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_linearize_only.py +0 -20
  17. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_polcals_as_science.py +0 -20
  18. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_solar_gain_as_science.py +0 -20
  19. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/local_trial_workflows/l0_to_l1.py +0 -21
  20. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_parse.py +5 -0
  21. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp.egg-info/PKG-INFO +145 -52
  22. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp.egg-info/requires.txt +67 -50
  23. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/pyproject.toml +69 -52
  24. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/.gitignore +0 -0
  25. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/.pre-commit-config.yaml +0 -0
  26. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/.readthedocs.yml +0 -0
  27. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/.snyk +0 -0
  28. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/SCIENCE_CHANGELOG.rst +0 -0
  29. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/bitbucket-pipelines.yml +0 -0
  30. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/changelog/.gitempty +0 -0
  31. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/__init__.py +0 -0
  32. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/config.py +0 -0
  33. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/dev_scripts/__init__.py +0 -0
  34. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/dev_scripts/test_slitbeam_group_assignment.py +0 -0
  35. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/models/__init__.py +0 -0
  36. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/models/constants.py +0 -0
  37. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/models/parameters.py +0 -0
  38. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/models/tags.py +0 -0
  39. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/models/task_name.py +0 -0
  40. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/parsers/__init__.py +0 -0
  41. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/parsers/dlnirsp_l0_fits_access.py +0 -0
  42. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/parsers/dlnirsp_l1_fits_acess.py +0 -0
  43. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/parsers/mosaic.py +0 -0
  44. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/parsers/task.py +0 -0
  45. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/parsers/time.py +0 -0
  46. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/parsers/wavelength.py +0 -0
  47. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/parsers/wcs_corrections.py +0 -0
  48. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/__init__.py +0 -0
  49. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/assemble_movie.py +0 -0
  50. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/dlnirsp_base.py +0 -0
  51. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/l1_output_data.py +0 -0
  52. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/make_movie_frames.py +0 -0
  53. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/mixin/__init__.py +0 -0
  54. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/mixin/corrections.py +0 -0
  55. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/mixin/group_id.py +0 -0
  56. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/parse.py +0 -0
  57. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tasks/write_l1.py +0 -0
  58. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/__init__.py +0 -0
  59. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/local_trial_workflows/__init__.py +0 -0
  60. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_dev_mockers.py +0 -0
  61. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
  62. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/local_trial_workflows/translate_files.py +0 -0
  63. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_assemble_movie.py +0 -0
  64. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_assemble_quality.py +0 -0
  65. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_bad_pixel_map.py +0 -0
  66. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_corrections.py +0 -0
  67. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_dark.py +0 -0
  68. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_dlnirsp_base.py +0 -0
  69. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_dlnirsp_constants.py +0 -0
  70. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_dlnirsp_fits_access.py +0 -0
  71. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_geometric.py +0 -0
  72. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_group_id.py +0 -0
  73. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_ifu_drift.py +0 -0
  74. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_instrument_polarization_calibration.py +0 -0
  75. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_lamp.py +0 -0
  76. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_linearity_correction.py +0 -0
  77. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_make_movie_frames.py +0 -0
  78. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_parameters.py +0 -0
  79. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_quality.py +0 -0
  80. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_science.py +0 -0
  81. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_solar.py +0 -0
  82. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_trial_create_quality_report.py +0 -0
  83. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_wavelength_calibration.py +0 -0
  84. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_workflows.py +0 -0
  85. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/tests/test_write_l1.py +0 -0
  86. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/workflows/__init__.py +0 -0
  87. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/workflows/l0_processing.py +0 -0
  88. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp/workflows/trial_workflow.py +0 -0
  89. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp.egg-info/SOURCES.txt +0 -0
  90. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp.egg-info/dependency_links.txt +0 -0
  91. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp.egg-info/entry_points.txt +0 -0
  92. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/dkist_processing_dlnirsp.egg-info/top_level.txt +0 -0
  93. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/Makefile +0 -0
  94. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/bad_pixel_calibration.rst +0 -0
  95. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/changelog.rst +0 -0
  96. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/conf.py +0 -0
  97. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/gain.rst +0 -0
  98. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/geometric.rst +0 -0
  99. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/ifu_drift.rst +0 -0
  100. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/index.rst +0 -0
  101. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/l0_to_l1_dlnirsp.rst +0 -0
  102. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/l0_to_l1_dlnirsp_full-trial.rst +0 -0
  103. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/landing_page.rst +0 -0
  104. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/linearization.rst +0 -0
  105. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/make.bat +0 -0
  106. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/polarization_calibration.rst +0 -0
  107. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/requirements_table.rst +0 -0
  108. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/science_calibration.rst +0 -0
  109. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/scientific_changelog.rst +0 -0
  110. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/docs/wavelength_calibration.rst +0 -0
  111. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/licenses/LICENSE.rst +0 -0
  112. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/science_towncrier.sh +0 -0
  113. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/setup.cfg +0 -0
  114. {dkist_processing_dlnirsp-0.31.1 → dkist_processing_dlnirsp-0.32.1}/towncrier_science.toml +0 -0
@@ -1,3 +1,21 @@
1
+ v0.32.1 (2025-10-09)
2
+ ====================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Update `dkist-processing-common` to v11.7.0, which makes constants for the dataset extras. (`#113 <https://bitbucket.org/dkistdc/dkist-processing-dlnirsp/pull-requests/113>`__)
8
+
9
+
10
+ v0.32.0 (2025-09-26)
11
+ ====================
12
+
13
+ Misc
14
+ ----
15
+
16
+ - Integrate dkist-processing-core 6.0.0 which brings a swap of Elastic APM to OpenTelemetry for metrics and tracing. (`#112 <https://bitbucket.org/dkistdc/dkist-processing-dlnirsp/pull-requests/112>`__)
17
+
18
+
1
19
  v0.31.1 (2025-09-17)
2
20
  ====================
3
21
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-dlnirsp
3
- Version: 0.31.1
3
+ Version: 0.32.1
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,13 +13,13 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Requires-Python: >=3.12
15
15
  Description-Content-Type: text/x-rst
16
- Requires-Dist: dkist-processing-common==11.5.1
16
+ Requires-Dist: dkist-processing-common==11.7.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.2.1
20
20
  Requires-Dist: dkist-fits-specifications==4.17.0
21
21
  Requires-Dist: dkist-spectral-lines==3.0.0
22
- Requires-Dist: dkist-service-configuration==2.2
22
+ Requires-Dist: dkist-service-configuration==4.1.7
23
23
  Requires-Dist: astropy==7.0.2
24
24
  Requires-Dist: numpy==2.2.5
25
25
  Requires-Dist: numba==0.61.2
@@ -71,65 +71,66 @@ Requires-Dist: Flask-AppBuilder==4.5.3; extra == "frozen"
71
71
  Requires-Dist: Flask-Babel==2.0.0; extra == "frozen"
72
72
  Requires-Dist: Flask-Caching==2.3.1; extra == "frozen"
73
73
  Requires-Dist: Flask-JWT-Extended==4.7.1; extra == "frozen"
74
- Requires-Dist: Flask-Limiter==3.13; extra == "frozen"
74
+ Requires-Dist: Flask-Limiter==3.12; extra == "frozen"
75
75
  Requires-Dist: Flask-Login==0.6.3; extra == "frozen"
76
76
  Requires-Dist: Flask-SQLAlchemy==2.5.1; extra == "frozen"
77
77
  Requires-Dist: Flask-Session==0.5.0; extra == "frozen"
78
78
  Requires-Dist: Flask-WTF==1.2.2; extra == "frozen"
79
79
  Requires-Dist: Jinja2==3.1.6; extra == "frozen"
80
80
  Requires-Dist: Mako==1.3.10; extra == "frozen"
81
- Requires-Dist: MarkupSafe==3.0.2; extra == "frozen"
81
+ Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
82
82
  Requires-Dist: PeakUtils==1.3.5; extra == "frozen"
83
83
  Requires-Dist: PyJWT==2.10.1; extra == "frozen"
84
- Requires-Dist: PyYAML==6.0.2; extra == "frozen"
84
+ Requires-Dist: PyYAML==6.0.3; extra == "frozen"
85
85
  Requires-Dist: Pygments==2.19.2; extra == "frozen"
86
86
  Requires-Dist: SQLAlchemy==1.4.54; extra == "frozen"
87
87
  Requires-Dist: SQLAlchemy-JSONField==1.0.2; extra == "frozen"
88
88
  Requires-Dist: SQLAlchemy-Utils==0.42.0; extra == "frozen"
89
89
  Requires-Dist: WTForms==3.2.1; extra == "frozen"
90
90
  Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
91
- Requires-Dist: aioftp==0.26.2; extra == "frozen"
91
+ Requires-Dist: aioftp==0.27.2; extra == "frozen"
92
92
  Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
93
- Requires-Dist: aiohttp==3.12.15; extra == "frozen"
93
+ Requires-Dist: aiohttp==3.13.0; extra == "frozen"
94
94
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
95
+ Requires-Dist: aiosmtplib==4.0.2; extra == "frozen"
95
96
  Requires-Dist: alembic==1.16.5; extra == "frozen"
96
97
  Requires-Dist: amqp==5.3.1; extra == "frozen"
97
98
  Requires-Dist: annotated-types==0.7.0; extra == "frozen"
98
- Requires-Dist: anyio==4.10.0; extra == "frozen"
99
+ Requires-Dist: anyio==4.11.0; extra == "frozen"
99
100
  Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
100
101
  Requires-Dist: apache-airflow-providers-celery==3.10.0; extra == "frozen"
101
- Requires-Dist: apache-airflow-providers-common-compat==1.7.3; extra == "frozen"
102
- Requires-Dist: apache-airflow-providers-common-io==1.6.2; extra == "frozen"
103
- Requires-Dist: apache-airflow-providers-common-sql==1.28.0; extra == "frozen"
102
+ Requires-Dist: apache-airflow-providers-common-compat==1.7.4; extra == "frozen"
103
+ Requires-Dist: apache-airflow-providers-common-io==1.6.3; extra == "frozen"
104
+ Requires-Dist: apache-airflow-providers-common-sql==1.28.1; extra == "frozen"
104
105
  Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
105
106
  Requires-Dist: apache-airflow-providers-ftp==3.13.2; extra == "frozen"
106
107
  Requires-Dist: apache-airflow-providers-http==5.3.4; extra == "frozen"
107
108
  Requires-Dist: apache-airflow-providers-imap==3.9.2; extra == "frozen"
108
109
  Requires-Dist: apache-airflow-providers-postgres==6.3.0; extra == "frozen"
109
- Requires-Dist: apache-airflow-providers-smtp==2.2.1; extra == "frozen"
110
+ Requires-Dist: apache-airflow-providers-smtp==2.3.1; extra == "frozen"
110
111
  Requires-Dist: apache-airflow-providers-sqlite==4.1.2; extra == "frozen"
111
- Requires-Dist: apispec==6.8.3; extra == "frozen"
112
+ Requires-Dist: apispec==6.8.4; extra == "frozen"
112
113
  Requires-Dist: argcomplete==3.6.2; extra == "frozen"
113
114
  Requires-Dist: asdf==3.5.0; extra == "frozen"
114
115
  Requires-Dist: asdf_standard==1.4.0; extra == "frozen"
115
116
  Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
116
- Requires-Dist: asgiref==3.9.1; extra == "frozen"
117
+ Requires-Dist: asgiref==3.10.0; extra == "frozen"
117
118
  Requires-Dist: asteval==1.0.6; extra == "frozen"
118
119
  Requires-Dist: astropy==7.0.2; extra == "frozen"
119
- Requires-Dist: astropy-iers-data==0.2025.9.15.0.37.0; extra == "frozen"
120
+ Requires-Dist: astropy-iers-data==0.2025.10.6.0.35.25; extra == "frozen"
120
121
  Requires-Dist: asyncpg==0.30.0; extra == "frozen"
121
- Requires-Dist: attrs==25.3.0; extra == "frozen"
122
+ Requires-Dist: attrs==25.4.0; extra == "frozen"
122
123
  Requires-Dist: babel==2.17.0; extra == "frozen"
123
- Requires-Dist: billiard==4.2.1; extra == "frozen"
124
+ Requires-Dist: billiard==4.2.2; extra == "frozen"
124
125
  Requires-Dist: blinker==1.9.0; extra == "frozen"
125
- Requires-Dist: boto3==1.40.32; extra == "frozen"
126
- Requires-Dist: botocore==1.40.32; extra == "frozen"
126
+ Requires-Dist: boto3==1.40.48; extra == "frozen"
127
+ Requires-Dist: botocore==1.40.48; extra == "frozen"
127
128
  Requires-Dist: cachelib==0.13.0; extra == "frozen"
128
129
  Requires-Dist: celery==5.3.1; extra == "frozen"
129
- Requires-Dist: certifi==2025.8.3; extra == "frozen"
130
+ Requires-Dist: certifi==2025.10.5; extra == "frozen"
130
131
  Requires-Dist: cffi==2.0.0; extra == "frozen"
131
132
  Requires-Dist: charset-normalizer==3.4.3; extra == "frozen"
132
- Requires-Dist: click==8.2.1; extra == "frozen"
133
+ Requires-Dist: click==8.3.0; extra == "frozen"
133
134
  Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
134
135
  Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
135
136
  Requires-Dist: click-repl==0.3.0; extra == "frozen"
@@ -140,34 +141,33 @@ Requires-Dist: connexion==2.14.2; extra == "frozen"
140
141
  Requires-Dist: contourpy==1.3.3; extra == "frozen"
141
142
  Requires-Dist: cron_descriptor==2.0.6; extra == "frozen"
142
143
  Requires-Dist: croniter==6.0.0; extra == "frozen"
143
- Requires-Dist: cryptography==46.0.1; extra == "frozen"
144
+ Requires-Dist: cryptography==46.0.2; extra == "frozen"
144
145
  Requires-Dist: cycler==0.12.1; extra == "frozen"
145
146
  Requires-Dist: dacite==1.9.2; extra == "frozen"
146
147
  Requires-Dist: decorator==5.2.1; extra == "frozen"
147
148
  Requires-Dist: dill==0.4.0; extra == "frozen"
148
149
  Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
149
- Requires-Dist: dkist-processing-common==11.5.1; extra == "frozen"
150
- Requires-Dist: dkist-processing-core==5.2.1; extra == "frozen"
151
- Requires-Dist: dkist-processing-dlnirsp==0.31.1; extra == "frozen"
150
+ Requires-Dist: dkist-processing-common==11.7.0; extra == "frozen"
151
+ Requires-Dist: dkist-processing-core==6.0.0; extra == "frozen"
152
+ Requires-Dist: dkist-processing-dlnirsp==0.32.1; extra == "frozen"
152
153
  Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
153
154
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
154
- Requires-Dist: dkist-service-configuration==2.2; extra == "frozen"
155
+ Requires-Dist: dkist-service-configuration==4.1.7; extra == "frozen"
155
156
  Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
156
157
  Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
157
158
  Requires-Dist: dnspython==2.8.0; extra == "frozen"
158
- Requires-Dist: ecs-logging==2.2.0; extra == "frozen"
159
- Requires-Dist: elastic-apm==6.24.0; extra == "frozen"
160
159
  Requires-Dist: email-validator==2.3.0; extra == "frozen"
161
160
  Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
162
161
  Requires-Dist: flower==2.0.1; extra == "frozen"
163
- Requires-Dist: fonttools==4.60.0; extra == "frozen"
164
- Requires-Dist: frozenlist==1.7.0; extra == "frozen"
162
+ Requires-Dist: fonttools==4.60.1; extra == "frozen"
163
+ Requires-Dist: frozenlist==1.8.0; extra == "frozen"
165
164
  Requires-Dist: fsspec==2025.9.0; extra == "frozen"
166
- Requires-Dist: globus-sdk==3.63.0; extra == "frozen"
165
+ Requires-Dist: globus-sdk==3.65.0; extra == "frozen"
167
166
  Requires-Dist: google-re2==1.1.20250805; extra == "frozen"
168
167
  Requires-Dist: googleapis-common-protos==1.70.0; extra == "frozen"
169
168
  Requires-Dist: gqlclient==1.2.3; extra == "frozen"
170
- Requires-Dist: grpcio==1.75.0; extra == "frozen"
169
+ Requires-Dist: greenlet==3.2.4; extra == "frozen"
170
+ Requires-Dist: grpcio==1.75.1; extra == "frozen"
171
171
  Requires-Dist: gunicorn==23.0.0; extra == "frozen"
172
172
  Requires-Dist: h11==0.16.0; extra == "frozen"
173
173
  Requires-Dist: httpcore==1.0.9; extra == "frozen"
@@ -187,7 +187,7 @@ Requires-Dist: kiwisolver==1.4.9; extra == "frozen"
187
187
  Requires-Dist: kombu==5.5.4; extra == "frozen"
188
188
  Requires-Dist: lazy-object-proxy==1.12.0; extra == "frozen"
189
189
  Requires-Dist: lazy_loader==0.4; extra == "frozen"
190
- Requires-Dist: limits==5.5.0; extra == "frozen"
190
+ Requires-Dist: limits==5.6.0; extra == "frozen"
191
191
  Requires-Dist: linkify-it-py==2.0.3; extra == "frozen"
192
192
  Requires-Dist: llvmlite==0.44.0; extra == "frozen"
193
193
  Requires-Dist: lmfit==1.3.4; extra == "frozen"
@@ -197,13 +197,13 @@ Requires-Dist: markdown-it-py==4.0.0; extra == "frozen"
197
197
  Requires-Dist: marshmallow==3.26.1; extra == "frozen"
198
198
  Requires-Dist: marshmallow-oneofschema==3.2.0; extra == "frozen"
199
199
  Requires-Dist: marshmallow-sqlalchemy==0.28.2; extra == "frozen"
200
- Requires-Dist: matplotlib==3.10.6; extra == "frozen"
200
+ Requires-Dist: matplotlib==3.10.7; extra == "frozen"
201
201
  Requires-Dist: mdit-py-plugins==0.5.0; extra == "frozen"
202
202
  Requires-Dist: mdurl==0.1.2; extra == "frozen"
203
203
  Requires-Dist: methodtools==0.4.7; extra == "frozen"
204
204
  Requires-Dist: more-itertools==10.8.0; extra == "frozen"
205
205
  Requires-Dist: moviepy==2.1.2; extra == "frozen"
206
- Requires-Dist: multidict==6.6.4; extra == "frozen"
206
+ Requires-Dist: multidict==6.7.0; extra == "frozen"
207
207
  Requires-Dist: nbformat==5.10.4; extra == "frozen"
208
208
  Requires-Dist: networkx==3.5; extra == "frozen"
209
209
  Requires-Dist: numba==0.61.2; extra == "frozen"
@@ -214,35 +214,52 @@ Requires-Dist: opentelemetry-exporter-otlp==1.37.0; extra == "frozen"
214
214
  Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.37.0; extra == "frozen"
215
215
  Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.37.0; extra == "frozen"
216
216
  Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.37.0; extra == "frozen"
217
+ Requires-Dist: opentelemetry-instrumentation==0.58b0; extra == "frozen"
218
+ Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.58b0; extra == "frozen"
219
+ Requires-Dist: opentelemetry-instrumentation-asgi==0.58b0; extra == "frozen"
220
+ Requires-Dist: opentelemetry-instrumentation-botocore==0.58b0; extra == "frozen"
221
+ Requires-Dist: opentelemetry-instrumentation-celery==0.58b0; extra == "frozen"
222
+ Requires-Dist: opentelemetry-instrumentation-dbapi==0.58b0; extra == "frozen"
223
+ Requires-Dist: opentelemetry-instrumentation-fastapi==0.58b0; extra == "frozen"
224
+ Requires-Dist: opentelemetry-instrumentation-pika==0.58b0; extra == "frozen"
225
+ Requires-Dist: opentelemetry-instrumentation-psycopg2==0.58b0; extra == "frozen"
226
+ Requires-Dist: opentelemetry-instrumentation-pymongo==0.58b0; extra == "frozen"
227
+ Requires-Dist: opentelemetry-instrumentation-redis==0.58b0; extra == "frozen"
228
+ Requires-Dist: opentelemetry-instrumentation-requests==0.58b0; extra == "frozen"
229
+ Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.58b0; extra == "frozen"
230
+ Requires-Dist: opentelemetry-instrumentation-system-metrics==0.58b0; extra == "frozen"
231
+ Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
217
232
  Requires-Dist: opentelemetry-proto==1.37.0; extra == "frozen"
218
233
  Requires-Dist: opentelemetry-sdk==1.37.0; extra == "frozen"
219
234
  Requires-Dist: opentelemetry-semantic-conventions==0.58b0; extra == "frozen"
235
+ Requires-Dist: opentelemetry-util-http==0.58b0; extra == "frozen"
220
236
  Requires-Dist: ordered-set==4.1.0; extra == "frozen"
221
237
  Requires-Dist: packaging==25.0; extra == "frozen"
222
- Requires-Dist: pandas==2.3.2; extra == "frozen"
238
+ Requires-Dist: pandas==2.3.3; extra == "frozen"
223
239
  Requires-Dist: parfive==2.2.0; extra == "frozen"
240
+ Requires-Dist: pathlib_abc==0.5.1; extra == "frozen"
224
241
  Requires-Dist: pathspec==0.12.1; extra == "frozen"
225
242
  Requires-Dist: pendulum==3.1.0; extra == "frozen"
226
243
  Requires-Dist: pika==1.3.2; extra == "frozen"
227
244
  Requires-Dist: pillow==10.4.0; extra == "frozen"
228
245
  Requires-Dist: pip==25.2; extra == "frozen"
229
- Requires-Dist: platformdirs==4.4.0; extra == "frozen"
246
+ Requires-Dist: platformdirs==4.5.0; extra == "frozen"
230
247
  Requires-Dist: pluggy==1.6.0; extra == "frozen"
231
248
  Requires-Dist: pooch==1.8.2; extra == "frozen"
232
249
  Requires-Dist: prison==0.2.1; extra == "frozen"
233
250
  Requires-Dist: proglog==0.1.12; extra == "frozen"
234
- Requires-Dist: prometheus_client==0.22.1; extra == "frozen"
251
+ Requires-Dist: prometheus_client==0.23.1; extra == "frozen"
235
252
  Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
236
- Requires-Dist: propcache==0.3.2; extra == "frozen"
253
+ Requires-Dist: propcache==0.4.1; extra == "frozen"
237
254
  Requires-Dist: protobuf==6.32.1; extra == "frozen"
238
- Requires-Dist: psutil==7.0.0; extra == "frozen"
255
+ Requires-Dist: psutil==7.1.0; extra == "frozen"
239
256
  Requires-Dist: psycopg2-binary==2.9.10; extra == "frozen"
240
257
  Requires-Dist: pycparser==2.23; extra == "frozen"
241
- Requires-Dist: pydantic==2.11.9; extra == "frozen"
242
- Requires-Dist: pydantic-settings==2.10.1; extra == "frozen"
243
- Requires-Dist: pydantic_core==2.33.2; extra == "frozen"
258
+ Requires-Dist: pydantic==2.12.0; extra == "frozen"
259
+ Requires-Dist: pydantic-settings==2.11.0; extra == "frozen"
260
+ Requires-Dist: pydantic_core==2.41.1; extra == "frozen"
244
261
  Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
245
- Requires-Dist: pyparsing==3.2.4; extra == "frozen"
262
+ Requires-Dist: pyparsing==3.2.5; extra == "frozen"
246
263
  Requires-Dist: python-daemon==3.1.2; extra == "frozen"
247
264
  Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
248
265
  Requires-Dist: python-dotenv==1.1.1; extra == "frozen"
@@ -254,7 +271,7 @@ Requires-Dist: referencing==0.36.2; extra == "frozen"
254
271
  Requires-Dist: requests==2.32.5; extra == "frozen"
255
272
  Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
256
273
  Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
257
- Requires-Dist: rich==14.1.0; extra == "frozen"
274
+ Requires-Dist: rich==13.9.4; extra == "frozen"
258
275
  Requires-Dist: rich-argparse==1.7.1; extra == "frozen"
259
276
  Requires-Dist: rpds-py==0.27.1; extra == "frozen"
260
277
  Requires-Dist: s3transfer==0.14.0; extra == "frozen"
@@ -273,24 +290,24 @@ Requires-Dist: talus==1.3.4; extra == "frozen"
273
290
  Requires-Dist: tenacity==8.5.0; extra == "frozen"
274
291
  Requires-Dist: termcolor==3.1.0; extra == "frozen"
275
292
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
276
- Requires-Dist: tifffile==2025.9.9; extra == "frozen"
293
+ Requires-Dist: tifffile==2025.10.4; extra == "frozen"
277
294
  Requires-Dist: tornado==6.5.2; extra == "frozen"
278
295
  Requires-Dist: tqdm==4.67.1; extra == "frozen"
279
296
  Requires-Dist: traitlets==5.14.3; extra == "frozen"
280
- Requires-Dist: typing-inspection==0.4.1; extra == "frozen"
297
+ Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
281
298
  Requires-Dist: typing_extensions==4.15.0; extra == "frozen"
282
299
  Requires-Dist: tzdata==2025.2; extra == "frozen"
283
300
  Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
284
301
  Requires-Dist: uncertainties==3.2.3; extra == "frozen"
285
- Requires-Dist: universal_pathlib==0.2.6; extra == "frozen"
302
+ Requires-Dist: universal_pathlib==0.3.3; extra == "frozen"
286
303
  Requires-Dist: urllib3==2.5.0; extra == "frozen"
287
304
  Requires-Dist: vine==5.1.0; extra == "frozen"
288
305
  Requires-Dist: voluptuous==0.15.2; extra == "frozen"
289
- Requires-Dist: wcwidth==0.2.13; extra == "frozen"
306
+ Requires-Dist: wcwidth==0.2.14; extra == "frozen"
290
307
  Requires-Dist: wirerope==1.0.0; extra == "frozen"
291
308
  Requires-Dist: wrapt==1.17.3; extra == "frozen"
292
309
  Requires-Dist: yamale==6.0.0; extra == "frozen"
293
- Requires-Dist: yarl==1.20.1; extra == "frozen"
310
+ Requires-Dist: yarl==1.22.0; extra == "frozen"
294
311
  Requires-Dist: zipp==3.23.0; extra == "frozen"
295
312
 
296
313
  dkist-processing-dlnirsp
@@ -309,7 +326,83 @@ in their own package facilitates using the build_utils to test the integrity of
309
326
 
310
327
  Environment Variables
311
328
  ---------------------
312
- Only those specified by `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_ and `dkist-processing-common <https://pypi.org/project/dkist-processing-common/>`_.
329
+
330
+ .. list-table::
331
+ :widths: 10 90
332
+ :header-rows: 1
333
+
334
+ * - Variable
335
+ - Field Info
336
+ * - LOGURU_LEVEL
337
+ - annotation=str required=False default='INFO' alias_priority=2 validation_alias='LOGURU_LEVEL' description='Log level for the application'
338
+ * - MESH_CONFIG
339
+ - annotation=dict[str, MeshService] required=False default_factory=dict alias_priority=2 validation_alias='MESH_CONFIG' description='Service mesh configuration' examples=[{'upstream_service_name': {'mesh_address': 'localhost', 'mesh_port': 6742}}]
340
+ * - RETRY_CONFIG
341
+ - annotation=RetryConfig required=False default_factory=RetryConfig description='Retry configuration for the service'
342
+ * - OTEL_SERVICE_NAME
343
+ - annotation=str required=False default='unknown-service-name' alias_priority=2 validation_alias='OTEL_SERVICE_NAME' description='Service name for OpenTelemetry'
344
+ * - DKIST_SERVICE_VERSION
345
+ - annotation=str required=False default='unknown-service-version' alias_priority=2 validation_alias='DKIST_SERVICE_VERSION' description='Service version for OpenTelemetry'
346
+ * - NOMAD_ALLOC_ID
347
+ - annotation=str required=False default='unknown-allocation-id' alias_priority=2 validation_alias='NOMAD_ALLOC_ID' description='Nomad allocation ID for OpenTelemetry'
348
+ * - OTEL_EXPORTER_OTLP_TRACES_INSECURE
349
+ - annotation=bool required=False default=True description='Use insecure connection for OTLP traces'
350
+ * - OTEL_EXPORTER_OTLP_METRICS_INSECURE
351
+ - annotation=bool required=False default=True description='Use insecure connection for OTLP metrics'
352
+ * - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
353
+ - annotation=Union[str, NoneType] required=False default=None description='OTLP traces endpoint. Overrides mesh configuration' examples=['localhost:4317']
354
+ * - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
355
+ - annotation=Union[str, NoneType] required=False default=None description='OTLP metrics endpoint. Overrides mesh configuration' examples=['localhost:4317']
356
+ * - OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
357
+ - annotation=list[str] required=False default_factory=list description='List of instrumentations to disable. https://opentelemetry.io/docs/zero-code/python/configuration/' examples=[['pika', 'requests']]
358
+ * - OTEL_PYTHON_FASTAPI_EXCLUDED_URLS
359
+ - annotation=str required=False default='health' description='Comma separated list of URLs to exclude from OpenTelemetry instrumentation in FastAPI.' examples=['client/.*/info,healthcheck']
360
+ * - SYSTEM_METRIC_INSTRUMENTATION_CONFIG
361
+ - annotation=Union[dict[str, bool], NoneType] required=False default=None description='Configuration for system metric instrumentation. https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/system_metrics/system_metrics.html' examples=[{'system.memory.usage': ['used', 'free', 'cached'], 'system.cpu.time': ['idle', 'user', 'system', 'irq'], 'system.network.io': ['transmit', 'receive'], 'process.runtime.memory': ['rss', 'vms'], 'process.runtime.cpu.time': ['user', 'system'], 'process.runtime.context_switches': ['involuntary', 'voluntary']}]
362
+ * - ISB_USERNAME
363
+ - annotation=str required=False default='guest' description='Username for the interservice-bus.'
364
+ * - ISB_PASSWORD
365
+ - annotation=str required=False default='guest' description='Password for the interservice-bus.'
366
+ * - ISB_EXCHANGE
367
+ - annotation=str required=False default='master.direct.x' description='Exchange for the interservice-bus.'
368
+ * - ISB_QUEUE_TYPE
369
+ - annotation=str required=False default='classic' description='Queue type for the interservice-bus.' examples=['quorum', 'classic']
370
+ * - BUILD_VERSION
371
+ - annotation=str required=False default='dev' description='Fallback build version for workflow tasks.'
372
+ * - GQL_AUTH_TOKEN
373
+ - annotation=Union[str, NoneType] required=False default='dev' description='The auth token for the metadata-store-api.'
374
+ * - OBJECT_STORE_ACCESS_KEY
375
+ - annotation=Union[str, NoneType] required=False default=None description='The access key for the object store.'
376
+ * - OBJECT_STORE_SECRET_KEY
377
+ - annotation=Union[str, NoneType] required=False default=None description='The secret key for the object store.'
378
+ * - OBJECT_STORE_USE_SSL
379
+ - annotation=bool required=False default=False description='Whether to use SSL for the object store connection.'
380
+ * - MULTIPART_THRESHOLD
381
+ - annotation=Union[int, NoneType] required=False default=None description='Multipart threshold for the object store.'
382
+ * - S3_CLIENT_CONFIG
383
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 client configuration for the object store.'
384
+ * - S3_UPLOAD_CONFIG
385
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 upload configuration for the object store.'
386
+ * - S3_DOWNLOAD_CONFIG
387
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 download configuration for the object store.'
388
+ * - GLOBUS_TRANSPORT_PARAMS
389
+ - annotation=dict required=False default_factory=dict description='Globus transfer parameters.'
390
+ * - GLOBUS_CLIENT_ID
391
+ - annotation=Union[str, NoneType] required=False default=None description='Globus client ID for inbound/outbound transfers.'
392
+ * - GLOBUS_CLIENT_SECRET
393
+ - annotation=Union[str, NoneType] required=False default=None description='Globus client secret for inbound/outbound transfers.'
394
+ * - OBJECT_STORE_ENDPOINT
395
+ - annotation=Union[str, NoneType] required=False default=None description='Object store Globus Endpoint ID.'
396
+ * - SCRATCH_ENDPOINT
397
+ - annotation=Union[str, NoneType] required=False default=None description='Scratch Globus Endpoint ID.'
398
+ * - SCRATCH_BASE_PATH
399
+ - annotation=str required=False default='scratch/' description='Base path for scratch storage.'
400
+ * - SCRATCH_INVENTORY_DB_COUNT
401
+ - annotation=int required=False default=16 description='Number of databases in the scratch inventory (redis).'
402
+ * - DOCS_BASE_URL
403
+ - annotation=str required=False default='my_test_url' description='Base URL for the documentation site.'
404
+ * - FTS_ATLAS_DATA_DIR
405
+ - annotation=Union[str, NoneType] required=False default=None description='Common cached directory for downloaded FTS Atlas.'
313
406
 
314
407
  Development
315
408
  -----------
@@ -14,7 +14,83 @@ in their own package facilitates using the build_utils to test the integrity of
14
14
 
15
15
  Environment Variables
16
16
  ---------------------
17
- Only those specified by `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_ and `dkist-processing-common <https://pypi.org/project/dkist-processing-common/>`_.
17
+
18
+ .. list-table::
19
+ :widths: 10 90
20
+ :header-rows: 1
21
+
22
+ * - Variable
23
+ - Field Info
24
+ * - LOGURU_LEVEL
25
+ - annotation=str required=False default='INFO' alias_priority=2 validation_alias='LOGURU_LEVEL' description='Log level for the application'
26
+ * - MESH_CONFIG
27
+ - annotation=dict[str, MeshService] required=False default_factory=dict alias_priority=2 validation_alias='MESH_CONFIG' description='Service mesh configuration' examples=[{'upstream_service_name': {'mesh_address': 'localhost', 'mesh_port': 6742}}]
28
+ * - RETRY_CONFIG
29
+ - annotation=RetryConfig required=False default_factory=RetryConfig description='Retry configuration for the service'
30
+ * - OTEL_SERVICE_NAME
31
+ - annotation=str required=False default='unknown-service-name' alias_priority=2 validation_alias='OTEL_SERVICE_NAME' description='Service name for OpenTelemetry'
32
+ * - DKIST_SERVICE_VERSION
33
+ - annotation=str required=False default='unknown-service-version' alias_priority=2 validation_alias='DKIST_SERVICE_VERSION' description='Service version for OpenTelemetry'
34
+ * - NOMAD_ALLOC_ID
35
+ - annotation=str required=False default='unknown-allocation-id' alias_priority=2 validation_alias='NOMAD_ALLOC_ID' description='Nomad allocation ID for OpenTelemetry'
36
+ * - OTEL_EXPORTER_OTLP_TRACES_INSECURE
37
+ - annotation=bool required=False default=True description='Use insecure connection for OTLP traces'
38
+ * - OTEL_EXPORTER_OTLP_METRICS_INSECURE
39
+ - annotation=bool required=False default=True description='Use insecure connection for OTLP metrics'
40
+ * - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
41
+ - annotation=Union[str, NoneType] required=False default=None description='OTLP traces endpoint. Overrides mesh configuration' examples=['localhost:4317']
42
+ * - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
43
+ - annotation=Union[str, NoneType] required=False default=None description='OTLP metrics endpoint. Overrides mesh configuration' examples=['localhost:4317']
44
+ * - OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
45
+ - annotation=list[str] required=False default_factory=list description='List of instrumentations to disable. https://opentelemetry.io/docs/zero-code/python/configuration/' examples=[['pika', 'requests']]
46
+ * - OTEL_PYTHON_FASTAPI_EXCLUDED_URLS
47
+ - annotation=str required=False default='health' description='Comma separated list of URLs to exclude from OpenTelemetry instrumentation in FastAPI.' examples=['client/.*/info,healthcheck']
48
+ * - SYSTEM_METRIC_INSTRUMENTATION_CONFIG
49
+ - annotation=Union[dict[str, bool], NoneType] required=False default=None description='Configuration for system metric instrumentation. https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/system_metrics/system_metrics.html' examples=[{'system.memory.usage': ['used', 'free', 'cached'], 'system.cpu.time': ['idle', 'user', 'system', 'irq'], 'system.network.io': ['transmit', 'receive'], 'process.runtime.memory': ['rss', 'vms'], 'process.runtime.cpu.time': ['user', 'system'], 'process.runtime.context_switches': ['involuntary', 'voluntary']}]
50
+ * - ISB_USERNAME
51
+ - annotation=str required=False default='guest' description='Username for the interservice-bus.'
52
+ * - ISB_PASSWORD
53
+ - annotation=str required=False default='guest' description='Password for the interservice-bus.'
54
+ * - ISB_EXCHANGE
55
+ - annotation=str required=False default='master.direct.x' description='Exchange for the interservice-bus.'
56
+ * - ISB_QUEUE_TYPE
57
+ - annotation=str required=False default='classic' description='Queue type for the interservice-bus.' examples=['quorum', 'classic']
58
+ * - BUILD_VERSION
59
+ - annotation=str required=False default='dev' description='Fallback build version for workflow tasks.'
60
+ * - GQL_AUTH_TOKEN
61
+ - annotation=Union[str, NoneType] required=False default='dev' description='The auth token for the metadata-store-api.'
62
+ * - OBJECT_STORE_ACCESS_KEY
63
+ - annotation=Union[str, NoneType] required=False default=None description='The access key for the object store.'
64
+ * - OBJECT_STORE_SECRET_KEY
65
+ - annotation=Union[str, NoneType] required=False default=None description='The secret key for the object store.'
66
+ * - OBJECT_STORE_USE_SSL
67
+ - annotation=bool required=False default=False description='Whether to use SSL for the object store connection.'
68
+ * - MULTIPART_THRESHOLD
69
+ - annotation=Union[int, NoneType] required=False default=None description='Multipart threshold for the object store.'
70
+ * - S3_CLIENT_CONFIG
71
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 client configuration for the object store.'
72
+ * - S3_UPLOAD_CONFIG
73
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 upload configuration for the object store.'
74
+ * - S3_DOWNLOAD_CONFIG
75
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 download configuration for the object store.'
76
+ * - GLOBUS_TRANSPORT_PARAMS
77
+ - annotation=dict required=False default_factory=dict description='Globus transfer parameters.'
78
+ * - GLOBUS_CLIENT_ID
79
+ - annotation=Union[str, NoneType] required=False default=None description='Globus client ID for inbound/outbound transfers.'
80
+ * - GLOBUS_CLIENT_SECRET
81
+ - annotation=Union[str, NoneType] required=False default=None description='Globus client secret for inbound/outbound transfers.'
82
+ * - OBJECT_STORE_ENDPOINT
83
+ - annotation=Union[str, NoneType] required=False default=None description='Object store Globus Endpoint ID.'
84
+ * - SCRATCH_ENDPOINT
85
+ - annotation=Union[str, NoneType] required=False default=None description='Scratch Globus Endpoint ID.'
86
+ * - SCRATCH_BASE_PATH
87
+ - annotation=str required=False default='scratch/' description='Base path for scratch storage.'
88
+ * - SCRATCH_INVENTORY_DB_COUNT
89
+ - annotation=int required=False default=16 description='Number of databases in the scratch inventory (redis).'
90
+ * - DOCS_BASE_URL
91
+ - annotation=str required=False default='my_test_url' description='Base URL for the documentation site.'
92
+ * - FTS_ATLAS_DATA_DIR
93
+ - annotation=Union[str, NoneType] required=False default=None description='Common cached directory for downloaded FTS Atlas.'
18
94
 
19
95
  Development
20
96
  -----------
@@ -70,7 +70,7 @@ class BadPixelCalibration(DlnirspTaskBase):
70
70
  logger.info("VIS data detected. Setting dynamic bad pixel map to empty.")
71
71
  dynamic_bad_pixel_map = np.zeros_like(static_bad_pixel_map)
72
72
 
73
- with self.apm_writing_step("Combine dynamic and static maps and write"):
73
+ with self.telemetry_span("Combine dynamic and static maps and write"):
74
74
  logger.info("Combining dynamic and static bad pixel maps")
75
75
  logger.info(f"Static map has {int(np.sum(static_bad_pixel_map))} bad pixels")
76
76
  logger.info(f"Dynamic map has {int(np.sum(dynamic_bad_pixel_map))} bad pixels")
@@ -99,7 +99,7 @@ class BadPixelCalibration(DlnirspTaskBase):
99
99
  (a settable pipeline parameter) are flagged as bad pixels. Prior to computing the standard deviation of the
100
100
  difference image the illuminated array mask is applied so non-illuminated regions don't impact the results.
101
101
  """
102
- with self.apm_processing_step("Smooth average lamp gain image"):
102
+ with self.telemetry_span("Smooth average lamp gain image"):
103
103
  avg_lamp_gain = next(
104
104
  self.read(
105
105
  tags=[
@@ -117,7 +117,7 @@ class BadPixelCalibration(DlnirspTaskBase):
117
117
  mode="constant",
118
118
  cval=np.nanmedian(avg_lamp_gain),
119
119
  )
120
- with self.apm_processing_step("Compute gain dynamic bad pixel map"):
120
+ with self.telemetry_span("Compute gain dynamic bad pixel map"):
121
121
  logger.info("Finding bad pixel locations in lamp gain")
122
122
  diff = smoothed_array - avg_lamp_gain
123
123
  diff[~self.group_id_illuminated_idx] = np.nan
@@ -146,7 +146,7 @@ class BadPixelCalibration(DlnirspTaskBase):
146
146
  is then subtracted from the original array. Pixels in this difference array that are deviant by a large amount
147
147
  (a settable pipeline parameter) are flagged as bad pixels.
148
148
  """
149
- with self.apm_processing_step("Compute lamp dark sigma image"):
149
+ with self.telemetry_span("Compute lamp dark sigma image"):
150
150
  smallest_lamp_exp_time = sorted(self.constants.lamp_gain_exposure_times)[0]
151
151
  logger.info(f"Using darks from exposure time = {smallest_lamp_exp_time}")
152
152
  lamp_darks = self.read(
@@ -159,7 +159,7 @@ class BadPixelCalibration(DlnirspTaskBase):
159
159
  )
160
160
  dark_sigma = stddev_numpy_arrays(lamp_darks)
161
161
 
162
- with self.apm_processing_step("Smooth dark sigma array"):
162
+ with self.telemetry_span("Smooth dark sigma array"):
163
163
  logger.info("Smoothing dark sigma array")
164
164
  smoothed_array = spnd.median_filter(
165
165
  dark_sigma,
@@ -168,7 +168,7 @@ class BadPixelCalibration(DlnirspTaskBase):
168
168
  cval=np.nanmedian(dark_sigma),
169
169
  )
170
170
 
171
- with self.apm_processing_step("Compute dark dynamic bad pixel map"):
171
+ with self.telemetry_span("Compute dark dynamic bad pixel map"):
172
172
  logger.info("Finding bad pixel locations in dark sigma")
173
173
  diff = smoothed_array - dark_sigma
174
174
 
@@ -45,7 +45,7 @@ class DarkCalibration(DlnirspTaskBase, QualityMixin):
45
45
  """
46
46
  target_exp_times = self.constants.non_dark_task_exposure_times
47
47
  logger.info(f"{target_exp_times = }")
48
- with self.apm_task_step(
48
+ with self.telemetry_span(
49
49
  f"Calculating dark frames for {self.constants.num_beams} beams and {len(target_exp_times)} exp times"
50
50
  ):
51
51
  total_dark_frames_used = 0
@@ -62,11 +62,11 @@ class DarkCalibration(DlnirspTaskBase, QualityMixin):
62
62
  total_dark_frames_used += current_exp_dark_count
63
63
  input_dark_arrays = self.read(tags=dark_tags, decoder=fits_array_decoder)
64
64
 
65
- with self.apm_processing_step(f"Calculating dark for {exp_time = }"):
65
+ with self.telemetry_span(f"Calculating dark for {exp_time = }"):
66
66
  logger.info(f"Calculating dark for {exp_time = }")
67
67
  averaged_dark_array = average_numpy_arrays(input_dark_arrays)
68
68
 
69
- with self.apm_writing_step(f"Writing dark for {exp_time = }"):
69
+ with self.telemetry_span(f"Writing dark for {exp_time = }"):
70
70
  logger.info(f"Writing dark for {exp_time = }")
71
71
  self.write(
72
72
  data=averaged_dark_array,
@@ -74,7 +74,7 @@ class DarkCalibration(DlnirspTaskBase, QualityMixin):
74
74
  encoder=fits_array_encoder,
75
75
  )
76
76
 
77
- with self.apm_processing_step("Computing and logger quality metrics"):
77
+ with self.telemetry_span("Computing and logger quality metrics"):
78
78
  no_of_raw_dark_frames: int = self.scratch.count_all(
79
79
  tags=[
80
80
  DlnirspTag.linearized_frame(),
@@ -57,25 +57,25 @@ class GeometricCalibration(DlnirspTaskBase, CorrectionsMixin, QualityMixin):
57
57
 
58
58
  6. Write shifts, scales, and reference wavelength axis to a file
59
59
  """
60
- with self.apm_task_step("Apply dark and lamp corrections"):
60
+ with self.telemetry_span("Apply dark and lamp corrections"):
61
61
  logger.info("Computing average dark/lamp corrected gain image")
62
62
  self.compute_average_corrected_gain()
63
63
 
64
- with self.apm_task_step("Compute spectral curvature"):
64
+ with self.telemetry_span("Compute spectral curvature"):
65
65
  logger.info("Computing spectral curvature")
66
66
  shift_dict, scale_dict = self.compute_spectral_curvature_and_dispersion()
67
67
 
68
- with self.apm_task_step("Compute reference wavelength grid"):
68
+ with self.telemetry_span("Compute reference wavelength grid"):
69
69
  logger.info("Computing reference wavelength grid")
70
70
  reference_wavelength_axis = self.compute_reference_wavelength_axis(
71
71
  shift_dict, scale_dict
72
72
  )
73
73
 
74
- with self.apm_writing_step("Write geometric calibration calibration"):
74
+ with self.telemetry_span("Write geometric calibration calibration"):
75
75
  logger.info("Writing geometric calibration")
76
76
  self.write_geometric_calibration(shift_dict, scale_dict, reference_wavelength_axis)
77
77
 
78
- with self.apm_processing_step("Computing and logging quality metrics"):
78
+ with self.telemetry_span("Computing and logging quality metrics"):
79
79
  no_of_raw_solar_frames: int = self.scratch.count_all(
80
80
  tags=[DlnirspTag.linearized_frame(), DlnirspTag.task_solar_gain()],
81
81
  )
@@ -50,7 +50,7 @@ class IfuDriftCalibration(DlnirspTaskBase):
50
50
 
51
51
  4. Apply this shift to the IFU metrology files and save for use in the downstream pipeline.
52
52
  """
53
- with self.apm_processing_step("Average solar gain images"):
53
+ with self.telemetry_span("Average solar gain images"):
54
54
  logger.info("Computing average solar gain array")
55
55
  solar_gain_data = self.get_avg_solar_gain()
56
56
 
@@ -60,7 +60,7 @@ class IfuDriftCalibration(DlnirspTaskBase):
60
60
  encoder=fits_array_encoder,
61
61
  )
62
62
 
63
- with self.apm_processing_step("Compute binary arrays"):
63
+ with self.telemetry_span("Compute binary arrays"):
64
64
  logger.info("Computing solar binary image")
65
65
  solar_binary = self.compute_solar_binary(solar_gain_data)
66
66
 
@@ -79,12 +79,12 @@ class IfuDriftCalibration(DlnirspTaskBase):
79
79
  encoder=fits_array_encoder,
80
80
  )
81
81
 
82
- with self.apm_processing_step("Compute IFU drift"):
82
+ with self.telemetry_span("Compute IFU drift"):
83
83
  logger.info("Computing IFU drift amount")
84
84
  drift = self.compute_ifu_drift(solar_binary, ifu_binary)
85
85
  logger.info(f"IFU drift = {drift}")
86
86
 
87
- with self.apm_processing_step("Drift IFU metrology arrays"):
87
+ with self.telemetry_span("Drift IFU metrology arrays"):
88
88
  logger.info("Drifting IFU group ID array")
89
89
  drifted_ifu_id_array = self.apply_drift_to_array(raw_ifu_id_array, drift)
90
90
 
@@ -121,7 +121,7 @@ class IfuDriftCalibration(DlnirspTaskBase):
121
121
  )
122
122
  drifted_arrays_dict[tag] = drifted_array * beam_correction_array
123
123
 
124
- with self.apm_writing_step("Write drifted IFU metrology arrays"):
124
+ with self.telemetry_span("Write drifted IFU metrology arrays"):
125
125
  logger.info("Writing drifted IFU metrology arrays")
126
126
  self.write_drifted_metrology_arrays(drifted_arrays_dict)
127
127