dkist-processing-cryonirsp 1.13.0__tar.gz → 1.14.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (126) hide show
  1. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/CHANGELOG.rst +18 -0
  2. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/PKG-INFO +145 -54
  3. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/README.rst +77 -1
  4. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +5 -5
  5. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +8 -10
  6. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/dark.py +4 -4
  7. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/gain.py +6 -6
  8. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +15 -15
  9. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +2 -2
  10. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/quality_metrics.py +14 -14
  11. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/science_base.py +5 -5
  12. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/sp_geometric.py +9 -9
  13. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +14 -12
  14. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +5 -5
  15. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -21
  16. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -20
  17. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp.egg-info/PKG-INFO +145 -54
  18. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp.egg-info/requires.txt +67 -52
  19. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/pyproject.toml +69 -54
  20. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/.gitignore +0 -0
  21. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/.pre-commit-config.yaml +0 -0
  22. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/.readthedocs.yml +0 -0
  23. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/.snyk +0 -0
  24. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/SCIENCE_CHANGELOG.rst +0 -0
  25. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/bitbucket-pipelines.yml +0 -0
  26. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/changelog/.gitempty +0 -0
  27. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/__init__.py +0 -0
  28. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/codecs/__init__.py +0 -0
  29. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/codecs/fits.py +0 -0
  30. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/config.py +0 -0
  31. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/__init__.py +0 -0
  32. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/beam_boundaries.py +0 -0
  33. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/constants.py +0 -0
  34. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
  35. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/parameters.py +0 -0
  36. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/tags.py +0 -0
  37. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/task_name.py +0 -0
  38. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
  39. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/check_for_gains.py +0 -0
  40. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
  41. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
  42. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
  43. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
  44. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
  45. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
  46. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
  47. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
  48. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
  49. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/time.py +0 -0
  50. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
  51. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
  52. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
  53. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
  54. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
  55. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
  56. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
  57. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
  58. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
  59. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
  60. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
  61. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
  62. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
  63. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
  64. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
  65. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
  66. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/conftest.py +0 -0
  67. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
  68. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
  69. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
  70. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
  71. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
  72. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
  73. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
  74. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
  75. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
  76. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
  77. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
  78. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
  79. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
  80. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
  81. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
  82. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
  83. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
  84. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
  85. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_parse.py +0 -0
  86. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
  87. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
  88. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
  89. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
  90. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
  91. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
  92. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py +0 -0
  93. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
  94. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
  95. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
  96. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
  97. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
  98. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
  99. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
  100. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -0
  101. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
  102. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
  103. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/Makefile +0 -0
  104. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/bad_pixel_calibration.rst +0 -0
  105. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/beam_angle_calculation.rst +0 -0
  106. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/beam_boundary_computation.rst +0 -0
  107. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/changelog.rst +0 -0
  108. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/ci_science_calibration.rst +0 -0
  109. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/conf.py +0 -0
  110. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/index.rst +0 -0
  111. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
  112. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
  113. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
  114. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
  115. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/landing_page.rst +0 -0
  116. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/linearization.rst +0 -0
  117. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/make.bat +0 -0
  118. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/requirements.txt +0 -0
  119. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/requirements_table.rst +0 -0
  120. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/scientific_changelog.rst +0 -0
  121. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/sp_science_calibration.rst +0 -0
  122. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/docs/wavelength_calibration.rst +0 -0
  123. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/licenses/LICENSE.rst +0 -0
  124. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/science_towncrier.sh +0 -0
  125. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/setup.cfg +0 -0
  126. {dkist_processing_cryonirsp-1.13.0 → dkist_processing_cryonirsp-1.14.0}/towncrier_science.toml +0 -0
@@ -1,3 +1,21 @@
1
+ v1.14.0 (2025-09-26)
2
+ ====================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Integrate dkist-processing-core 6.0.0 which brings a swap of Elastic APM to OpenTelemetry for metrics and tracing. (`#221 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/221>`__)
8
+
9
+
10
+ v1.13.1 (2025-09-17)
11
+ ====================
12
+
13
+ Misc
14
+ ----
15
+
16
+ - Update dkist-processing-common to enable usage of the latest redis SDK.
17
+
18
+
1
19
  v1.13.0 (2025-09-08)
2
20
  ====================
3
21
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 1.13.0
3
+ Version: 1.14.0
4
4
  Summary: Science processing code for the Cryo-NIRSP instrument on DKIST
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -17,12 +17,12 @@ Requires-Dist: Pillow==10.4.0
17
17
  Requires-Dist: astropy==7.0.2
18
18
  Requires-Dist: dkist-fits-specifications==4.17.0
19
19
  Requires-Dist: dkist-header-validator==5.2.1
20
- Requires-Dist: dkist-processing-common==11.5.0
20
+ Requires-Dist: dkist-processing-common==11.6.0
21
21
  Requires-Dist: dkist-processing-math==2.2.1
22
22
  Requires-Dist: dkist-processing-pac==3.1.1
23
23
  Requires-Dist: dkist-spectral-lines==3.0.0
24
24
  Requires-Dist: largestinteriorrectangle==0.2.1
25
- Requires-Dist: dkist-service-configuration==2.2
25
+ Requires-Dist: dkist-service-configuration==4.1.7
26
26
  Requires-Dist: moviepy==2.1.2
27
27
  Requires-Dist: numba==0.61.2
28
28
  Requires-Dist: numpy==2.2.5
@@ -70,7 +70,7 @@ Requires-Dist: Flask-AppBuilder==4.5.3; extra == "frozen"
70
70
  Requires-Dist: Flask-Babel==2.0.0; extra == "frozen"
71
71
  Requires-Dist: Flask-Caching==2.3.1; extra == "frozen"
72
72
  Requires-Dist: Flask-JWT-Extended==4.7.1; extra == "frozen"
73
- Requires-Dist: Flask-Limiter==3.12; extra == "frozen"
73
+ Requires-Dist: Flask-Limiter==3.13; extra == "frozen"
74
74
  Requires-Dist: Flask-Login==0.6.3; extra == "frozen"
75
75
  Requires-Dist: Flask-SQLAlchemy==2.5.1; extra == "frozen"
76
76
  Requires-Dist: Flask-Session==0.5.0; extra == "frozen"
@@ -80,55 +80,56 @@ Requires-Dist: Mako==1.3.10; extra == "frozen"
80
80
  Requires-Dist: MarkupSafe==3.0.2; extra == "frozen"
81
81
  Requires-Dist: PeakUtils==1.3.5; extra == "frozen"
82
82
  Requires-Dist: PyJWT==2.10.1; extra == "frozen"
83
- Requires-Dist: PyYAML==6.0.2; extra == "frozen"
83
+ Requires-Dist: PyYAML==6.0.3; extra == "frozen"
84
84
  Requires-Dist: Pygments==2.19.2; extra == "frozen"
85
85
  Requires-Dist: SQLAlchemy==1.4.54; extra == "frozen"
86
86
  Requires-Dist: SQLAlchemy-JSONField==1.0.2; extra == "frozen"
87
87
  Requires-Dist: SQLAlchemy-Utils==0.42.0; extra == "frozen"
88
88
  Requires-Dist: WTForms==3.2.1; extra == "frozen"
89
89
  Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
90
- Requires-Dist: aioftp==0.26.2; extra == "frozen"
90
+ Requires-Dist: aioftp==0.27.2; extra == "frozen"
91
91
  Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
92
92
  Requires-Dist: aiohttp==3.12.15; extra == "frozen"
93
93
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
94
+ Requires-Dist: aiosmtplib==4.0.2; extra == "frozen"
94
95
  Requires-Dist: alembic==1.16.5; extra == "frozen"
95
96
  Requires-Dist: amqp==5.3.1; extra == "frozen"
96
97
  Requires-Dist: annotated-types==0.7.0; extra == "frozen"
97
- Requires-Dist: anyio==4.10.0; extra == "frozen"
98
+ Requires-Dist: anyio==4.11.0; extra == "frozen"
98
99
  Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
99
- Requires-Dist: apache-airflow-providers-celery==3.12.2; extra == "frozen"
100
- Requires-Dist: apache-airflow-providers-common-compat==1.7.3; extra == "frozen"
101
- Requires-Dist: apache-airflow-providers-common-io==1.6.2; extra == "frozen"
102
- Requires-Dist: apache-airflow-providers-common-sql==1.27.5; extra == "frozen"
100
+ Requires-Dist: apache-airflow-providers-celery==3.10.0; extra == "frozen"
101
+ Requires-Dist: apache-airflow-providers-common-compat==1.7.4; extra == "frozen"
102
+ Requires-Dist: apache-airflow-providers-common-io==1.6.3; extra == "frozen"
103
+ Requires-Dist: apache-airflow-providers-common-sql==1.28.1; extra == "frozen"
103
104
  Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
104
105
  Requires-Dist: apache-airflow-providers-ftp==3.13.2; extra == "frozen"
105
- Requires-Dist: apache-airflow-providers-http==5.3.3; extra == "frozen"
106
+ Requires-Dist: apache-airflow-providers-http==5.3.4; extra == "frozen"
106
107
  Requires-Dist: apache-airflow-providers-imap==3.9.2; extra == "frozen"
107
- Requires-Dist: apache-airflow-providers-postgres==6.2.3; extra == "frozen"
108
- Requires-Dist: apache-airflow-providers-smtp==2.2.0; extra == "frozen"
108
+ Requires-Dist: apache-airflow-providers-postgres==6.3.0; extra == "frozen"
109
+ Requires-Dist: apache-airflow-providers-smtp==2.3.0; extra == "frozen"
109
110
  Requires-Dist: apache-airflow-providers-sqlite==4.1.2; extra == "frozen"
110
- Requires-Dist: apispec==6.8.3; extra == "frozen"
111
+ Requires-Dist: apispec==6.8.4; extra == "frozen"
111
112
  Requires-Dist: argcomplete==3.6.2; extra == "frozen"
112
113
  Requires-Dist: asdf==3.5.0; extra == "frozen"
113
114
  Requires-Dist: asdf_standard==1.4.0; extra == "frozen"
114
115
  Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
115
- Requires-Dist: asgiref==3.9.1; extra == "frozen"
116
+ Requires-Dist: asgiref==3.9.2; extra == "frozen"
116
117
  Requires-Dist: asteval==1.0.6; extra == "frozen"
117
118
  Requires-Dist: astropy==7.0.2; extra == "frozen"
118
- Requires-Dist: astropy-iers-data==0.2025.9.8.0.36.17; extra == "frozen"
119
+ Requires-Dist: astropy-iers-data==0.2025.9.22.0.37.25; extra == "frozen"
119
120
  Requires-Dist: asyncpg==0.30.0; extra == "frozen"
120
121
  Requires-Dist: attrs==25.3.0; extra == "frozen"
121
122
  Requires-Dist: babel==2.17.0; extra == "frozen"
122
- Requires-Dist: billiard==4.2.1; extra == "frozen"
123
+ Requires-Dist: billiard==4.2.2; extra == "frozen"
123
124
  Requires-Dist: blinker==1.9.0; extra == "frozen"
124
- Requires-Dist: boto3==1.40.25; extra == "frozen"
125
- Requires-Dist: botocore==1.40.25; extra == "frozen"
125
+ Requires-Dist: boto3==1.40.39; extra == "frozen"
126
+ Requires-Dist: botocore==1.40.39; extra == "frozen"
126
127
  Requires-Dist: cachelib==0.13.0; extra == "frozen"
127
- Requires-Dist: celery==5.5.3; extra == "frozen"
128
+ Requires-Dist: celery==5.3.1; extra == "frozen"
128
129
  Requires-Dist: certifi==2025.8.3; extra == "frozen"
129
- Requires-Dist: cffi==1.17.1; extra == "frozen"
130
+ Requires-Dist: cffi==2.0.0; extra == "frozen"
130
131
  Requires-Dist: charset-normalizer==3.4.3; extra == "frozen"
131
- Requires-Dist: click==8.2.1; extra == "frozen"
132
+ Requires-Dist: click==8.3.0; extra == "frozen"
132
133
  Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
133
134
  Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
134
135
  Requires-Dist: click-repl==0.3.0; extra == "frozen"
@@ -139,34 +140,32 @@ Requires-Dist: connexion==2.14.2; extra == "frozen"
139
140
  Requires-Dist: contourpy==1.3.3; extra == "frozen"
140
141
  Requires-Dist: cron_descriptor==2.0.6; extra == "frozen"
141
142
  Requires-Dist: croniter==6.0.0; extra == "frozen"
142
- Requires-Dist: cryptography==45.0.7; extra == "frozen"
143
+ Requires-Dist: cryptography==46.0.1; extra == "frozen"
143
144
  Requires-Dist: cycler==0.12.1; extra == "frozen"
144
145
  Requires-Dist: dacite==1.9.2; extra == "frozen"
145
146
  Requires-Dist: decorator==5.2.1; extra == "frozen"
146
147
  Requires-Dist: dill==0.4.0; extra == "frozen"
147
148
  Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
148
- Requires-Dist: dkist-processing-common==11.5.0; extra == "frozen"
149
- Requires-Dist: dkist-processing-core==5.2.1; extra == "frozen"
150
- Requires-Dist: dkist-processing-cryonirsp==1.13.0; extra == "frozen"
149
+ Requires-Dist: dkist-processing-common==11.6.0; extra == "frozen"
150
+ Requires-Dist: dkist-processing-core==6.0.0; extra == "frozen"
151
+ Requires-Dist: dkist-processing-cryonirsp==1.14.0; extra == "frozen"
151
152
  Requires-Dist: dkist-processing-math==2.2.1; extra == "frozen"
152
153
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
153
- Requires-Dist: dkist-service-configuration==2.2; extra == "frozen"
154
+ Requires-Dist: dkist-service-configuration==4.1.7; extra == "frozen"
154
155
  Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
155
156
  Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
156
157
  Requires-Dist: dnspython==2.8.0; extra == "frozen"
157
- Requires-Dist: ecs-logging==2.2.0; extra == "frozen"
158
- Requires-Dist: elastic-apm==6.24.0; extra == "frozen"
159
158
  Requires-Dist: email-validator==2.3.0; extra == "frozen"
160
159
  Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
161
160
  Requires-Dist: flower==2.0.1; extra == "frozen"
162
- Requires-Dist: fonttools==4.59.2; extra == "frozen"
161
+ Requires-Dist: fonttools==4.60.0; extra == "frozen"
163
162
  Requires-Dist: frozenlist==1.7.0; extra == "frozen"
164
163
  Requires-Dist: fsspec==2025.9.0; extra == "frozen"
165
- Requires-Dist: globus-sdk==3.63.0; extra == "frozen"
164
+ Requires-Dist: globus-sdk==3.64.0; extra == "frozen"
166
165
  Requires-Dist: google-re2==1.1.20250805; extra == "frozen"
167
166
  Requires-Dist: googleapis-common-protos==1.70.0; extra == "frozen"
168
167
  Requires-Dist: gqlclient==1.2.3; extra == "frozen"
169
- Requires-Dist: grpcio==1.74.0; extra == "frozen"
168
+ Requires-Dist: grpcio==1.75.1; extra == "frozen"
170
169
  Requires-Dist: gunicorn==23.0.0; extra == "frozen"
171
170
  Requires-Dist: h11==0.16.0; extra == "frozen"
172
171
  Requires-Dist: httpcore==1.0.9; extra == "frozen"
@@ -209,14 +208,30 @@ Requires-Dist: networkx==3.5; extra == "frozen"
209
208
  Requires-Dist: numba==0.61.2; extra == "frozen"
210
209
  Requires-Dist: numpy==2.2.5; extra == "frozen"
211
210
  Requires-Dist: object-clerk==1.0.0; extra == "frozen"
212
- Requires-Dist: opentelemetry-api==1.36.0; extra == "frozen"
213
- Requires-Dist: opentelemetry-exporter-otlp==1.36.0; extra == "frozen"
214
- Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.36.0; extra == "frozen"
215
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.36.0; extra == "frozen"
216
- Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.36.0; extra == "frozen"
217
- Requires-Dist: opentelemetry-proto==1.36.0; extra == "frozen"
218
- Requires-Dist: opentelemetry-sdk==1.36.0; extra == "frozen"
219
- Requires-Dist: opentelemetry-semantic-conventions==0.57b0; extra == "frozen"
211
+ Requires-Dist: opentelemetry-api==1.37.0; extra == "frozen"
212
+ Requires-Dist: opentelemetry-exporter-otlp==1.37.0; extra == "frozen"
213
+ Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.37.0; extra == "frozen"
214
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.37.0; extra == "frozen"
215
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.37.0; extra == "frozen"
216
+ Requires-Dist: opentelemetry-instrumentation==0.58b0; extra == "frozen"
217
+ Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.58b0; extra == "frozen"
218
+ Requires-Dist: opentelemetry-instrumentation-asgi==0.58b0; extra == "frozen"
219
+ Requires-Dist: opentelemetry-instrumentation-botocore==0.58b0; extra == "frozen"
220
+ Requires-Dist: opentelemetry-instrumentation-celery==0.58b0; extra == "frozen"
221
+ Requires-Dist: opentelemetry-instrumentation-dbapi==0.58b0; extra == "frozen"
222
+ Requires-Dist: opentelemetry-instrumentation-fastapi==0.58b0; extra == "frozen"
223
+ Requires-Dist: opentelemetry-instrumentation-pika==0.58b0; extra == "frozen"
224
+ Requires-Dist: opentelemetry-instrumentation-psycopg2==0.58b0; extra == "frozen"
225
+ Requires-Dist: opentelemetry-instrumentation-pymongo==0.58b0; extra == "frozen"
226
+ Requires-Dist: opentelemetry-instrumentation-redis==0.58b0; extra == "frozen"
227
+ Requires-Dist: opentelemetry-instrumentation-requests==0.58b0; extra == "frozen"
228
+ Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.58b0; extra == "frozen"
229
+ Requires-Dist: opentelemetry-instrumentation-system-metrics==0.58b0; extra == "frozen"
230
+ Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
231
+ Requires-Dist: opentelemetry-proto==1.37.0; extra == "frozen"
232
+ Requires-Dist: opentelemetry-sdk==1.37.0; extra == "frozen"
233
+ Requires-Dist: opentelemetry-semantic-conventions==0.58b0; extra == "frozen"
234
+ Requires-Dist: opentelemetry-util-http==0.58b0; extra == "frozen"
220
235
  Requires-Dist: ordered-set==4.1.0; extra == "frozen"
221
236
  Requires-Dist: packaging==25.0; extra == "frozen"
222
237
  Requires-Dist: pandas==2.3.2; extra == "frozen"
@@ -231,33 +246,33 @@ Requires-Dist: pluggy==1.6.0; extra == "frozen"
231
246
  Requires-Dist: pooch==1.8.2; extra == "frozen"
232
247
  Requires-Dist: prison==0.2.1; extra == "frozen"
233
248
  Requires-Dist: proglog==0.1.12; extra == "frozen"
234
- Requires-Dist: prometheus_client==0.22.1; extra == "frozen"
249
+ Requires-Dist: prometheus_client==0.23.1; extra == "frozen"
235
250
  Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
236
251
  Requires-Dist: propcache==0.3.2; extra == "frozen"
237
- Requires-Dist: protobuf==6.32.0; extra == "frozen"
238
- Requires-Dist: psutil==7.0.0; extra == "frozen"
252
+ Requires-Dist: protobuf==6.32.1; extra == "frozen"
253
+ Requires-Dist: psutil==7.1.0; extra == "frozen"
239
254
  Requires-Dist: psycopg2-binary==2.9.10; extra == "frozen"
240
- Requires-Dist: pycparser==2.22; extra == "frozen"
241
- Requires-Dist: pydantic==2.11.7; extra == "frozen"
242
- Requires-Dist: pydantic-settings==2.10.1; extra == "frozen"
255
+ Requires-Dist: pycparser==2.23; extra == "frozen"
256
+ Requires-Dist: pydantic==2.11.9; extra == "frozen"
257
+ Requires-Dist: pydantic-settings==2.11.0; extra == "frozen"
243
258
  Requires-Dist: pydantic_core==2.33.2; extra == "frozen"
244
259
  Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
245
- Requires-Dist: pyparsing==3.2.3; extra == "frozen"
260
+ Requires-Dist: pyparsing==3.2.5; extra == "frozen"
246
261
  Requires-Dist: python-daemon==3.1.2; extra == "frozen"
247
262
  Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
248
263
  Requires-Dist: python-dotenv==1.1.1; extra == "frozen"
249
264
  Requires-Dist: python-nvd3==0.16.0; extra == "frozen"
250
265
  Requires-Dist: python-slugify==8.0.4; extra == "frozen"
251
266
  Requires-Dist: pytz==2025.2; extra == "frozen"
252
- Requires-Dist: redis==4.6.0; extra == "frozen"
267
+ Requires-Dist: redis==6.4.0; extra == "frozen"
253
268
  Requires-Dist: referencing==0.36.2; extra == "frozen"
254
269
  Requires-Dist: requests==2.32.5; extra == "frozen"
255
270
  Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
256
271
  Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
257
- Requires-Dist: rich==13.9.4; extra == "frozen"
272
+ Requires-Dist: rich==14.1.0; extra == "frozen"
258
273
  Requires-Dist: rich-argparse==1.7.1; extra == "frozen"
259
274
  Requires-Dist: rpds-py==0.27.1; extra == "frozen"
260
- Requires-Dist: s3transfer==0.13.1; extra == "frozen"
275
+ Requires-Dist: s3transfer==0.14.0; extra == "frozen"
261
276
  Requires-Dist: scikit-image==0.25.2; extra == "frozen"
262
277
  Requires-Dist: scipy==1.15.3; extra == "frozen"
263
278
  Requires-Dist: semantic-version==2.10.0; extra == "frozen"
@@ -273,7 +288,7 @@ Requires-Dist: talus==1.3.4; extra == "frozen"
273
288
  Requires-Dist: tenacity==8.5.0; extra == "frozen"
274
289
  Requires-Dist: termcolor==3.1.0; extra == "frozen"
275
290
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
276
- Requires-Dist: tifffile==2025.8.28; extra == "frozen"
291
+ Requires-Dist: tifffile==2025.9.20; extra == "frozen"
277
292
  Requires-Dist: tornado==6.5.2; extra == "frozen"
278
293
  Requires-Dist: tqdm==4.67.1; extra == "frozen"
279
294
  Requires-Dist: traitlets==5.14.3; extra == "frozen"
@@ -286,7 +301,7 @@ Requires-Dist: universal_pathlib==0.2.6; extra == "frozen"
286
301
  Requires-Dist: urllib3==2.5.0; extra == "frozen"
287
302
  Requires-Dist: vine==5.1.0; extra == "frozen"
288
303
  Requires-Dist: voluptuous==0.15.2; extra == "frozen"
289
- Requires-Dist: wcwidth==0.2.13; extra == "frozen"
304
+ Requires-Dist: wcwidth==0.2.14; extra == "frozen"
290
305
  Requires-Dist: wirerope==1.0.0; extra == "frozen"
291
306
  Requires-Dist: wrapt==1.17.3; extra == "frozen"
292
307
  Requires-Dist: yamale==6.0.0; extra == "frozen"
@@ -309,7 +324,83 @@ in their own package facilitates using the build_utils to test the integrity of
309
324
 
310
325
  Environment Variables
311
326
  ---------------------
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/>`_.
327
+
328
+ .. list-table::
329
+ :widths: 10 90
330
+ :header-rows: 1
331
+
332
+ * - Variable
333
+ - Field Info
334
+ * - LOGURU_LEVEL
335
+ - annotation=str required=False default='INFO' alias_priority=2 validation_alias='LOGURU_LEVEL' description='Log level for the application'
336
+ * - MESH_CONFIG
337
+ - 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}}]
338
+ * - RETRY_CONFIG
339
+ - annotation=RetryConfig required=False default_factory=RetryConfig description='Retry configuration for the service'
340
+ * - OTEL_SERVICE_NAME
341
+ - annotation=str required=False default='unknown-service-name' alias_priority=2 validation_alias='OTEL_SERVICE_NAME' description='Service name for OpenTelemetry'
342
+ * - DKIST_SERVICE_VERSION
343
+ - annotation=str required=False default='unknown-service-version' alias_priority=2 validation_alias='DKIST_SERVICE_VERSION' description='Service version for OpenTelemetry'
344
+ * - NOMAD_ALLOC_ID
345
+ - annotation=str required=False default='unknown-allocation-id' alias_priority=2 validation_alias='NOMAD_ALLOC_ID' description='Nomad allocation ID for OpenTelemetry'
346
+ * - OTEL_EXPORTER_OTLP_TRACES_INSECURE
347
+ - annotation=bool required=False default=True description='Use insecure connection for OTLP traces'
348
+ * - OTEL_EXPORTER_OTLP_METRICS_INSECURE
349
+ - annotation=bool required=False default=True description='Use insecure connection for OTLP metrics'
350
+ * - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
351
+ - annotation=Union[str, NoneType] required=False default=None description='OTLP traces endpoint. Overrides mesh configuration' examples=['localhost:4317']
352
+ * - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
353
+ - annotation=Union[str, NoneType] required=False default=None description='OTLP metrics endpoint. Overrides mesh configuration' examples=['localhost:4317']
354
+ * - OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
355
+ - 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']]
356
+ * - OTEL_PYTHON_FASTAPI_EXCLUDED_URLS
357
+ - annotation=str required=False default='health' description='Comma separated list of URLs to exclude from OpenTelemetry instrumentation in FastAPI.' examples=['client/.*/info,healthcheck']
358
+ * - SYSTEM_METRIC_INSTRUMENTATION_CONFIG
359
+ - 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']}]
360
+ * - ISB_USERNAME
361
+ - annotation=str required=False default='guest' description='Username for the interservice-bus.'
362
+ * - ISB_PASSWORD
363
+ - annotation=str required=False default='guest' description='Password for the interservice-bus.'
364
+ * - ISB_EXCHANGE
365
+ - annotation=str required=False default='master.direct.x' description='Exchange for the interservice-bus.'
366
+ * - ISB_QUEUE_TYPE
367
+ - annotation=str required=False default='classic' description='Queue type for the interservice-bus.' examples=['quorum', 'classic']
368
+ * - BUILD_VERSION
369
+ - annotation=str required=False default='dev' description='Fallback build version for workflow tasks.'
370
+ * - GQL_AUTH_TOKEN
371
+ - annotation=Union[str, NoneType] required=False default='dev' description='The auth token for the metadata-store-api.'
372
+ * - OBJECT_STORE_ACCESS_KEY
373
+ - annotation=Union[str, NoneType] required=False default=None description='The access key for the object store.'
374
+ * - OBJECT_STORE_SECRET_KEY
375
+ - annotation=Union[str, NoneType] required=False default=None description='The secret key for the object store.'
376
+ * - OBJECT_STORE_USE_SSL
377
+ - annotation=bool required=False default=False description='Whether to use SSL for the object store connection.'
378
+ * - MULTIPART_THRESHOLD
379
+ - annotation=Union[int, NoneType] required=False default=None description='Multipart threshold for the object store.'
380
+ * - S3_CLIENT_CONFIG
381
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 client configuration for the object store.'
382
+ * - S3_UPLOAD_CONFIG
383
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 upload configuration for the object store.'
384
+ * - S3_DOWNLOAD_CONFIG
385
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 download configuration for the object store.'
386
+ * - GLOBUS_TRANSPORT_PARAMS
387
+ - annotation=dict required=False default_factory=dict description='Globus transfer parameters.'
388
+ * - GLOBUS_CLIENT_ID
389
+ - annotation=Union[str, NoneType] required=False default=None description='Globus client ID for inbound/outbound transfers.'
390
+ * - GLOBUS_CLIENT_SECRET
391
+ - annotation=Union[str, NoneType] required=False default=None description='Globus client secret for inbound/outbound transfers.'
392
+ * - OBJECT_STORE_ENDPOINT
393
+ - annotation=Union[str, NoneType] required=False default=None description='Object store Globus Endpoint ID.'
394
+ * - SCRATCH_ENDPOINT
395
+ - annotation=Union[str, NoneType] required=False default=None description='Scratch Globus Endpoint ID.'
396
+ * - SCRATCH_BASE_PATH
397
+ - annotation=str required=False default='scratch/' description='Base path for scratch storage.'
398
+ * - SCRATCH_INVENTORY_DB_COUNT
399
+ - annotation=int required=False default=16 description='Number of databases in the scratch inventory (redis).'
400
+ * - DOCS_BASE_URL
401
+ - annotation=str required=False default='my_test_url' description='Base URL for the documentation site.'
402
+ * - FTS_ATLAS_DATA_DIR
403
+ - annotation=Union[str, NoneType] required=False default=None description='Common cached directory for a downloaded FTS Atlas.'
313
404
 
314
405
  Development
315
406
  -----------
@@ -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 a downloaded FTS Atlas.'
18
94
 
19
95
  Development
20
96
  -----------
@@ -49,11 +49,11 @@ class BadPixelMapCalibration(CryonirspTaskBase):
49
49
  None
50
50
 
51
51
  """
52
- with self.apm_task_step(f"Compute average uncorrected solar gain image"):
52
+ with self.telemetry_span(f"Compute average uncorrected solar gain image"):
53
53
  average_solar_gain_array = self.compute_average_gain_array()
54
54
 
55
- with self.apm_task_step(f"Compute the bad pixel map"):
56
- with self.apm_processing_step("Smooth array with median filter"):
55
+ with self.telemetry_span(f"Compute the bad pixel map"):
56
+ with self.telemetry_span("Smooth array with median filter"):
57
57
  filter_size = self.parameters.bad_pixel_map_median_filter_size
58
58
  filtered_array = spnd.median_filter(
59
59
  average_solar_gain_array,
@@ -62,7 +62,7 @@ class BadPixelMapCalibration(CryonirspTaskBase):
62
62
  cval=np.nanmedian(average_solar_gain_array),
63
63
  )
64
64
 
65
- with self.apm_processing_step("Identify bad pixels"):
65
+ with self.telemetry_span("Identify bad pixels"):
66
66
  thresh = self.parameters.bad_pixel_map_threshold_factor
67
67
 
68
68
  diff = filtered_array - average_solar_gain_array
@@ -72,7 +72,7 @@ class BadPixelMapCalibration(CryonirspTaskBase):
72
72
  zeros = np.where(average_solar_gain_array == 0.0)
73
73
  bad_pixel_map[zeros] = 1
74
74
 
75
- with self.apm_writing_step("Writing bad pixel map"):
75
+ with self.telemetry_span("Writing bad pixel map"):
76
76
  self.write(
77
77
  data=bad_pixel_map,
78
78
  tags=[CryonirspTag.intermediate_frame(), CryonirspTag.task_bad_pixel_map()],
@@ -62,11 +62,11 @@ class BeamBoundariesCalibrationBase(CryonirspTaskBase):
62
62
 
63
63
  """
64
64
  # Step 1:
65
- with self.apm_processing_step(f"Compute average solar gain image"):
65
+ with self.telemetry_span(f"Compute average solar gain image"):
66
66
  average_solar_gain_array = self.compute_average_gain_array()
67
67
 
68
68
  # Step 2:
69
- with self.apm_task_step(f"Retrieve bad pixel map"):
69
+ with self.telemetry_span(f"Retrieve bad pixel map"):
70
70
  bad_pixel_map = next(
71
71
  self.read(
72
72
  tags=[CryonirspTag.intermediate_frame(), CryonirspTag.task_bad_pixel_map()],
@@ -78,21 +78,19 @@ class BeamBoundariesCalibrationBase(CryonirspTaskBase):
78
78
  )
79
79
 
80
80
  # Step 3
81
- with self.apm_processing_step(f"Smooth the array to get good segmentation"):
81
+ with self.telemetry_span(f"Smooth the array to get good segmentation"):
82
82
  smoothed_solar_gain_array = self.smooth_gain_array(corrected_solar_gain_array)
83
83
 
84
84
  # Step 4
85
- with self.apm_processing_step(f"Split the beam horizontally"):
85
+ with self.telemetry_span(f"Split the beam horizontally"):
86
86
  split_beams = self.split_beams(smoothed_solar_gain_array)
87
87
 
88
88
  # Step 5
89
- with self.apm_processing_step(
90
- f"Segment the beams into illuminated and non-illuminated pixels"
91
- ):
89
+ with self.telemetry_span(f"Segment the beams into illuminated and non-illuminated pixels"):
92
90
  segmented_beams = self.segment_arrays(split_beams)
93
91
 
94
92
  # Step 6:
95
- with self.apm_processing_step(
93
+ with self.telemetry_span(
96
94
  f"Compute the inscribed rectangular extents of the illuminated portions of the sensor"
97
95
  ):
98
96
  illuminated_boundaries = self.compute_boundaries_of_beam_illumination_regions(
@@ -100,14 +98,14 @@ class BeamBoundariesCalibrationBase(CryonirspTaskBase):
100
98
  )
101
99
 
102
100
  # Steps 7 - 9:
103
- with self.apm_processing_step(f"Compute the boundaries of the illuminated beams"):
101
+ with self.telemetry_span(f"Compute the boundaries of the illuminated beams"):
104
102
  split_beams_float = [split_beam.astype(float) for split_beam in split_beams]
105
103
  boundaries = self.compute_final_beam_boundaries(
106
104
  split_beams_float, illuminated_boundaries
107
105
  )
108
106
 
109
107
  # Step 10:
110
- with self.apm_writing_step("Writing beam boundaries"):
108
+ with self.telemetry_span("Writing beam boundaries"):
111
109
  for beam, bounds in enumerate(boundaries, start=1):
112
110
  self.write(
113
111
  data=bounds.beam_boundaries_array,
@@ -58,7 +58,7 @@ class DarkCalibration(CryonirspTaskBase):
58
58
  )
59
59
 
60
60
  logger.info(f"{target_exposure_conditions = }")
61
- with self.apm_task_step(
61
+ with self.telemetry_span(
62
62
  f"Calculating dark frames for {self.constants.num_beams} beams and {len(target_exposure_conditions)} exp times"
63
63
  ):
64
64
  total_dark_frames_used = 0
@@ -90,12 +90,12 @@ class DarkCalibration(CryonirspTaskBase):
90
90
  beam_boundary=beam_boundary,
91
91
  )
92
92
 
93
- with self.apm_processing_step(
93
+ with self.telemetry_span(
94
94
  f"Calculating dark for {exposure_conditions = } and {beam = }"
95
95
  ):
96
96
  averaged_dark_array = average_numpy_arrays(linearized_dark_arrays)
97
97
 
98
- with self.apm_writing_step(
98
+ with self.telemetry_span(
99
99
  f"Writing dark for {exposure_conditions = } {beam = }"
100
100
  ):
101
101
  self.write(
@@ -109,7 +109,7 @@ class DarkCalibration(CryonirspTaskBase):
109
109
  encoder=fits_array_encoder,
110
110
  )
111
111
 
112
- with self.apm_processing_step("Computing and logging quality metrics"):
112
+ with self.telemetry_span("Computing and logging quality metrics"):
113
113
  no_of_raw_dark_frames: int = self.scratch.count_all(
114
114
  tags=[
115
115
  CryonirspTag.linearized_frame(),
@@ -81,7 +81,7 @@ class GainCalibrationBase(CryonirspTaskBase):
81
81
  target_exposure_conditions = self.exposure_conditions
82
82
 
83
83
  logger.info(f"{target_exposure_conditions = }")
84
- with self.apm_task_step(
84
+ with self.telemetry_span(
85
85
  f"Generate {self.gain_type} for {len(target_exposure_conditions)} exposure times"
86
86
  ):
87
87
  for beam in range(1, self.constants.num_beams + 1):
@@ -96,7 +96,7 @@ class GainCalibrationBase(CryonirspTaskBase):
96
96
 
97
97
  for exposure_conditions in target_exposure_conditions:
98
98
  apm_str = f"{beam = } and {exposure_conditions = }"
99
- with self.apm_processing_step(f"Remove dark signal for {apm_str}"):
99
+ with self.telemetry_span(f"Remove dark signal for {apm_str}"):
100
100
  dark_array = next(
101
101
  self.read(
102
102
  tags=[
@@ -117,7 +117,7 @@ class GainCalibrationBase(CryonirspTaskBase):
117
117
  subtract_array_from_arrays(avg_gain_array, dark_array)
118
118
  )
119
119
 
120
- with self.apm_processing_step(f"Correct bad pixels for {apm_str}"):
120
+ with self.telemetry_span(f"Correct bad pixels for {apm_str}"):
121
121
  bad_pixel_map = next(
122
122
  self.read(
123
123
  tags=[
@@ -133,12 +133,12 @@ class GainCalibrationBase(CryonirspTaskBase):
133
133
  )
134
134
 
135
135
  if self.normalize_gain_switch:
136
- with self.apm_processing_step(f"Normalize final gain for {apm_str}"):
136
+ with self.telemetry_span(f"Normalize final gain for {apm_str}"):
137
137
  normalized_gain_array = self.normalize_gain(bad_pixel_corrected_array)
138
138
  else:
139
139
  normalized_gain_array = bad_pixel_corrected_array
140
140
 
141
- with self.apm_writing_step(
141
+ with self.telemetry_span(
142
142
  f"Writing gain array for {beam = } and {exposure_conditions = }"
143
143
  ):
144
144
  self.write(
@@ -152,7 +152,7 @@ class GainCalibrationBase(CryonirspTaskBase):
152
152
  encoder=fits_array_encoder,
153
153
  )
154
154
 
155
- with self.apm_processing_step("Computing and logging quality metrics"):
155
+ with self.telemetry_span("Computing and logging quality metrics"):
156
156
  no_of_raw_gain_frames: int = self.scratch.count_all(
157
157
  tags=[
158
158
  CryonirspTag.linearized_frame(),