dkist-processing-cryonirsp 1.13.1__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.
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/CHANGELOG.rst +9 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/PKG-INFO +123 -32
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/README.rst +77 -1
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +5 -5
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +8 -10
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/dark.py +4 -4
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/gain.py +6 -6
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +15 -15
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +2 -2
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/quality_metrics.py +14 -14
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/science_base.py +5 -5
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/sp_geometric.py +9 -9
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +14 -12
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +5 -5
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -21
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -20
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp.egg-info/PKG-INFO +123 -32
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp.egg-info/requires.txt +45 -30
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/pyproject.toml +47 -32
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/.gitignore +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/.pre-commit-config.yaml +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/.readthedocs.yml +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/.snyk +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/SCIENCE_CHANGELOG.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/changelog/.gitempty +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/codecs/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/codecs/fits.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/config.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/constants.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/parameters.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/tags.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/models/task_name.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/check_for_gains.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/time.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/conftest.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_parse.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/Makefile +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/bad_pixel_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/beam_angle_calculation.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/beam_boundary_computation.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/changelog.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/ci_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/conf.py +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/index.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/landing_page.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/linearization.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/make.bat +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/requirements.txt +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/requirements_table.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/scientific_changelog.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/sp_science_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/docs/wavelength_calibration.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/licenses/LICENSE.rst +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/science_towncrier.sh +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/setup.cfg +0 -0
- {dkist_processing_cryonirsp-1.13.1 → dkist_processing_cryonirsp-1.14.0}/towncrier_science.toml +0 -0
|
@@ -1,3 +1,12 @@
|
|
|
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
|
+
|
|
1
10
|
v1.13.1 (2025-09-17)
|
|
2
11
|
====================
|
|
3
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-cryonirsp
|
|
3
|
-
Version: 1.
|
|
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.
|
|
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==
|
|
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
|
|
@@ -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.
|
|
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.
|
|
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.
|
|
98
|
+
Requires-Dist: anyio==4.11.0; extra == "frozen"
|
|
98
99
|
Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
|
|
99
100
|
Requires-Dist: apache-airflow-providers-celery==3.10.0; extra == "frozen"
|
|
100
|
-
Requires-Dist: apache-airflow-providers-common-compat==1.7.
|
|
101
|
-
Requires-Dist: apache-airflow-providers-common-io==1.6.
|
|
102
|
-
Requires-Dist: apache-airflow-providers-common-sql==1.28.
|
|
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
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
108
|
Requires-Dist: apache-airflow-providers-postgres==6.3.0; extra == "frozen"
|
|
108
|
-
Requires-Dist: apache-airflow-providers-smtp==2.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
125
|
-
Requires-Dist: botocore==1.40.
|
|
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
128
|
Requires-Dist: celery==5.3.1; extra == "frozen"
|
|
128
129
|
Requires-Dist: certifi==2025.8.3; extra == "frozen"
|
|
129
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.
|
|
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"
|
|
@@ -145,28 +146,26 @@ 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.
|
|
149
|
-
Requires-Dist: dkist-processing-core==
|
|
150
|
-
Requires-Dist: dkist-processing-cryonirsp==1.
|
|
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==
|
|
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
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.
|
|
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.75.
|
|
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"
|
|
@@ -214,9 +213,25 @@ Requires-Dist: opentelemetry-exporter-otlp==1.37.0; extra == "frozen"
|
|
|
214
213
|
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.37.0; extra == "frozen"
|
|
215
214
|
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.37.0; extra == "frozen"
|
|
216
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"
|
|
217
231
|
Requires-Dist: opentelemetry-proto==1.37.0; extra == "frozen"
|
|
218
232
|
Requires-Dist: opentelemetry-sdk==1.37.0; extra == "frozen"
|
|
219
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,18 +246,18 @@ 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.
|
|
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
252
|
Requires-Dist: protobuf==6.32.1; extra == "frozen"
|
|
238
|
-
Requires-Dist: psutil==7.
|
|
253
|
+
Requires-Dist: psutil==7.1.0; extra == "frozen"
|
|
239
254
|
Requires-Dist: psycopg2-binary==2.9.10; extra == "frozen"
|
|
240
255
|
Requires-Dist: pycparser==2.23; extra == "frozen"
|
|
241
256
|
Requires-Dist: pydantic==2.11.9; extra == "frozen"
|
|
242
|
-
Requires-Dist: pydantic-settings==2.
|
|
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.
|
|
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"
|
|
@@ -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.9.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
56
|
-
with self.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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(),
|