dkist-processing-cryonirsp 3.2.0__tar.gz → 4.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. dkist_processing_cryonirsp-4.0.0/.snyk +20 -0
  2. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/CHANGELOG.rst +9 -0
  3. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/PKG-INFO +8 -8
  4. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/SCIENCE_CHANGELOG.rst +9 -0
  5. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +31 -27
  6. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_corrections.py +48 -2
  7. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +26 -5
  8. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp.egg-info/PKG-INFO +8 -8
  9. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp.egg-info/requires.txt +7 -7
  10. dkist_processing_cryonirsp-4.0.0/dkist_processing_cryonirsp.egg-info/scm_version.json +8 -0
  11. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/pyproject.toml +9 -9
  12. dkist_processing_cryonirsp-3.2.0/.snyk +0 -13
  13. dkist_processing_cryonirsp-3.2.0/dkist_processing_cryonirsp.egg-info/scm_version.json +0 -8
  14. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/.gitignore +0 -0
  15. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/.pre-commit-config.yaml +0 -0
  16. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/.readthedocs.yml +0 -0
  17. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/.rovodev/.review-agent.md +0 -0
  18. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/README.rst +0 -0
  19. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/bitbucket-pipelines.yml +0 -0
  20. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/changelog/.gitempty +0 -0
  21. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/__init__.py +0 -0
  22. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/codecs/__init__.py +0 -0
  23. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/codecs/fits.py +0 -0
  24. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/config.py +0 -0
  25. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/models/__init__.py +0 -0
  26. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/models/beam_boundaries.py +0 -0
  27. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/models/constants.py +0 -0
  28. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/models/dataset_extras.py +0 -0
  29. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
  30. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/models/fits_access.py +0 -0
  31. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/models/parameters.py +0 -0
  32. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/models/tags.py +0 -0
  33. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/models/task_name.py +0 -0
  34. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
  35. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/check_for_gains.py +0 -0
  36. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
  37. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
  38. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
  39. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
  40. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
  41. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
  42. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
  43. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
  44. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
  45. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/parsers/time.py +0 -0
  46. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
  47. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
  48. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
  49. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
  50. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
  51. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
  52. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
  53. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
  54. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
  55. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
  56. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
  57. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
  58. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
  59. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
  60. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
  61. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/polcal_as_science.py +0 -0
  62. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
  63. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
  64. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
  65. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
  66. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
  67. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
  68. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +0 -0
  69. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/write_dataset_extras.py +0 -0
  70. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
  71. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
  72. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/conftest.py +0 -0
  73. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
  74. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
  75. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -0
  76. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
  77. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
  78. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
  79. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
  80. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
  81. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
  82. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
  83. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
  84. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
  85. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
  86. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_fits_access.py +0 -0
  87. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
  88. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
  89. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
  90. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
  91. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
  92. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_parse.py +0 -0
  93. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_polcal_as_science.py +0 -0
  94. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
  95. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
  96. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
  97. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
  98. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
  99. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py +0 -0
  100. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
  101. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
  102. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_write_dataset_extras.py +0 -0
  103. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
  104. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
  105. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
  106. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
  107. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
  108. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -0
  109. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
  110. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp.egg-info/scm_file_list.json +0 -0
  111. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
  112. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/Makefile +0 -0
  113. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/bad_pixel_calibration.rst +0 -0
  114. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/beam_angle_calculation.rst +0 -0
  115. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/beam_boundary_computation.rst +0 -0
  116. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/changelog.rst +0 -0
  117. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/ci_science_calibration.rst +0 -0
  118. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/conf.py +0 -0
  119. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/dataset_extras.rst +0 -0
  120. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/index.rst +0 -0
  121. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
  122. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
  123. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
  124. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
  125. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/landing_page.rst +0 -0
  126. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/linearization.rst +0 -0
  127. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/make.bat +0 -0
  128. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/requirements.txt +0 -0
  129. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/requirements_table.rst +0 -0
  130. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/scientific_changelog.rst +0 -0
  131. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/sp_science_calibration.rst +0 -0
  132. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/docs/wavelength_calibration.rst +0 -0
  133. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/licenses/LICENSE.rst +0 -0
  134. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/science_towncrier.sh +0 -0
  135. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/setup.cfg +0 -0
  136. {dkist_processing_cryonirsp-3.2.0 → dkist_processing_cryonirsp-4.0.0}/towncrier_science.toml +0 -0
@@ -0,0 +1,20 @@
1
+ # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities
2
+ # https://docs.snyk.io/manage-risk/policies/the-.snyk-file#syntax-of-the-.snyk-file
3
+ version: v1.25.0
4
+ ignore:
5
+ SNYK-PYTHON-PILLOW-21277783:
6
+ - '*':
7
+ reason: 'Pillow upgrade blocked by version incompatibility with moviepy'
8
+ expires: '2027-10-20T00:00:00.000Z'
9
+ SNYK-PYTHON-PILLOW-21277801:
10
+ - '*':
11
+ reason: 'Pillow upgrade blocked by version incompatibility with moviepy'
12
+ expires: '2027-10-20T00:00:00.000Z'
13
+ SNYK-PYTHON-PILLOW-21277802:
14
+ - '*':
15
+ reason: 'Pillow upgrade blocked by version incompatibility with moviepy'
16
+ expires: '2027-10-20T00:00:00.000Z'
17
+ SNYK-PYTHON-PILLOW-21279300:
18
+ - '*':
19
+ reason: 'Pillow upgrade blocked by version incompatibility with moviepy'
20
+ expires: '2027-10-20T00:00:00.000Z'
@@ -1,3 +1,12 @@
1
+ v4.0.0 (2026-10-20)
2
+ ===================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Refactor ``corrections_correct_geometry`` and ``corrections_distort_geometry`` to delegate to ``dkist-processing-math``'s ``apply_affine_transform``, which applies a combined rotation and shift in a single interpolation pass instead of two sequential ones. (`#314 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/314>`__)
8
+
9
+
1
10
  v3.2.0 (2026-10-19)
2
11
  ===================
3
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 3.2.0
3
+ Version: 4.0.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
@@ -18,7 +18,7 @@ Requires-Dist: astropy==7.0.2
18
18
  Requires-Dist: dkist-fits-specifications==4.30.0
19
19
  Requires-Dist: dkist-header-validator==6.0.0
20
20
  Requires-Dist: dkist-processing-common==14.7.0
21
- Requires-Dist: dkist-processing-math==2.2.3
21
+ Requires-Dist: dkist-processing-math==3.0.1
22
22
  Requires-Dist: dkist-processing-pac==3.1.2
23
23
  Requires-Dist: dkist-spectral-lines==3.0.1
24
24
  Requires-Dist: solar-wavelength-calibration==2.0.4
@@ -119,7 +119,7 @@ Requires-Dist: botocore==1.43.115; extra == "frozen"
119
119
  Requires-Dist: cachetools==7.2.4; extra == "frozen"
120
120
  Requires-Dist: cadwyn==7.0.0; extra == "frozen"
121
121
  Requires-Dist: celery==5.6.3; extra == "frozen"
122
- Requires-Dist: certifi==2026.10.18; extra == "frozen"
122
+ Requires-Dist: certifi==2026.10.19; extra == "frozen"
123
123
  Requires-Dist: cffi==2.1.1; extra == "frozen"
124
124
  Requires-Dist: charset-normalizer==3.5.2; extra == "frozen"
125
125
  Requires-Dist: click==8.5.0; extra == "frozen"
@@ -141,8 +141,8 @@ Requires-Dist: dill==0.4.1; extra == "frozen"
141
141
  Requires-Dist: dkist-header-validator==6.0.0; extra == "frozen"
142
142
  Requires-Dist: dkist-processing-common==14.7.0; extra == "frozen"
143
143
  Requires-Dist: dkist-processing-core==7.5.0; extra == "frozen"
144
- Requires-Dist: dkist-processing-cryonirsp==3.2.0; extra == "frozen"
145
- Requires-Dist: dkist-processing-math==2.2.3; extra == "frozen"
144
+ Requires-Dist: dkist-processing-cryonirsp==4.0.0; extra == "frozen"
145
+ Requires-Dist: dkist-processing-math==3.0.1; extra == "frozen"
146
146
  Requires-Dist: dkist-processing-pac==3.1.2; extra == "frozen"
147
147
  Requires-Dist: dkist-service-configuration==4.3.0; extra == "frozen"
148
148
  Requires-Dist: dkist-spectral-lines==3.0.1; extra == "frozen"
@@ -265,7 +265,7 @@ Requires-Dist: pendulum==3.3.0; extra == "frozen"
265
265
  Requires-Dist: pexpect==4.9.0; extra == "frozen"
266
266
  Requires-Dist: pika==1.4.4; extra == "frozen"
267
267
  Requires-Dist: pillow==10.4.0; extra == "frozen"
268
- Requires-Dist: pip==26.2.1; extra == "frozen"
268
+ Requires-Dist: pip==26.2.2; extra == "frozen"
269
269
  Requires-Dist: platformdirs==4.13.5; extra == "frozen"
270
270
  Requires-Dist: pluggy==1.7.0; extra == "frozen"
271
271
  Requires-Dist: pooch==1.9.0; extra == "frozen"
@@ -283,7 +283,7 @@ Requires-Dist: pure_eval==0.2.4; extra == "frozen"
283
283
  Requires-Dist: pycparser==3.11; extra == "frozen"
284
284
  Requires-Dist: pydantic==2.14.1; extra == "frozen"
285
285
  Requires-Dist: pydantic-extra-types==2.11.1; extra == "frozen"
286
- Requires-Dist: pydantic-settings==2.16.0; extra == "frozen"
286
+ Requires-Dist: pydantic-settings==2.16.1; extra == "frozen"
287
287
  Requires-Dist: pydantic_core==2.50.1; extra == "frozen"
288
288
  Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
289
289
  Requires-Dist: pygtrie==2.6.2; extra == "frozen"
@@ -351,7 +351,7 @@ Requires-Dist: uvloop==0.23.0; extra == "frozen"
351
351
  Requires-Dist: vine==5.1.0; extra == "frozen"
352
352
  Requires-Dist: voluptuous==0.16.0; extra == "frozen"
353
353
  Requires-Dist: watchfiles==1.3.0; extra == "frozen"
354
- Requires-Dist: wcwidth==0.9.2; extra == "frozen"
354
+ Requires-Dist: wcwidth==0.9.3; extra == "frozen"
355
355
  Requires-Dist: webcolors==25.10.0; extra == "frozen"
356
356
  Requires-Dist: webencodings==0.6.1; extra == "frozen"
357
357
  Requires-Dist: websocket-client==1.9.2; extra == "frozen"
@@ -1,3 +1,12 @@
1
+ v4.0.0 (2026-10-20)
2
+ ===================
3
+
4
+
5
+
6
+
7
+ - Geometric correction (``corrections_correct_geometry``/``corrections_distort_geometry``) now applies the shift and rotation as a single combined interpolation pass instead of two sequential ones, removing the extra interpolation blur that came from resampling the data twice. (`#314 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/314>`__)
8
+
9
+
1
10
  v3.0.0 (2026-10-08)
2
11
  ===================
3
12
 
@@ -5,8 +5,7 @@ from collections.abc import Iterable
5
5
 
6
6
  import numpy as np
7
7
  import scipy.ndimage as spnd
8
- from dkist_processing_math.transform import affine_transform_arrays
9
- from dkist_processing_math.transform import rotate_arrays_about_point
8
+ from dkist_processing_math.transform import apply_affine_transform
10
9
 
11
10
 
12
11
  class CorrectionsMixin:
@@ -21,7 +20,7 @@ class CorrectionsMixin:
21
20
  """
22
21
  Shift and then rotate data.
23
22
 
24
- It applies the inverse of the given shift and angle.
23
+ Applies the inverse of the given shift and angle in a single interpolation pass.
25
24
 
26
25
  Parameters
27
26
  ----------
@@ -33,23 +32,26 @@ class CorrectionsMixin:
33
32
  between beams or between modulator states in a single beam.
34
33
 
35
34
  angle
36
- The angle between the slit and pixel axes.
35
+ The angle between the slit and pixel axes, in radians.
37
36
 
38
37
  Returns
39
38
  -------
40
39
  Generator
41
40
  2D array(s) containing the data of the rotated and shifted beam
42
41
  """
43
- arrays = [arrays] if isinstance(arrays, np.ndarray) else arrays
44
- for array in arrays:
45
- # Need to recast type to fix endianness issue caused by `fits`
46
- array = array.astype(np.float64)
47
- array[np.where(array == np.inf)] = np.max(array[np.isfinite(array)])
48
- array[np.where(array == -np.inf)] = np.min(array[np.isfinite(array)])
49
- array[np.isnan(array)] = np.nanmedian(array)
50
- translated = affine_transform_arrays(array, translation=-shift, mode="edge", order=1)
51
- # rotate_arrays_about_point rotates the wrong way, so no negative sign here
52
- yield next(rotate_arrays_about_point(translated, angle=angle, mode="edge", order=1))
42
+ # `-shift` is passed because the pipeline defines `shift` as the measured offset
43
+ # *to correct for* -- the forward correction therefore moves content by -shift.
44
+ # `angle` is passed as-is (not negated): `apply_affine_transform` treats a positive
45
+ # angle as a counter-clockwise rotation, which is the same direction this pipeline's
46
+ # positive `angle` values are meant to produce.
47
+ yield from apply_affine_transform(
48
+ arrays,
49
+ shift=-np.asarray(shift),
50
+ angle=angle,
51
+ order="shift_then_rotate",
52
+ interp_order=1,
53
+ mode="nearest",
54
+ )
53
55
 
54
56
  @staticmethod
55
57
  def corrections_distort_geometry(
@@ -60,35 +62,37 @@ class CorrectionsMixin:
60
62
  """
61
63
  Rotate and then shift data.
62
64
 
63
- It applies the inverse of the given shift and angle.
65
+ Applies the inverse of the given shift and angle in a single interpolation pass.
66
+ Because rotation and translation do not commute, the order matters -- this applies
67
+ rotation first then shift, the inverse of `corrections_correct_geometry`.
64
68
 
65
69
  Parameters
66
70
  ----------
67
71
  arrays
68
- 2D array(s) containing the data for the un-shifted beam
72
+ 2D array(s) containing the data for the un-distorted beam
69
73
 
70
74
  shift
71
75
  The measured shift offset in the spectral dimension
72
76
  between beams or between modulator states in a single beam.
73
77
 
74
78
  angle
75
- The angle between the slit and pixel axes.
79
+ The angle between the slit and pixel axes, in radians.
76
80
 
77
81
  Returns
78
82
  -------
79
83
  Generator
80
84
  2D array(s) containing the data of the rotated and shifted beam
81
85
  """
82
- arrays = [arrays] if isinstance(arrays, np.ndarray) else arrays
83
- for array in arrays:
84
- # Need to recast type to fix endianness issue caused by `fits`
85
- array = array.astype(np.float64)
86
- array[np.where(array == np.inf)] = np.max(array[np.isfinite(array)])
87
- array[np.where(array == -np.inf)] = np.min(array[np.isfinite(array)])
88
- array[np.isnan(array)] = np.nanmedian(array)
89
- # rotate_arrays_about_point rotates the wrong way, so no negative sign here
90
- rotated = rotate_arrays_about_point(array, angle=angle, mode="edge")
91
- yield next(affine_transform_arrays(rotated, translation=-shift, mode="edge"))
86
+ # Same shift- and angle-sign convention as corrections_correct_geometry (see that
87
+ # method's comment for the full explanation).
88
+ yield from apply_affine_transform(
89
+ arrays,
90
+ shift=-np.asarray(shift),
91
+ angle=angle,
92
+ order="rotate_then_shift",
93
+ interp_order=1,
94
+ mode="nearest",
95
+ )
92
96
 
93
97
  @staticmethod
94
98
  def corrections_remove_spec_shifts(
@@ -1,5 +1,3 @@
1
- from typing import Literal
2
-
3
1
  import numpy as np
4
2
  import pytest
5
3
  from dkist_processing_common._util.scratch import WorkflowFileSystem
@@ -10,6 +8,54 @@ from dkist_processing_cryonirsp.tasks.mixin.corrections import CorrectionsMixin
10
8
  from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
11
9
  from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
12
10
 
11
+
12
+ def test_corrections_correct_geometry_hand_derived_rotation_and_shift():
13
+ """
14
+ :Given: a distinctive single-pixel array, a 90-degree angle, and an integer shift (chosen so
15
+ there's no interpolation ambiguity to derive the expected result by hand)
16
+ :When: applying `corrections_correct_geometry` (translate then rotate)
17
+ :Then: the bright pixel lands exactly where hand-derived geometry says it should
18
+
19
+ This locks in the sign convention used to build the single combined homogeneous-coordinates
20
+ matrix.
21
+ """
22
+ array_shape = (10, 10)
23
+ array = np.zeros(array_shape)
24
+ array[2, 5] = 1.0
25
+ shift = np.array([2.0, 1.0])
26
+ angle = np.pi / 2
27
+
28
+ result = next(CorrectionsMixin.corrections_correct_geometry(array, shift=shift, angle=angle))
29
+
30
+ expected_location = (5, 0)
31
+ assert np.unravel_index(np.argmax(result), result.shape) == expected_location
32
+ assert result.max() == pytest.approx(1.0)
33
+
34
+
35
+ def test_corrections_distort_geometry_hand_derived_rotation_and_shift():
36
+ """
37
+ :Given: a distinctive single-pixel array, a 90-degree angle, and an integer shift
38
+ :When: applying `corrections_distort_geometry` (rotate then translate -- the opposite
39
+ composition order from `corrections_correct_geometry`)
40
+ :Then: the bright pixel lands exactly where hand-derived geometry says it should
41
+
42
+ Confirms the combined matrix for this function -- built from a genuine composition of a pure
43
+ rotation-about-center matrix and a pure translation matrix, since reversing the order of two
44
+ non-commuting transforms changes the result -- was composed in the right order.
45
+ """
46
+ array_shape = (10, 10)
47
+ array = np.zeros(array_shape)
48
+ array[2, 5] = 1.0
49
+ shift = np.array([2.0, 1.0])
50
+ angle = np.pi / 2
51
+
52
+ result = next(CorrectionsMixin.corrections_distort_geometry(array, shift=shift, angle=angle))
53
+
54
+ expected_location = (2, 1)
55
+ assert np.unravel_index(np.argmax(result), result.shape) == expected_location
56
+ assert result.max() == pytest.approx(1.0)
57
+
58
+
13
59
  base_bad_pixel_map = np.zeros(shape=(10, 10))
14
60
 
15
61
  normal_bad_pixel_map = base_bad_pixel_map.copy()
@@ -6,7 +6,7 @@ from dkist_processing_common.codecs.basemodel import basemodel_decoder
6
6
  from dkist_processing_common.codecs.fits import fits_array_encoder
7
7
  from dkist_processing_common.codecs.fits import fits_hdulist_encoder
8
8
  from dkist_processing_common.models.quality import TaskCount
9
- from dkist_processing_math import transform
9
+ from dkist_processing_math.transform import apply_affine_transform
10
10
 
11
11
  from dkist_processing_cryonirsp.codecs.fits import cryo_fits_array_decoder
12
12
  from dkist_processing_cryonirsp.models.exposure_conditions import AllowableOpticalDensityFilterNames
@@ -131,17 +131,38 @@ def geometric_calibration_task_that_completes(
131
131
  # Now add the beam number to each beam in the array
132
132
  true_solar_1 += beam1
133
133
  true_solar_2 += beam2
134
+
134
135
  translated_solar_1 = next(
135
- transform.translate_arrays(arrays=true_solar_1, translation=task.offsets[0])
136
+ apply_affine_transform(
137
+ true_solar_1,
138
+ shift=np.asarray(task.offsets[0]),
139
+ angle=0.0,
140
+ order="shift_then_rotate",
141
+ )
136
142
  )
137
143
  translated_solar_2 = next(
138
- transform.translate_arrays(arrays=true_solar_2, translation=task.offsets[1])
144
+ apply_affine_transform(
145
+ true_solar_2,
146
+ shift=np.asarray(task.offsets[1]),
147
+ angle=0.0,
148
+ order="shift_then_rotate",
149
+ )
139
150
  )
140
151
  distorted_solar_1 = next(
141
- transform.rotate_arrays_about_point(arrays=translated_solar_1, angle=task.angles[0])
152
+ apply_affine_transform(
153
+ translated_solar_1,
154
+ shift=np.zeros(2),
155
+ angle=task.angles[0],
156
+ order="shift_then_rotate",
157
+ )
142
158
  )
143
159
  distorted_solar_2 = next(
144
- transform.rotate_arrays_about_point(arrays=translated_solar_2, angle=task.angles[1])
160
+ apply_affine_transform(
161
+ translated_solar_2,
162
+ shift=np.zeros(2),
163
+ angle=task.angles[1],
164
+ order="shift_then_rotate",
165
+ )
145
166
  )
146
167
 
147
168
  raw_solar_1 = distorted_solar_1 + dark_cal
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 3.2.0
3
+ Version: 4.0.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
@@ -18,7 +18,7 @@ Requires-Dist: astropy==7.0.2
18
18
  Requires-Dist: dkist-fits-specifications==4.30.0
19
19
  Requires-Dist: dkist-header-validator==6.0.0
20
20
  Requires-Dist: dkist-processing-common==14.7.0
21
- Requires-Dist: dkist-processing-math==2.2.3
21
+ Requires-Dist: dkist-processing-math==3.0.1
22
22
  Requires-Dist: dkist-processing-pac==3.1.2
23
23
  Requires-Dist: dkist-spectral-lines==3.0.1
24
24
  Requires-Dist: solar-wavelength-calibration==2.0.4
@@ -119,7 +119,7 @@ Requires-Dist: botocore==1.43.115; extra == "frozen"
119
119
  Requires-Dist: cachetools==7.2.4; extra == "frozen"
120
120
  Requires-Dist: cadwyn==7.0.0; extra == "frozen"
121
121
  Requires-Dist: celery==5.6.3; extra == "frozen"
122
- Requires-Dist: certifi==2026.10.18; extra == "frozen"
122
+ Requires-Dist: certifi==2026.10.19; extra == "frozen"
123
123
  Requires-Dist: cffi==2.1.1; extra == "frozen"
124
124
  Requires-Dist: charset-normalizer==3.5.2; extra == "frozen"
125
125
  Requires-Dist: click==8.5.0; extra == "frozen"
@@ -141,8 +141,8 @@ Requires-Dist: dill==0.4.1; extra == "frozen"
141
141
  Requires-Dist: dkist-header-validator==6.0.0; extra == "frozen"
142
142
  Requires-Dist: dkist-processing-common==14.7.0; extra == "frozen"
143
143
  Requires-Dist: dkist-processing-core==7.5.0; extra == "frozen"
144
- Requires-Dist: dkist-processing-cryonirsp==3.2.0; extra == "frozen"
145
- Requires-Dist: dkist-processing-math==2.2.3; extra == "frozen"
144
+ Requires-Dist: dkist-processing-cryonirsp==4.0.0; extra == "frozen"
145
+ Requires-Dist: dkist-processing-math==3.0.1; extra == "frozen"
146
146
  Requires-Dist: dkist-processing-pac==3.1.2; extra == "frozen"
147
147
  Requires-Dist: dkist-service-configuration==4.3.0; extra == "frozen"
148
148
  Requires-Dist: dkist-spectral-lines==3.0.1; extra == "frozen"
@@ -265,7 +265,7 @@ Requires-Dist: pendulum==3.3.0; extra == "frozen"
265
265
  Requires-Dist: pexpect==4.9.0; extra == "frozen"
266
266
  Requires-Dist: pika==1.4.4; extra == "frozen"
267
267
  Requires-Dist: pillow==10.4.0; extra == "frozen"
268
- Requires-Dist: pip==26.2.1; extra == "frozen"
268
+ Requires-Dist: pip==26.2.2; extra == "frozen"
269
269
  Requires-Dist: platformdirs==4.13.5; extra == "frozen"
270
270
  Requires-Dist: pluggy==1.7.0; extra == "frozen"
271
271
  Requires-Dist: pooch==1.9.0; extra == "frozen"
@@ -283,7 +283,7 @@ Requires-Dist: pure_eval==0.2.4; extra == "frozen"
283
283
  Requires-Dist: pycparser==3.11; extra == "frozen"
284
284
  Requires-Dist: pydantic==2.14.1; extra == "frozen"
285
285
  Requires-Dist: pydantic-extra-types==2.11.1; extra == "frozen"
286
- Requires-Dist: pydantic-settings==2.16.0; extra == "frozen"
286
+ Requires-Dist: pydantic-settings==2.16.1; extra == "frozen"
287
287
  Requires-Dist: pydantic_core==2.50.1; extra == "frozen"
288
288
  Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
289
289
  Requires-Dist: pygtrie==2.6.2; extra == "frozen"
@@ -351,7 +351,7 @@ Requires-Dist: uvloop==0.23.0; extra == "frozen"
351
351
  Requires-Dist: vine==5.1.0; extra == "frozen"
352
352
  Requires-Dist: voluptuous==0.16.0; extra == "frozen"
353
353
  Requires-Dist: watchfiles==1.3.0; extra == "frozen"
354
- Requires-Dist: wcwidth==0.9.2; extra == "frozen"
354
+ Requires-Dist: wcwidth==0.9.3; extra == "frozen"
355
355
  Requires-Dist: webcolors==25.10.0; extra == "frozen"
356
356
  Requires-Dist: webencodings==0.6.1; extra == "frozen"
357
357
  Requires-Dist: websocket-client==1.9.2; extra == "frozen"
@@ -3,7 +3,7 @@ astropy==7.0.2
3
3
  dkist-fits-specifications==4.30.0
4
4
  dkist-header-validator==6.0.0
5
5
  dkist-processing-common==14.7.0
6
- dkist-processing-math==2.2.3
6
+ dkist-processing-math==3.0.1
7
7
  dkist-processing-pac==3.1.2
8
8
  dkist-spectral-lines==3.0.1
9
9
  solar-wavelength-calibration==2.0.4
@@ -88,7 +88,7 @@ botocore==1.43.115
88
88
  cachetools==7.2.4
89
89
  cadwyn==7.0.0
90
90
  celery==5.6.3
91
- certifi==2026.10.18
91
+ certifi==2026.10.19
92
92
  cffi==2.1.1
93
93
  charset-normalizer==3.5.2
94
94
  click==8.5.0
@@ -110,8 +110,8 @@ dill==0.4.1
110
110
  dkist-header-validator==6.0.0
111
111
  dkist-processing-common==14.7.0
112
112
  dkist-processing-core==7.5.0
113
- dkist-processing-cryonirsp==3.2.0
114
- dkist-processing-math==2.2.3
113
+ dkist-processing-cryonirsp==4.0.0
114
+ dkist-processing-math==3.0.1
115
115
  dkist-processing-pac==3.1.2
116
116
  dkist-service-configuration==4.3.0
117
117
  dkist-spectral-lines==3.0.1
@@ -234,7 +234,7 @@ pendulum==3.3.0
234
234
  pexpect==4.9.0
235
235
  pika==1.4.4
236
236
  pillow==10.4.0
237
- pip==26.2.1
237
+ pip==26.2.2
238
238
  platformdirs==4.13.5
239
239
  pluggy==1.7.0
240
240
  pooch==1.9.0
@@ -252,7 +252,7 @@ pure_eval==0.2.4
252
252
  pycparser==3.11
253
253
  pydantic==2.14.1
254
254
  pydantic-extra-types==2.11.1
255
- pydantic-settings==2.16.0
255
+ pydantic-settings==2.16.1
256
256
  pydantic_core==2.50.1
257
257
  pyerfa==2.0.1.5
258
258
  pygtrie==2.6.2
@@ -320,7 +320,7 @@ uvloop==0.23.0
320
320
  vine==5.1.0
321
321
  voluptuous==0.16.0
322
322
  watchfiles==1.3.0
323
- wcwidth==0.9.2
323
+ wcwidth==0.9.3
324
324
  webcolors==25.10.0
325
325
  webencodings==0.6.1
326
326
  websocket-client==1.9.2
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "4.0.0",
3
+ "distance": 0,
4
+ "node": "gc8a24fcd8250c647006b5c76b4d39942a2d00b37",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-10-20"
8
+ }
@@ -9,8 +9,8 @@ exclude = ["build*"]
9
9
 
10
10
  [tool.dkist-dev-tools]
11
11
  # Most recently frozen version by dkist-dev-tools
12
- version = "3.2.0"
13
- date = 2026-10-19T15:22:49.680238
12
+ version = "4.0.0"
13
+ date = 2026-10-20T10:48:06.741890
14
14
 
15
15
  [project]
16
16
  dynamic = ["version"]
@@ -31,7 +31,7 @@ dependencies = [
31
31
  "dkist-fits-specifications == 4.30.0",
32
32
  "dkist-header-validator == 6.0.0",
33
33
  "dkist-processing-common == 14.7.0",
34
- "dkist-processing-math == 2.2.3",
34
+ "dkist-processing-math == 3.0.1",
35
35
  "dkist-processing-pac == 3.1.2",
36
36
  "dkist-spectral-lines == 3.0.1",
37
37
  "solar-wavelength-calibration == 2.0.4",
@@ -147,7 +147,7 @@ frozen = [
147
147
  "cachetools == 7.2.4",
148
148
  "cadwyn == 7.0.0",
149
149
  "celery == 5.6.3",
150
- "certifi == 2026.10.18",
150
+ "certifi == 2026.10.19",
151
151
  "cffi == 2.1.1",
152
152
  "charset-normalizer == 3.5.2",
153
153
  "click == 8.5.0",
@@ -169,8 +169,8 @@ frozen = [
169
169
  "dkist-header-validator == 6.0.0",
170
170
  "dkist-processing-common == 14.7.0",
171
171
  "dkist-processing-core == 7.5.0",
172
- "dkist-processing-cryonirsp == 3.2.0",
173
- "dkist-processing-math == 2.2.3",
172
+ "dkist-processing-cryonirsp == 4.0.0",
173
+ "dkist-processing-math == 3.0.1",
174
174
  "dkist-processing-pac == 3.1.2",
175
175
  "dkist-service-configuration == 4.3.0",
176
176
  "dkist-spectral-lines == 3.0.1",
@@ -293,7 +293,7 @@ frozen = [
293
293
  "pexpect == 4.9.0",
294
294
  "pika == 1.4.4",
295
295
  "pillow == 10.4.0",
296
- "pip == 26.2.1",
296
+ "pip == 26.2.2",
297
297
  "platformdirs == 4.13.5",
298
298
  "pluggy == 1.7.0",
299
299
  "pooch == 1.9.0",
@@ -311,7 +311,7 @@ frozen = [
311
311
  "pycparser == 3.11",
312
312
  "pydantic == 2.14.1",
313
313
  "pydantic-extra-types == 2.11.1",
314
- "pydantic-settings == 2.16.0",
314
+ "pydantic-settings == 2.16.1",
315
315
  "pydantic_core == 2.50.1",
316
316
  "pyerfa == 2.0.1.5",
317
317
  "pygtrie == 2.6.2",
@@ -379,7 +379,7 @@ frozen = [
379
379
  "vine == 5.1.0",
380
380
  "voluptuous == 0.16.0",
381
381
  "watchfiles == 1.3.0",
382
- "wcwidth == 0.9.2",
382
+ "wcwidth == 0.9.3",
383
383
  "webcolors == 25.10.0",
384
384
  "webencodings == 0.6.1",
385
385
  "websocket-client == 1.9.2",
@@ -1,13 +0,0 @@
1
- # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities
2
- # https://docs.snyk.io/manage-risk/policies/the-.snyk-file#syntax-of-the-.snyk-file
3
- version: v1.25.0
4
- ignore:
5
- SNYK-PYTHON-APACHEAIRFLOWCORE-17879182:
6
- - "*" :
7
- reason: 'Patched in Airflow 3.3.0, but we are not ready to upgrade till 3.3.1 or later'
8
- expires: '2027-07-07T00:00:00.000Z'
9
- SNYK-PYTHON-APACHEAIRFLOWCORE-17933331:
10
- - '*':
11
- reason: 'Ignored by bulk CI/CD Snyk policy update'
12
- expires: '2099-12-31T23:59:59.999Z'
13
- created: '2026-07-10T15:53:27.931Z'
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "3.2.0",
3
- "distance": 0,
4
- "node": "g959f32f27c7e1dd2c06a9ec0f9e714e6bb46e434",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-10-19"
8
- }