dkist-processing-cryonirsp 2.0.0rc3__tar.gz → 2.0.2__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 (144) hide show
  1. dkist_processing_cryonirsp-2.0.2/.snyk +13 -0
  2. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/CHANGELOG.rst +50 -0
  3. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/PKG-INFO +84 -82
  4. dkist_processing_cryonirsp-2.0.2/SCIENCE_CHANGELOG.rst +39 -0
  5. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/models/constants.py +19 -28
  6. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/models/exposure_conditions.py +19 -11
  7. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/models/tags.py +1 -1
  8. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +2 -1
  9. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +33 -22
  10. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +16 -15
  11. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/sp_geometric.py +9 -6
  12. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/conftest.py +59 -12
  13. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/header_models.py +6 -1
  14. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_ci_science.py +2 -2
  15. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +11 -3
  16. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_dark.py +24 -12
  17. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_gain.py +6 -2
  18. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +7 -5
  19. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +2 -2
  20. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_parameters.py +17 -3
  21. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_parse.py +124 -58
  22. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_polcal_as_science.py +3 -3
  23. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +6 -5
  24. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_sp_science.py +2 -2
  25. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_sp_solar.py +2 -2
  26. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_write_dataset_extras.py +12 -5
  27. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp.egg-info/PKG-INFO +84 -82
  28. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -5
  29. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp.egg-info/requires.txt +83 -81
  30. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp.egg-info/scm_file_list.json +96 -101
  31. dkist_processing_cryonirsp-2.0.2/dkist_processing_cryonirsp.egg-info/scm_version.json +8 -0
  32. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/pyproject.toml +85 -83
  33. dkist_processing_cryonirsp-2.0.0rc3/.snyk +0 -2
  34. dkist_processing_cryonirsp-2.0.0rc3/SCIENCE_CHANGELOG.rst +0 -25
  35. dkist_processing_cryonirsp-2.0.0rc3/changelog/289.bugfix.rst +0 -2
  36. dkist_processing_cryonirsp-2.0.0rc3/changelog/292.feature.2.rst +0 -3
  37. dkist_processing_cryonirsp-2.0.0rc3/changelog/292.feature.rst +0 -2
  38. dkist_processing_cryonirsp-2.0.0rc3/changelog/292.misc.rst +0 -3
  39. dkist_processing_cryonirsp-2.0.0rc3/changelog/292.science.rst +0 -4
  40. dkist_processing_cryonirsp-2.0.0rc3/dkist_processing_cryonirsp.egg-info/scm_version.json +0 -8
  41. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/.gitignore +0 -0
  42. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/.pre-commit-config.yaml +0 -0
  43. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/.readthedocs.yml +0 -0
  44. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/.rovodev/.review-agent.md +0 -0
  45. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/README.rst +0 -0
  46. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/bitbucket-pipelines.yml +0 -0
  47. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/changelog/.gitempty +0 -0
  48. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/__init__.py +0 -0
  49. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/codecs/__init__.py +0 -0
  50. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/codecs/fits.py +0 -0
  51. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/config.py +0 -0
  52. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/models/__init__.py +0 -0
  53. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/models/beam_boundaries.py +0 -0
  54. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/models/dataset_extras.py +0 -0
  55. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/models/fits_access.py +0 -0
  56. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/models/parameters.py +0 -0
  57. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/models/task_name.py +0 -0
  58. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
  59. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/check_for_gains.py +0 -0
  60. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
  61. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
  62. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
  63. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
  64. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
  65. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
  66. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/parsers/time.py +0 -0
  67. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
  68. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
  69. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
  70. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
  71. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
  72. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
  73. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
  74. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
  75. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
  76. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
  77. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
  78. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
  79. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
  80. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
  81. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
  82. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
  83. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
  84. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/polcal_as_science.py +0 -0
  85. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
  86. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
  87. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
  88. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
  89. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
  90. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +0 -0
  91. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/write_dataset_extras.py +0 -0
  92. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
  93. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
  94. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
  95. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -0
  96. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
  97. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
  98. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
  99. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
  100. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
  101. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
  102. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
  103. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
  104. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
  105. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_fits_access.py +0 -0
  106. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
  107. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
  108. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
  109. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
  110. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py +0 -0
  111. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
  112. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
  113. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
  114. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
  115. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
  116. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
  117. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
  118. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
  119. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
  120. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/Makefile +0 -0
  121. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/bad_pixel_calibration.rst +0 -0
  122. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/beam_angle_calculation.rst +0 -0
  123. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/beam_boundary_computation.rst +0 -0
  124. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/changelog.rst +0 -0
  125. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/ci_science_calibration.rst +0 -0
  126. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/conf.py +0 -0
  127. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/dataset_extras.rst +0 -0
  128. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/index.rst +0 -0
  129. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
  130. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
  131. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
  132. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
  133. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/landing_page.rst +0 -0
  134. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/linearization.rst +0 -0
  135. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/make.bat +0 -0
  136. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/requirements.txt +0 -0
  137. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/requirements_table.rst +0 -0
  138. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/scientific_changelog.rst +0 -0
  139. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/sp_science_calibration.rst +0 -0
  140. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/docs/wavelength_calibration.rst +0 -0
  141. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/licenses/LICENSE.rst +0 -0
  142. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/science_towncrier.sh +0 -0
  143. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/setup.cfg +0 -0
  144. {dkist_processing_cryonirsp-2.0.0rc3 → dkist_processing_cryonirsp-2.0.2}/towncrier_science.toml +0 -0
@@ -0,0 +1,13 @@
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,3 +1,53 @@
1
+ v2.0.2 (2026-07-28)
2
+ ===================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Replace the named tuple ExposureConditions with a Pydantic BaseModel of the same name.
8
+ To be added to the constants database, ExposureConditions are converted to a simple tuple.
9
+ When retrieved from the constants database, the tuples are converted back to model instances. (`#280 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/280>`__)
10
+ - Replace the named tuples PolarimetricValueDataContainer and DarkTaskTestAndExposureConditionsContainer
11
+ with dataclasses PolarimetricValueData and DarkTaskTestAndExposureConditions, respectively. (`#280 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/280>`__)
12
+
13
+
14
+ v2.0.1 (2026-07-22)
15
+ ===================
16
+
17
+ Misc
18
+ ----
19
+
20
+ - Update dkist-inventory to 1.11.9 which populates tile count for trial runs. (`#296 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/296>`__)
21
+
22
+
23
+ v2.0.0 (2026-07-17)
24
+ ===================
25
+
26
+ Features
27
+ --------
28
+
29
+ - Compute spectral shift calculations on smoothed/filtered spectral derivatives of the reference and target spectra. This
30
+ amplifies the spectral signal and greatly improves the accuracy of the individual shift measurements. (`#292 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/292>`__)
31
+ - The calculation of a single spectral shift is now *only* via interpolation of the correlation signal between the reference
32
+ and target spectra. Previously a second refinement of this value was done via a chi-squared minimization, but this was shown
33
+ to increase noise with no increase in accuracy. (`#292 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/292>`__)
34
+
35
+
36
+ Bugfixes
37
+ --------
38
+
39
+ - Filter out non-finite values and use `resize_arrays_local_mean` to average arrays in the instrument polarization
40
+ task instead of `resize_arrays`. With an output shape of `(1,1)`, `resize_arrays` returns the center pixel. (`#290 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/290>`__)
41
+
42
+
43
+ Misc
44
+ ----
45
+
46
+ - Add option to all local trial workflows (``--parameter-doc``) that uses an existing input dataset parameter-part document
47
+ to populate the parameters during a local run. This is an easy way for a user to run a pipeline locally using the exact
48
+ parameters used in production. (`#292 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/292>`__)
49
+
50
+
1
51
  v1.19.19 (2026-06-22)
2
52
  =====================
3
53
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 2.0.0rc3
3
+ Version: 2.0.2
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
@@ -44,10 +44,10 @@ Requires-Dist: dkist-processing-cryonirsp[asdf]; extra == "test"
44
44
  Requires-Dist: dkist-processing-cryonirsp[quality]; extra == "test"
45
45
  Provides-Extra: inventory
46
46
  Requires-Dist: dkist-processing-common[inventory]; extra == "inventory"
47
- Requires-Dist: dkist-inventory==1.11.8; extra == "inventory"
47
+ Requires-Dist: dkist-inventory==1.11.9; extra == "inventory"
48
48
  Provides-Extra: asdf
49
49
  Requires-Dist: dkist-processing-common[asdf]; extra == "asdf"
50
- Requires-Dist: dkist-inventory[asdf]==1.11.8; extra == "asdf"
50
+ Requires-Dist: dkist-inventory[asdf]==1.11.9; extra == "asdf"
51
51
  Provides-Extra: quality
52
52
  Requires-Dist: dkist-quality==2.0.1; extra == "quality"
53
53
  Provides-Extra: grogu
@@ -63,7 +63,7 @@ Requires-Dist: pytest; extra == "docs"
63
63
  Requires-Dist: dkist-sphinx-theme; extra == "docs"
64
64
  Provides-Extra: frozen
65
65
  Requires-Dist: Deprecated==1.3.1; extra == "frozen"
66
- Requires-Dist: ImageIO==2.37.3; extra == "frozen"
66
+ Requires-Dist: ImageIO==2.37.4; extra == "frozen"
67
67
  Requires-Dist: Jinja2==3.1.6; extra == "frozen"
68
68
  Requires-Dist: Mako==1.3.12; extra == "frozen"
69
69
  Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
@@ -76,25 +76,25 @@ Requires-Dist: SQLAlchemy==2.0.51; extra == "frozen"
76
76
  Requires-Dist: Send2Trash==2.1.0; extra == "frozen"
77
77
  Requires-Dist: a2wsgi==1.10.10; extra == "frozen"
78
78
  Requires-Dist: aioftp==0.27.2; extra == "frozen"
79
- Requires-Dist: aiohappyeyeballs==2.6.2; extra == "frozen"
80
- Requires-Dist: aiohttp==3.14.1; extra == "frozen"
79
+ Requires-Dist: aiohappyeyeballs==2.7.1; extra == "frozen"
80
+ Requires-Dist: aiohttp==3.14.3; extra == "frozen"
81
81
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
82
82
  Requires-Dist: aiosmtplib==5.1.2; extra == "frozen"
83
83
  Requires-Dist: aiosqlite==0.21.0; extra == "frozen"
84
84
  Requires-Dist: alembic==1.18.5; extra == "frozen"
85
85
  Requires-Dist: amqp==5.3.1; extra == "frozen"
86
- Requires-Dist: annotated-doc==0.0.4; extra == "frozen"
87
- Requires-Dist: annotated-types==0.7.0; extra == "frozen"
88
- Requires-Dist: anyio==4.14.1; extra == "frozen"
86
+ Requires-Dist: annotated-doc==0.0.5; extra == "frozen"
87
+ Requires-Dist: annotated-types==0.8.0; extra == "frozen"
88
+ Requires-Dist: anyio==4.14.2; extra == "frozen"
89
89
  Requires-Dist: apache-airflow==3.2.1; extra == "frozen"
90
90
  Requires-Dist: apache-airflow-core==3.2.1; extra == "frozen"
91
- Requires-Dist: apache-airflow-providers-celery==3.20.0; extra == "frozen"
92
- Requires-Dist: apache-airflow-providers-common-compat==1.15.0; extra == "frozen"
93
- Requires-Dist: apache-airflow-providers-common-io==1.7.3; extra == "frozen"
94
- Requires-Dist: apache-airflow-providers-common-sql==2.0.1; extra == "frozen"
95
- Requires-Dist: apache-airflow-providers-postgres==6.8.0; extra == "frozen"
96
- Requires-Dist: apache-airflow-providers-smtp==3.0.1; extra == "frozen"
97
- Requires-Dist: apache-airflow-providers-standard==1.15.0; extra == "frozen"
91
+ Requires-Dist: apache-airflow-providers-celery==3.23.0; extra == "frozen"
92
+ Requires-Dist: apache-airflow-providers-common-compat==1.17.0; extra == "frozen"
93
+ Requires-Dist: apache-airflow-providers-common-io==1.8.0; extra == "frozen"
94
+ Requires-Dist: apache-airflow-providers-common-sql==2.0.3; extra == "frozen"
95
+ Requires-Dist: apache-airflow-providers-postgres==7.0.0; extra == "frozen"
96
+ Requires-Dist: apache-airflow-providers-smtp==3.0.2; extra == "frozen"
97
+ Requires-Dist: apache-airflow-providers-standard==1.16.0; extra == "frozen"
98
98
  Requires-Dist: apache-airflow-task-sdk==1.2.1; extra == "frozen"
99
99
  Requires-Dist: argcomplete==3.7.0; extra == "frozen"
100
100
  Requires-Dist: argon2-cffi==25.1.0; extra == "frozen"
@@ -102,11 +102,11 @@ Requires-Dist: argon2-cffi-bindings==25.1.0; extra == "frozen"
102
102
  Requires-Dist: arrow==1.4.0; extra == "frozen"
103
103
  Requires-Dist: asdf==5.3.1; extra == "frozen"
104
104
  Requires-Dist: asdf_standard==1.5.0; extra == "frozen"
105
- Requires-Dist: asgiref==3.11.1; extra == "frozen"
105
+ Requires-Dist: asgiref==3.12.1; extra == "frozen"
106
106
  Requires-Dist: asteval==1.0.9; extra == "frozen"
107
107
  Requires-Dist: astropy==7.0.2; extra == "frozen"
108
- Requires-Dist: astropy-iers-data==0.2026.6.22.1.23.34; extra == "frozen"
109
- Requires-Dist: asttokens==3.0.1; extra == "frozen"
108
+ Requires-Dist: astropy-iers-data==0.2026.7.27.0.56.29; extra == "frozen"
109
+ Requires-Dist: asttokens==3.0.2; extra == "frozen"
110
110
  Requires-Dist: async-lru==2.3.0; extra == "frozen"
111
111
  Requires-Dist: asyncpg==0.31.0; extra == "frozen"
112
112
  Requires-Dist: attrs==26.1.0; extra == "frozen"
@@ -114,22 +114,22 @@ Requires-Dist: babel==2.18.0; extra == "frozen"
114
114
  Requires-Dist: beautifulsoup4==4.15.0; extra == "frozen"
115
115
  Requires-Dist: billiard==4.2.4; extra == "frozen"
116
116
  Requires-Dist: bleach==6.4.0; extra == "frozen"
117
- Requires-Dist: boto3==1.43.38; extra == "frozen"
118
- Requires-Dist: botocore==1.43.38; extra == "frozen"
119
- Requires-Dist: cadwyn==7.1.0; extra == "frozen"
117
+ Requires-Dist: boto3==1.43.57; extra == "frozen"
118
+ Requires-Dist: botocore==1.43.57; extra == "frozen"
119
+ Requires-Dist: cadwyn==7.1.2; extra == "frozen"
120
120
  Requires-Dist: celery==5.6.3; extra == "frozen"
121
- Requires-Dist: certifi==2026.6.17; extra == "frozen"
122
- Requires-Dist: cffi==2.0.0; extra == "frozen"
123
- Requires-Dist: charset-normalizer==3.4.7; extra == "frozen"
121
+ Requires-Dist: certifi==2026.7.22; extra == "frozen"
122
+ Requires-Dist: cffi==2.1.0; extra == "frozen"
123
+ Requires-Dist: charset-normalizer==3.4.9; extra == "frozen"
124
124
  Requires-Dist: click==8.4.2; extra == "frozen"
125
125
  Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
126
126
  Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
127
127
  Requires-Dist: click-repl==0.3.0; extra == "frozen"
128
- Requires-Dist: colorlog==6.10.1; extra == "frozen"
128
+ Requires-Dist: colorlog==6.12.0; extra == "frozen"
129
129
  Requires-Dist: comm==0.2.3; extra == "frozen"
130
130
  Requires-Dist: contourpy==1.3.3; extra == "frozen"
131
131
  Requires-Dist: cron_descriptor==2.1.0; extra == "frozen"
132
- Requires-Dist: croniter==6.2.2; extra == "frozen"
132
+ Requires-Dist: croniter==6.2.4; extra == "frozen"
133
133
  Requires-Dist: cryptography==49.0.0; extra == "frozen"
134
134
  Requires-Dist: cycler==0.12.1; extra == "frozen"
135
135
  Requires-Dist: debugpy==1.8.21; extra == "frozen"
@@ -139,7 +139,7 @@ Requires-Dist: dill==0.4.1; extra == "frozen"
139
139
  Requires-Dist: dkist-header-validator==5.4.0; extra == "frozen"
140
140
  Requires-Dist: dkist-processing-common==14.3.4; extra == "frozen"
141
141
  Requires-Dist: dkist-processing-core==7.3.0; extra == "frozen"
142
- Requires-Dist: dkist-processing-cryonirsp==2.0.0rc3; extra == "frozen"
142
+ Requires-Dist: dkist-processing-cryonirsp==2.0.2; extra == "frozen"
143
143
  Requires-Dist: dkist-processing-math==2.2.3; extra == "frozen"
144
144
  Requires-Dist: dkist-processing-pac==3.1.2; extra == "frozen"
145
145
  Requires-Dist: dkist-service-configuration==4.3.0; extra == "frozen"
@@ -148,20 +148,20 @@ Requires-Dist: dkist_fits_specifications==4.28.0; extra == "frozen"
148
148
  Requires-Dist: dnspython==2.8.0; extra == "frozen"
149
149
  Requires-Dist: email-validator==2.3.0; extra == "frozen"
150
150
  Requires-Dist: executing==2.2.1; extra == "frozen"
151
- Requires-Dist: fastapi==0.138.2; extra == "frozen"
152
- Requires-Dist: fastapi-cli==0.0.27; extra == "frozen"
153
- Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
151
+ Requires-Dist: fastapi==0.140.13; extra == "frozen"
152
+ Requires-Dist: fastapi-cli==0.0.32; extra == "frozen"
153
+ Requires-Dist: fastjsonschema==2.22.1; extra == "frozen"
154
154
  Requires-Dist: flower==2.0.1; extra == "frozen"
155
155
  Requires-Dist: fonttools==4.63.0; extra == "frozen"
156
156
  Requires-Dist: fqdn==1.5.1; extra == "frozen"
157
157
  Requires-Dist: frozenlist==1.8.0; extra == "frozen"
158
- Requires-Dist: fsspec==2026.6.0; extra == "frozen"
158
+ Requires-Dist: fsspec==2026.7.0; extra == "frozen"
159
159
  Requires-Dist: globus-sdk==4.8.1; extra == "frozen"
160
160
  Requires-Dist: googleapis-common-protos==1.75.0; extra == "frozen"
161
161
  Requires-Dist: gqlclient==2.0.0; extra == "frozen"
162
162
  Requires-Dist: greenback==1.3.0; extra == "frozen"
163
- Requires-Dist: greenlet==3.5.3; extra == "frozen"
164
- Requires-Dist: grpcio==1.81.1; extra == "frozen"
163
+ Requires-Dist: greenlet==3.5.4; extra == "frozen"
164
+ Requires-Dist: grpcio==1.83.0; extra == "frozen"
165
165
  Requires-Dist: h11==0.16.0; extra == "frozen"
166
166
  Requires-Dist: httpcore==1.0.9; extra == "frozen"
167
167
  Requires-Dist: httptools==0.8.0; extra == "frozen"
@@ -184,12 +184,12 @@ Requires-Dist: jsonschema==4.26.0; extra == "frozen"
184
184
  Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
185
185
  Requires-Dist: jupyter-events==0.12.1; extra == "frozen"
186
186
  Requires-Dist: jupyter-lsp==2.3.1; extra == "frozen"
187
- Requires-Dist: jupyter_builder==1.0.2; extra == "frozen"
187
+ Requires-Dist: jupyter_builder==1.1.1; extra == "frozen"
188
188
  Requires-Dist: jupyter_client==8.9.1; extra == "frozen"
189
189
  Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
190
190
  Requires-Dist: jupyter_server==2.20.0; extra == "frozen"
191
191
  Requires-Dist: jupyter_server_terminals==0.5.4; extra == "frozen"
192
- Requires-Dist: jupyterlab==4.6.1; extra == "frozen"
192
+ Requires-Dist: jupyterlab==4.6.2; extra == "frozen"
193
193
  Requires-Dist: jupyterlab_pygments==0.3.0; extra == "frozen"
194
194
  Requires-Dist: jupyterlab_server==2.28.0; extra == "frozen"
195
195
  Requires-Dist: kiwisolver==1.5.0; extra == "frozen"
@@ -205,54 +205,54 @@ Requires-Dist: lmfit==1.3.4; extra == "frozen"
205
205
  Requires-Dist: lockfile==0.12.2; extra == "frozen"
206
206
  Requires-Dist: loguru==0.7.3; extra == "frozen"
207
207
  Requires-Dist: markdown-it-py==4.2.0; extra == "frozen"
208
- Requires-Dist: matplotlib==3.11.0; extra == "frozen"
208
+ Requires-Dist: matplotlib==3.11.1; extra == "frozen"
209
209
  Requires-Dist: matplotlib-inline==0.2.2; extra == "frozen"
210
210
  Requires-Dist: mdurl==0.1.2; extra == "frozen"
211
211
  Requires-Dist: methodtools==0.4.7; extra == "frozen"
212
- Requires-Dist: mistune==3.3.2; extra == "frozen"
212
+ Requires-Dist: mistune==3.3.4; extra == "frozen"
213
213
  Requires-Dist: more-itertools==11.1.0; extra == "frozen"
214
214
  Requires-Dist: moviepy==2.1.2; extra == "frozen"
215
215
  Requires-Dist: msgspec==0.21.1; extra == "frozen"
216
216
  Requires-Dist: multidict==6.7.1; extra == "frozen"
217
- Requires-Dist: narwhals==2.23.0; extra == "frozen"
217
+ Requires-Dist: narwhals==2.24.0; extra == "frozen"
218
218
  Requires-Dist: natsort==8.4.0; extra == "frozen"
219
219
  Requires-Dist: nbclient==0.11.0; extra == "frozen"
220
220
  Requires-Dist: nbconvert==7.17.1; extra == "frozen"
221
221
  Requires-Dist: nbformat==5.10.4; extra == "frozen"
222
222
  Requires-Dist: nest-asyncio2==1.7.2; extra == "frozen"
223
223
  Requires-Dist: networkx==3.6.1; extra == "frozen"
224
- Requires-Dist: notebook==7.6.0; extra == "frozen"
224
+ Requires-Dist: notebook==7.6.1; extra == "frozen"
225
225
  Requires-Dist: notebook_shim==0.2.4; extra == "frozen"
226
226
  Requires-Dist: numba==0.61.2; extra == "frozen"
227
227
  Requires-Dist: numpy==2.2.5; extra == "frozen"
228
228
  Requires-Dist: object-clerk==1.0.0; extra == "frozen"
229
- Requires-Dist: opentelemetry-api==1.43.0; extra == "frozen"
230
- Requires-Dist: opentelemetry-exporter-otlp==1.43.0; extra == "frozen"
231
- Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.43.0; extra == "frozen"
232
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.43.0; extra == "frozen"
233
- Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.43.0; extra == "frozen"
234
- Requires-Dist: opentelemetry-instrumentation==0.64b0; extra == "frozen"
235
- Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.64b0; extra == "frozen"
236
- Requires-Dist: opentelemetry-instrumentation-asgi==0.64b0; extra == "frozen"
237
- Requires-Dist: opentelemetry-instrumentation-botocore==0.64b0; extra == "frozen"
238
- Requires-Dist: opentelemetry-instrumentation-celery==0.64b0; extra == "frozen"
239
- Requires-Dist: opentelemetry-instrumentation-dbapi==0.64b0; extra == "frozen"
240
- Requires-Dist: opentelemetry-instrumentation-fastapi==0.64b0; extra == "frozen"
241
- Requires-Dist: opentelemetry-instrumentation-pika==0.64b0; extra == "frozen"
242
- Requires-Dist: opentelemetry-instrumentation-psycopg2==0.64b0; extra == "frozen"
243
- Requires-Dist: opentelemetry-instrumentation-pymongo==0.64b0; extra == "frozen"
244
- Requires-Dist: opentelemetry-instrumentation-redis==0.64b0; extra == "frozen"
245
- Requires-Dist: opentelemetry-instrumentation-requests==0.64b0; extra == "frozen"
246
- Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.64b0; extra == "frozen"
247
- Requires-Dist: opentelemetry-instrumentation-system-metrics==0.64b0; extra == "frozen"
229
+ Requires-Dist: opentelemetry-api==1.44.0; extra == "frozen"
230
+ Requires-Dist: opentelemetry-exporter-otlp==1.44.0; extra == "frozen"
231
+ Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.44.0; extra == "frozen"
232
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.44.0; extra == "frozen"
233
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.44.0; extra == "frozen"
234
+ Requires-Dist: opentelemetry-instrumentation==0.65b0; extra == "frozen"
235
+ Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.65b0; extra == "frozen"
236
+ Requires-Dist: opentelemetry-instrumentation-asgi==0.65b0; extra == "frozen"
237
+ Requires-Dist: opentelemetry-instrumentation-botocore==0.65b0; extra == "frozen"
238
+ Requires-Dist: opentelemetry-instrumentation-celery==0.65b0; extra == "frozen"
239
+ Requires-Dist: opentelemetry-instrumentation-dbapi==0.65b0; extra == "frozen"
240
+ Requires-Dist: opentelemetry-instrumentation-fastapi==0.65b0; extra == "frozen"
241
+ Requires-Dist: opentelemetry-instrumentation-pika==0.65b0; extra == "frozen"
242
+ Requires-Dist: opentelemetry-instrumentation-psycopg2==0.65b0; extra == "frozen"
243
+ Requires-Dist: opentelemetry-instrumentation-pymongo==0.65b0; extra == "frozen"
244
+ Requires-Dist: opentelemetry-instrumentation-redis==0.65b0; extra == "frozen"
245
+ Requires-Dist: opentelemetry-instrumentation-requests==0.65b0; extra == "frozen"
246
+ Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.65b0; extra == "frozen"
247
+ Requires-Dist: opentelemetry-instrumentation-system-metrics==0.65b0; extra == "frozen"
248
248
  Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
249
- Requires-Dist: opentelemetry-proto==1.43.0; extra == "frozen"
250
- Requires-Dist: opentelemetry-sdk==1.43.0; extra == "frozen"
251
- Requires-Dist: opentelemetry-semantic-conventions==0.64b0; extra == "frozen"
252
- Requires-Dist: opentelemetry-util-http==0.64b0; extra == "frozen"
249
+ Requires-Dist: opentelemetry-proto==1.44.0; extra == "frozen"
250
+ Requires-Dist: opentelemetry-sdk==1.44.0; extra == "frozen"
251
+ Requires-Dist: opentelemetry-semantic-conventions==0.65b0; extra == "frozen"
252
+ Requires-Dist: opentelemetry-util-http==0.65b0; extra == "frozen"
253
253
  Requires-Dist: outcome==1.3.0.post0; extra == "frozen"
254
254
  Requires-Dist: packaging==26.2; extra == "frozen"
255
- Requires-Dist: pandas==3.0.3; extra == "frozen"
255
+ Requires-Dist: pandas==3.0.5; extra == "frozen"
256
256
  Requires-Dist: pandocfilters==1.5.1; extra == "frozen"
257
257
  Requires-Dist: parfive==2.3.1; extra == "frozen"
258
258
  Requires-Dist: parso==0.8.7; extra == "frozen"
@@ -260,18 +260,20 @@ Requires-Dist: pathlib_abc==0.5.2; extra == "frozen"
260
260
  Requires-Dist: pathspec==1.1.1; extra == "frozen"
261
261
  Requires-Dist: pendulum==3.2.0; extra == "frozen"
262
262
  Requires-Dist: pexpect==4.9.0; extra == "frozen"
263
- Requires-Dist: pika==1.4.1; extra == "frozen"
263
+ Requires-Dist: pika==1.4.2; extra == "frozen"
264
264
  Requires-Dist: pillow==10.4.0; extra == "frozen"
265
265
  Requires-Dist: pip==26.1.2; extra == "frozen"
266
- Requires-Dist: platformdirs==4.10.0; extra == "frozen"
266
+ Requires-Dist: platformdirs==4.11.0; extra == "frozen"
267
267
  Requires-Dist: pluggy==1.6.0; extra == "frozen"
268
268
  Requires-Dist: pooch==1.9.0; extra == "frozen"
269
269
  Requires-Dist: proglog==0.1.12; extra == "frozen"
270
- Requires-Dist: prometheus_client==0.25.0; extra == "frozen"
271
- Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
270
+ Requires-Dist: prometheus_client==0.26.0; extra == "frozen"
271
+ Requires-Dist: prompt_toolkit==3.0.53; extra == "frozen"
272
272
  Requires-Dist: propcache==0.5.2; extra == "frozen"
273
273
  Requires-Dist: protobuf==7.35.1; extra == "frozen"
274
274
  Requires-Dist: psutil==7.2.2; extra == "frozen"
275
+ Requires-Dist: psycopg==3.3.4; extra == "frozen"
276
+ Requires-Dist: psycopg-binary==3.3.4; extra == "frozen"
275
277
  Requires-Dist: psycopg2-binary==2.9.12; extra == "frozen"
276
278
  Requires-Dist: ptyprocess==0.7.0; extra == "frozen"
277
279
  Requires-Dist: pure_eval==0.2.3; extra == "frozen"
@@ -289,7 +291,7 @@ Requires-Dist: python-dotenv==1.2.2; extra == "frozen"
289
291
  Requires-Dist: python-json-logger==4.1.0; extra == "frozen"
290
292
  Requires-Dist: python-multipart==0.0.32; extra == "frozen"
291
293
  Requires-Dist: python-slugify==8.0.4; extra == "frozen"
292
- Requires-Dist: pytz==2026.2; extra == "frozen"
294
+ Requires-Dist: pytz==2026.3.post1; extra == "frozen"
293
295
  Requires-Dist: pyzmq==27.1.0; extra == "frozen"
294
296
  Requires-Dist: redis==6.4.0; extra == "frozen"
295
297
  Requires-Dist: referencing==0.37.0; extra == "frozen"
@@ -299,9 +301,9 @@ Requires-Dist: rfc3986-validator==0.1.1; extra == "frozen"
299
301
  Requires-Dist: rfc3987-syntax==1.1.0; extra == "frozen"
300
302
  Requires-Dist: rich==15.0.0; extra == "frozen"
301
303
  Requires-Dist: rich-argparse==1.8.0; extra == "frozen"
302
- Requires-Dist: rich-toolkit==0.20.1; extra == "frozen"
304
+ Requires-Dist: rich-toolkit==0.20.3; extra == "frozen"
303
305
  Requires-Dist: rpds-py==2026.6.3; extra == "frozen"
304
- Requires-Dist: s3transfer==0.19.0; extra == "frozen"
306
+ Requires-Dist: s3transfer==0.19.2; extra == "frozen"
305
307
  Requires-Dist: scikit-image==0.25.2; extra == "frozen"
306
308
  Requires-Dist: scikit-learn==1.9.0; extra == "frozen"
307
309
  Requires-Dist: scipy==1.15.3; extra == "frozen"
@@ -311,14 +313,14 @@ Requires-Dist: shellingham==1.5.4; extra == "frozen"
311
313
  Requires-Dist: six==1.17.0; extra == "frozen"
312
314
  Requires-Dist: sniffio==1.3.1; extra == "frozen"
313
315
  Requires-Dist: solar-wavelength-calibration==2.0.3; extra == "frozen"
314
- Requires-Dist: soupsieve==2.8.4; extra == "frozen"
316
+ Requires-Dist: soupsieve==2.9.1; extra == "frozen"
315
317
  Requires-Dist: sqids==0.5.1; extra == "frozen"
316
318
  Requires-Dist: sqlparse==0.5.5; extra == "frozen"
317
319
  Requires-Dist: stack-data==0.6.3; extra == "frozen"
318
320
  Requires-Dist: starlette==0.52.1; extra == "frozen"
319
321
  Requires-Dist: structlog==26.1.0; extra == "frozen"
320
322
  Requires-Dist: sunpy==6.1.1; extra == "frozen"
321
- Requires-Dist: svcs==25.1.0; extra == "frozen"
323
+ Requires-Dist: svcs==26.1.0; extra == "frozen"
322
324
  Requires-Dist: tabulate==0.10.0; extra == "frozen"
323
325
  Requires-Dist: talus==1.3.4; extra == "frozen"
324
326
  Requires-Dist: tenacity==8.5.0; extra == "frozen"
@@ -326,15 +328,15 @@ Requires-Dist: termcolor==3.3.0; extra == "frozen"
326
328
  Requires-Dist: terminado==0.18.1; extra == "frozen"
327
329
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
328
330
  Requires-Dist: threadpoolctl==3.6.0; extra == "frozen"
329
- Requires-Dist: tifffile==2026.6.1; extra == "frozen"
331
+ Requires-Dist: tifffile==2026.7.14; extra == "frozen"
330
332
  Requires-Dist: tinycss2==1.5.1; extra == "frozen"
331
333
  Requires-Dist: tornado==6.5.7; extra == "frozen"
332
- Requires-Dist: tqdm==4.68.3; extra == "frozen"
334
+ Requires-Dist: tqdm==4.70.0; extra == "frozen"
333
335
  Requires-Dist: traitlets==5.15.1; extra == "frozen"
334
- Requires-Dist: typer==0.26.8; extra == "frozen"
336
+ Requires-Dist: typer==0.27.0; extra == "frozen"
335
337
  Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
336
- Requires-Dist: typing_extensions==4.15.0; extra == "frozen"
337
- Requires-Dist: tzdata==2026.2; extra == "frozen"
338
+ Requires-Dist: typing_extensions==4.16.0; extra == "frozen"
339
+ Requires-Dist: tzdata==2026.3; extra == "frozen"
338
340
  Requires-Dist: tzlocal==5.4.4; extra == "frozen"
339
341
  Requires-Dist: uc-micro-py==2.0.0; extra == "frozen"
340
342
  Requires-Dist: uncertainties==3.2.3; extra == "frozen"
@@ -342,7 +344,7 @@ Requires-Dist: universal_pathlib==0.3.10; extra == "frozen"
342
344
  Requires-Dist: uri-template==1.3.0; extra == "frozen"
343
345
  Requires-Dist: urllib3==2.7.0; extra == "frozen"
344
346
  Requires-Dist: uuid6==2025.0.1; extra == "frozen"
345
- Requires-Dist: uvicorn==0.49.0; extra == "frozen"
347
+ Requires-Dist: uvicorn==0.51.0; extra == "frozen"
346
348
  Requires-Dist: uvloop==0.22.1; extra == "frozen"
347
349
  Requires-Dist: vine==5.1.0; extra == "frozen"
348
350
  Requires-Dist: voluptuous==0.16.0; extra == "frozen"
@@ -351,11 +353,11 @@ Requires-Dist: wcwidth==0.8.2; extra == "frozen"
351
353
  Requires-Dist: webcolors==25.10.0; extra == "frozen"
352
354
  Requires-Dist: webencodings==0.5.1; extra == "frozen"
353
355
  Requires-Dist: websocket-client==1.9.0; extra == "frozen"
354
- Requires-Dist: websockets==16.0; extra == "frozen"
356
+ Requires-Dist: websockets==16.1.1; extra == "frozen"
355
357
  Requires-Dist: wirerope==1.0.0; extra == "frozen"
356
- Requires-Dist: wrapt==2.2.2; extra == "frozen"
358
+ Requires-Dist: wrapt==2.3.0; extra == "frozen"
357
359
  Requires-Dist: yamale==6.1.0; extra == "frozen"
358
- Requires-Dist: yarl==1.24.2; extra == "frozen"
360
+ Requires-Dist: yarl==1.24.5; extra == "frozen"
359
361
  Requires-Dist: zipp==4.1.0; extra == "frozen"
360
362
 
361
363
  dkist-processing-cryonirsp
@@ -0,0 +1,39 @@
1
+ v2.0.0 (2026-07-17)
2
+ ===================
3
+
4
+
5
+
6
+
7
+ - Improvements to the calculation of the spectral curvature to make them more robust against noisy input data. This change
8
+ only affects science data for datasets where the spectral curvature was previously mis-identified. For these datasets this
9
+ change will correct un-aligned spectral axes in L1 data and improve the quality of gain correction because the solar gain
10
+ frames will have better removal of solar absorption lines. (`#292 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/292>`__)
11
+ - Demodulation matrices are now derived from a correctly computed average over the full array. Previously, a bug had resulted
12
+ in the "average" actually just being the value of the central pixel. This change does result in small changes to the derived
13
+ demodulation matrices, but has been shown to not change L1 data in a substantial way. (`#290 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/290>`__)
14
+
15
+ v1.8.0 (2025-06-16)
16
+ ===================
17
+
18
+ Misc
19
+ ----
20
+
21
+ - Update the beam alignment code to handle edge effects in determining the shift required to align beams one and two. The final spectra passed to the cross correlation method are now cropped by removing the outside 10% of pixels on each edge. (`#195 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/195>`__)
22
+
23
+
24
+ v1.0.0 (2024-08-21)
25
+ ===================
26
+
27
+ Misc
28
+ ----
29
+
30
+ - CRYO-NIRSP processing pipeline data accepted for release to the community.
31
+
32
+
33
+ v0.0.1 (2023-08-25)
34
+ ===================
35
+
36
+ Misc
37
+ ----
38
+
39
+ - Initial release of pipeline for science review
@@ -63,6 +63,11 @@ class CryonirspBudName(StrEnum):
63
63
  class CryonirspConstants(ConstantsBase):
64
64
  """CryoNIRSP specific constants to add to the common constants."""
65
65
 
66
+ def _build_exposure_conditions_list(self, key: str) -> list[ExposureConditions]:
67
+ """Fetch exposure conditions from database and rebuild as ExposureConditions objects."""
68
+ raw_conditions: list[list[float | str]] = self._db_dict[key]
69
+ return [ExposureConditions.model_validate_json(conditions) for conditions in raw_conditions]
70
+
66
71
  @property
67
72
  def arm_id(self) -> str:
68
73
  """Arm used to record the data, SP or CI."""
@@ -144,48 +149,38 @@ class CryonirspConstants(ConstantsBase):
144
149
  @property
145
150
  def dark_exposure_conditions_list(self) -> list[ExposureConditions]:
146
151
  """Construct a list of dark frame ExposureConditions tuples for the dataset."""
147
- raw_conditions: list[list[float | str]] = self._db_dict[
152
+ return self._build_exposure_conditions_list(
148
153
  CryonirspBudName.dark_exposure_conditions_list.value
149
- ]
150
- conditions = [ExposureConditions(*item) for item in raw_conditions]
151
- return conditions
154
+ )
152
155
 
153
156
  @property
154
157
  def lamp_gain_exposure_conditions_list(self) -> list[ExposureConditions]:
155
158
  """Construct a list of lamp gain ExposureConditions tuples for the dataset."""
156
- raw_conditions: list[list[float | str]] = self._db_dict[
159
+ return self._build_exposure_conditions_list(
157
160
  CryonirspBudName.lamp_gain_exposure_conditions_list.value
158
- ]
159
- conditions = [ExposureConditions(*item) for item in raw_conditions]
160
- return conditions
161
+ )
161
162
 
162
163
  @property
163
164
  def solar_gain_exposure_conditions_list(self) -> list[ExposureConditions]:
164
165
  """Construct a list of solar gain ExposureConditions tuples for the dataset."""
165
- raw_conditions: list[list[float | str]] = self._db_dict[
166
+ return self._build_exposure_conditions_list(
166
167
  CryonirspBudName.solar_gain_exposure_conditions_list.value
167
- ]
168
- conditions = [ExposureConditions(*item) for item in raw_conditions]
169
- return conditions
168
+ )
170
169
 
171
170
  @property
172
171
  def observe_exposure_conditions_list(self) -> list[ExposureConditions]:
173
172
  """Construct a list of observe ExposureConditions tuples for the dataset."""
174
- raw_conditions: list[list[float | str]] = self._db_dict[
173
+ return self._build_exposure_conditions_list(
175
174
  CryonirspBudName.observe_exposure_conditions_list.value
176
- ]
177
- conditions = [ExposureConditions(*item) for item in raw_conditions]
178
- return conditions
175
+ )
179
176
 
180
177
  @property
181
178
  def polcal_exposure_conditions_list(self) -> list[ExposureConditions]:
182
179
  """Construct a list of polcal ExposureConditions tuples for the dataset."""
183
180
  if self.correct_for_polarization:
184
- raw_conditions: list[list[float | str]] = self._db_dict[
181
+ return self._build_exposure_conditions_list(
185
182
  CryonirspBudName.polcal_exposure_conditions_list.value
186
- ]
187
- conditions = [ExposureConditions(*item) for item in raw_conditions]
188
- return conditions
183
+ )
189
184
  else:
190
185
  return []
191
186
 
@@ -194,20 +189,16 @@ class CryonirspConstants(ConstantsBase):
194
189
  self,
195
190
  ) -> list[ExposureConditions]:
196
191
  """Return a list of all exposure times required for all tasks other than dark, polcal, and lamp gain."""
197
- raw_conditions: list[list[float | str]] = self._db_dict[
192
+ return self._build_exposure_conditions_list(
198
193
  CryonirspBudName.ci_non_dark_and_non_polcal_and_non_lamp_gain_task_exposure_conditions_list.value
199
- ]
200
- conditions = [ExposureConditions(*item) for item in raw_conditions]
201
- return conditions
194
+ )
202
195
 
203
196
  @property
204
197
  def sp_non_dark_and_non_polcal_task_exposure_conditions_list(self) -> list[ExposureConditions]:
205
198
  """Return a list of all exposure times required for all tasks other than dark and polcal."""
206
- raw_conditions: list[list[float | str]] = self._db_dict[
199
+ return self._build_exposure_conditions_list(
207
200
  CryonirspBudName.sp_non_dark_and_non_polcal_task_exposure_conditions_list.value
208
- ]
209
- conditions = [ExposureConditions(*item) for item in raw_conditions]
210
- return conditions
201
+ )
211
202
 
212
203
  @property
213
204
  def stokes_I_list(self) -> list[str]:
@@ -1,22 +1,14 @@
1
1
  """Support classes for exposure conditions."""
2
2
 
3
3
  from enum import StrEnum
4
- from typing import NamedTuple
4
+
5
+ from pydantic import BaseModel
6
+ from pydantic import ConfigDict
5
7
 
6
8
  # Number of digits used to round the exposure when creating the ExposureConditions tuple in fits_access
7
9
  CRYO_EXP_TIME_ROUND_DIGITS: int = 3
8
10
 
9
11
 
10
- class ExposureConditions(NamedTuple):
11
- """Named tuple to hold exposure time and filter name."""
12
-
13
- exposure_time: float
14
- filter_name: str
15
-
16
- def __str__(self):
17
- return f"{self.exposure_time}_{self.filter_name}"
18
-
19
-
20
12
  class AllowableOpticalDensityFilterNames(StrEnum):
21
13
  """Enum to implement list of allowable Optical Density Filter names."""
22
14
 
@@ -25,3 +17,19 @@ class AllowableOpticalDensityFilterNames(StrEnum):
25
17
  G408 = "G408"
26
18
  OPEN = "OPEN"
27
19
  NONE = "NONE"
20
+
21
+
22
+ class ExposureConditions(BaseModel):
23
+ """Model to validate and hold exposure time and filter name."""
24
+
25
+ model_config = ConfigDict(frozen=True)
26
+
27
+ exposure_time: float
28
+ filter_name: AllowableOpticalDensityFilterNames
29
+
30
+ def __lt__(self, other):
31
+ # Compare based on exposure time
32
+ return self.exposure_time < other.exposure_time
33
+
34
+ def __str__(self):
35
+ return f"{self.exposure_time}_{self.filter_name}"
@@ -140,7 +140,7 @@ class CryonirspTag(Tag):
140
140
  Parameters
141
141
  ----------
142
142
  exposure_conditions
143
- A tuple of (exposure time, filter name)
143
+ An ExposureConditions object
144
144
 
145
145
  Returns
146
146
  -------
@@ -108,7 +108,8 @@ class CryonirspL0FitsAccess(L0FitsAccess):
108
108
  self.filter_name = self.header[CryonirspMetadataKey.filter_name.value].upper()
109
109
  # The ExposureConditions are a combination of the exposure time and the OD filter name:
110
110
  self.exposure_conditions = ExposureConditions(
111
- round(self.fpa_exposure_time_ms, CRYO_EXP_TIME_ROUND_DIGITS), self.filter_name
111
+ exposure_time=round(self.fpa_exposure_time_ms, CRYO_EXP_TIME_ROUND_DIGITS),
112
+ filter_name=self.filter_name,
112
113
  )
113
114
  self.center_wavelength = self.header[CryonirspMetadataKey.center_wavelength]
114
115
  self.slit_width = self.header[CryonirspMetadataKey.slit_width]