dkist-processing-cryonirsp 2.1.0rc1__tar.gz → 2.1.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 (138) hide show
  1. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/CHANGELOG.rst +36 -0
  2. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/PKG-INFO +89 -90
  3. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/linearity_correction.py +36 -38
  4. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/conftest.py +31 -68
  5. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/header_models.py +5 -3
  6. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +4 -1
  7. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +4 -4
  8. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +6 -5
  9. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +1 -8
  10. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +1 -8
  11. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_ci_science.py +2 -15
  12. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_dark.py +4 -15
  13. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_fits_access.py +1 -3
  14. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_gain.py +3 -17
  15. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +3 -10
  16. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +37 -9
  17. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +1 -8
  18. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_parse.py +1 -1
  19. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_polcal_as_science.py +2 -8
  20. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_quality.py +0 -1
  21. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +1 -8
  22. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +4 -5
  23. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +1 -9
  24. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_sp_science.py +2 -14
  25. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_sp_solar.py +3 -3
  26. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py +1 -8
  27. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp.egg-info/PKG-INFO +89 -90
  28. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -1
  29. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp.egg-info/requires.txt +88 -89
  30. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp.egg-info/scm_file_list.json +0 -1
  31. dkist_processing_cryonirsp-2.1.2/dkist_processing_cryonirsp.egg-info/scm_version.json +8 -0
  32. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/pyproject.toml +90 -91
  33. dkist_processing_cryonirsp-2.1.0rc1/changelog/295.misc.rst +0 -1
  34. dkist_processing_cryonirsp-2.1.0rc1/dkist_processing_cryonirsp.egg-info/scm_version.json +0 -8
  35. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/.gitignore +0 -0
  36. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/.pre-commit-config.yaml +0 -0
  37. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/.readthedocs.yml +0 -0
  38. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/.rovodev/.review-agent.md +0 -0
  39. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/.snyk +0 -0
  40. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/README.rst +0 -0
  41. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/SCIENCE_CHANGELOG.rst +0 -0
  42. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/bitbucket-pipelines.yml +0 -0
  43. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/changelog/.gitempty +0 -0
  44. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/__init__.py +0 -0
  45. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/codecs/__init__.py +0 -0
  46. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/codecs/fits.py +0 -0
  47. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/config.py +0 -0
  48. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/models/__init__.py +0 -0
  49. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/models/beam_boundaries.py +0 -0
  50. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/models/constants.py +0 -0
  51. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/models/dataset_extras.py +0 -0
  52. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
  53. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/models/fits_access.py +0 -0
  54. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/models/parameters.py +0 -0
  55. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/models/tags.py +0 -0
  56. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/models/task_name.py +0 -0
  57. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
  58. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/check_for_gains.py +0 -0
  59. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
  60. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
  61. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
  62. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
  63. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
  64. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
  65. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
  66. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
  67. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
  68. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/parsers/time.py +0 -0
  69. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
  70. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
  71. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
  72. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
  73. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
  74. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
  75. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
  76. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
  77. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
  78. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
  79. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
  80. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
  81. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
  82. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
  83. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
  84. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
  85. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/polcal_as_science.py +0 -0
  86. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
  87. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
  88. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
  89. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
  90. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
  91. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
  92. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +0 -0
  93. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/write_dataset_extras.py +0 -0
  94. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
  95. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
  96. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
  97. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
  98. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
  99. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
  100. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
  101. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
  102. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
  103. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
  104. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
  105. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
  106. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_write_dataset_extras.py +0 -0
  107. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
  108. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
  109. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
  110. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
  111. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
  112. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
  113. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
  114. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/Makefile +0 -0
  115. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/bad_pixel_calibration.rst +0 -0
  116. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/beam_angle_calculation.rst +0 -0
  117. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/beam_boundary_computation.rst +0 -0
  118. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/changelog.rst +0 -0
  119. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/ci_science_calibration.rst +0 -0
  120. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/conf.py +0 -0
  121. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/dataset_extras.rst +0 -0
  122. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/index.rst +0 -0
  123. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
  124. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
  125. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
  126. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
  127. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/landing_page.rst +0 -0
  128. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/linearization.rst +0 -0
  129. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/make.bat +0 -0
  130. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/requirements.txt +0 -0
  131. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/requirements_table.rst +0 -0
  132. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/scientific_changelog.rst +0 -0
  133. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/sp_science_calibration.rst +0 -0
  134. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/docs/wavelength_calibration.rst +0 -0
  135. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/licenses/LICENSE.rst +0 -0
  136. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/science_towncrier.sh +0 -0
  137. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/setup.cfg +0 -0
  138. {dkist_processing_cryonirsp-2.1.0rc1 → dkist_processing_cryonirsp-2.1.2}/towncrier_science.toml +0 -0
@@ -1,3 +1,39 @@
1
+ v2.1.2 (2026-09-24)
2
+ ===================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Use the "level0_spec214" file schema keyword argument in test Datasets.
8
+ With this keyword, subsequent translation of the resulting headers to
9
+ Spec 214 is not necessary. Simplify test functions that generate headers
10
+ using this change. (`#302 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/302>`__)
11
+ - Use dkist-fits-specifications v4.29.0, which includes the Trend FITS specification.
12
+ Use dkist-header-validator v6.0.0, a significant refactor that allows multi-HDU objects to be validated.
13
+ Use dkist-processing-common v14.5.0, which accommodates the changes to the header validator. (`#302 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/302>`__)
14
+ - Validators no longer have validate-and-translate methods.
15
+ Where still necessary, replace validate-and-translate calls with a call to
16
+ validate and then a call to translate. (`#302 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/302>`__)
17
+
18
+
19
+ v2.1.1 (2026-08-28)
20
+ ===================
21
+
22
+ Features
23
+ --------
24
+
25
+ - Improve linearization performance by only reading header objects when constructing the ramp sets. (`#301 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/301>`__)
26
+
27
+
28
+ v2.1.0 (2026-08-25)
29
+ ===================
30
+
31
+ Misc
32
+ ----
33
+
34
+ - Convert wavelength calibration quality metric generation to the new storage-based framework. (`#295 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/295>`__)
35
+
36
+
1
37
  v2.0.5 (2026-08-14)
2
38
  ===================
3
39
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 2.1.0rc1
3
+ Version: 2.1.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
@@ -15,9 +15,9 @@ Requires-Python: >=3.13
15
15
  Description-Content-Type: text/x-rst
16
16
  Requires-Dist: Pillow==10.4.0
17
17
  Requires-Dist: astropy==7.0.2
18
- Requires-Dist: dkist-fits-specifications==4.28.1
19
- Requires-Dist: dkist-header-validator==5.4.0
20
- Requires-Dist: dkist-processing-common==14.4.0rc1
18
+ Requires-Dist: dkist-fits-specifications==4.29.0
19
+ Requires-Dist: dkist-header-validator==6.0.0
20
+ Requires-Dist: dkist-processing-common==14.5.0
21
21
  Requires-Dist: dkist-processing-math==2.2.3
22
22
  Requires-Dist: dkist-processing-pac==3.1.2
23
23
  Requires-Dist: dkist-spectral-lines==3.0.1
@@ -38,7 +38,7 @@ Requires-Dist: pytest-cov; extra == "test"
38
38
  Requires-Dist: pytest-xdist; extra == "test"
39
39
  Requires-Dist: pytest-mock; extra == "test"
40
40
  Requires-Dist: hypothesis; extra == "test"
41
- Requires-Dist: dkist-data-simulator>=5.2.6; extra == "test"
41
+ Requires-Dist: dkist-data-simulator; extra == "test"
42
42
  Requires-Dist: dkist-processing-cryonirsp[inventory]; extra == "test"
43
43
  Requires-Dist: dkist-processing-cryonirsp[asdf]; extra == "test"
44
44
  Requires-Dist: dkist-processing-cryonirsp[quality]; extra == "test"
@@ -65,149 +65,149 @@ Provides-Extra: frozen
65
65
  Requires-Dist: Deprecated==1.3.1; extra == "frozen"
66
66
  Requires-Dist: ImageIO==2.37.4; extra == "frozen"
67
67
  Requires-Dist: Jinja2==3.1.6; extra == "frozen"
68
- Requires-Dist: Mako==1.4.1; extra == "frozen"
68
+ Requires-Dist: Mako==1.4.3; extra == "frozen"
69
69
  Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
70
70
  Requires-Dist: PeakUtils==1.3.5; extra == "frozen"
71
- Requires-Dist: PyJWT==2.13.0; extra == "frozen"
71
+ Requires-Dist: PyJWT==2.15.0; extra == "frozen"
72
72
  Requires-Dist: PyYAML==6.0.3; extra == "frozen"
73
73
  Requires-Dist: PyYAML-ft==8.0.0; extra == "frozen"
74
74
  Requires-Dist: Pygments==2.21.0; extra == "frozen"
75
- Requires-Dist: SQLAlchemy==2.0.52; extra == "frozen"
75
+ Requires-Dist: SQLAlchemy==2.0.54; extra == "frozen"
76
76
  Requires-Dist: Send2Trash==2.1.0; extra == "frozen"
77
77
  Requires-Dist: a2wsgi==1.10.10; extra == "frozen"
78
- Requires-Dist: aioftp==0.28.0; extra == "frozen"
78
+ Requires-Dist: aioftp==0.28.3; extra == "frozen"
79
79
  Requires-Dist: aiohappyeyeballs==2.7.1; extra == "frozen"
80
80
  Requires-Dist: aiohttp==3.14.3; extra == "frozen"
81
81
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
82
- Requires-Dist: aiosmtplib==5.1.2; extra == "frozen"
82
+ Requires-Dist: aiosmtplib==5.1.3; extra == "frozen"
83
83
  Requires-Dist: aiosqlite==0.22.1; extra == "frozen"
84
- Requires-Dist: alembic==1.19.1; extra == "frozen"
85
- Requires-Dist: amqp==5.3.1; extra == "frozen"
84
+ Requires-Dist: alembic==1.20.0; extra == "frozen"
85
+ Requires-Dist: amqp==5.4.0; extra == "frozen"
86
86
  Requires-Dist: annotated-doc==0.0.5; extra == "frozen"
87
87
  Requires-Dist: annotated-types==0.8.0; extra == "frozen"
88
- Requires-Dist: anyio==4.14.2; extra == "frozen"
88
+ Requires-Dist: anyio==4.15.1; extra == "frozen"
89
89
  Requires-Dist: apache-airflow==3.3.1; extra == "frozen"
90
90
  Requires-Dist: apache-airflow-core==3.3.1; extra == "frozen"
91
- Requires-Dist: apache-airflow-providers-celery==3.23.1; extra == "frozen"
92
- Requires-Dist: apache-airflow-providers-common-compat==1.18.0; extra == "frozen"
93
- Requires-Dist: apache-airflow-providers-common-io==1.8.0; extra == "frozen"
91
+ Requires-Dist: apache-airflow-providers-celery==3.24.0; extra == "frozen"
92
+ Requires-Dist: apache-airflow-providers-common-compat==1.19.0; extra == "frozen"
93
+ Requires-Dist: apache-airflow-providers-common-io==1.9.0; extra == "frozen"
94
94
  Requires-Dist: apache-airflow-providers-common-sql==2.1.1; extra == "frozen"
95
95
  Requires-Dist: apache-airflow-providers-postgres==7.0.2; extra == "frozen"
96
- Requires-Dist: apache-airflow-providers-smtp==3.0.3; extra == "frozen"
97
- Requires-Dist: apache-airflow-providers-standard==1.18.0; extra == "frozen"
96
+ Requires-Dist: apache-airflow-providers-smtp==3.0.4; extra == "frozen"
97
+ Requires-Dist: apache-airflow-providers-standard==1.19.0; extra == "frozen"
98
98
  Requires-Dist: apache-airflow-task-sdk==1.3.1; extra == "frozen"
99
- Requires-Dist: appnope==1.0.0; extra == "frozen"
100
99
  Requires-Dist: argcomplete==3.7.2; extra == "frozen"
101
100
  Requires-Dist: argon2-cffi==25.1.0; extra == "frozen"
102
101
  Requires-Dist: argon2-cffi-bindings==26.1.0; extra == "frozen"
103
102
  Requires-Dist: arrow==1.4.0; extra == "frozen"
104
- Requires-Dist: asdf==5.3.1; extra == "frozen"
103
+ Requires-Dist: asdf==5.4.0; extra == "frozen"
105
104
  Requires-Dist: asdf_standard==1.5.0; extra == "frozen"
106
105
  Requires-Dist: asgiref==3.12.1; extra == "frozen"
107
106
  Requires-Dist: asteval==1.0.10; extra == "frozen"
108
107
  Requires-Dist: astropy==7.0.2; extra == "frozen"
109
- Requires-Dist: astropy-iers-data==0.2026.8.24.0.24.29; extra == "frozen"
108
+ Requires-Dist: astropy-iers-data==0.2026.9.21.0.56.25; extra == "frozen"
110
109
  Requires-Dist: asttokens==3.0.2; extra == "frozen"
111
110
  Requires-Dist: async-lru==2.3.0; extra == "frozen"
112
111
  Requires-Dist: asyncpg==0.31.0; extra == "frozen"
113
112
  Requires-Dist: attrs==26.1.0; extra == "frozen"
114
113
  Requires-Dist: babel==2.18.0; extra == "frozen"
115
114
  Requires-Dist: beautifulsoup4==4.15.0; extra == "frozen"
116
- Requires-Dist: billiard==4.2.4; extra == "frozen"
115
+ Requires-Dist: billiard==4.3.0; extra == "frozen"
117
116
  Requires-Dist: bleach==6.4.0; extra == "frozen"
118
- Requires-Dist: boto3==1.43.79; extra == "frozen"
119
- Requires-Dist: botocore==1.43.79; extra == "frozen"
120
- Requires-Dist: cachetools==7.1.7; extra == "frozen"
117
+ Requires-Dist: boto3==1.43.101; extra == "frozen"
118
+ Requires-Dist: botocore==1.43.101; extra == "frozen"
119
+ Requires-Dist: cachetools==7.2.0; extra == "frozen"
121
120
  Requires-Dist: cadwyn==7.0.0; extra == "frozen"
122
121
  Requires-Dist: celery==5.6.3; extra == "frozen"
123
122
  Requires-Dist: certifi==2026.7.22; extra == "frozen"
124
123
  Requires-Dist: cffi==2.1.1; extra == "frozen"
125
124
  Requires-Dist: charset-normalizer==3.5.1; extra == "frozen"
126
- Requires-Dist: click==8.4.2; extra == "frozen"
125
+ Requires-Dist: click==8.5.0; extra == "frozen"
127
126
  Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
128
127
  Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
129
- Requires-Dist: click-repl==0.3.0; extra == "frozen"
128
+ Requires-Dist: click-repl==0.4.0; extra == "frozen"
129
+ Requires-Dist: cloudpickle==3.1.2; extra == "frozen"
130
130
  Requires-Dist: colorlog==6.12.0; extra == "frozen"
131
131
  Requires-Dist: comm==0.2.3; extra == "frozen"
132
- Requires-Dist: contourpy==1.3.3; extra == "frozen"
132
+ Requires-Dist: contourpy==1.4.0; extra == "frozen"
133
133
  Requires-Dist: cron_descriptor==2.1.0; extra == "frozen"
134
134
  Requires-Dist: croniter==6.2.4; extra == "frozen"
135
- Requires-Dist: cryptography==50.0.0; extra == "frozen"
135
+ Requires-Dist: cryptography==50.0.1; extra == "frozen"
136
136
  Requires-Dist: cycler==0.12.1; extra == "frozen"
137
- Requires-Dist: debugpy==1.8.21; extra == "frozen"
137
+ Requires-Dist: debugpy==1.8.22; extra == "frozen"
138
138
  Requires-Dist: decorator==5.3.1; extra == "frozen"
139
139
  Requires-Dist: defusedxml==0.7.1; extra == "frozen"
140
140
  Requires-Dist: dill==0.4.1; extra == "frozen"
141
- Requires-Dist: dkist-header-validator==5.4.0; extra == "frozen"
142
- Requires-Dist: dkist-processing-common==14.4.0rc1; extra == "frozen"
141
+ Requires-Dist: dkist-header-validator==6.0.0; extra == "frozen"
142
+ Requires-Dist: dkist-processing-common==14.5.0; extra == "frozen"
143
143
  Requires-Dist: dkist-processing-core==7.5.0; extra == "frozen"
144
- Requires-Dist: dkist-processing-cryonirsp==2.1.0rc1; extra == "frozen"
144
+ Requires-Dist: dkist-processing-cryonirsp==2.1.2; extra == "frozen"
145
145
  Requires-Dist: dkist-processing-math==2.2.3; 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"
149
- Requires-Dist: dkist_fits_specifications==4.28.1; extra == "frozen"
149
+ Requires-Dist: dkist_fits_specifications==4.29.0; extra == "frozen"
150
150
  Requires-Dist: dnspython==2.8.0; extra == "frozen"
151
151
  Requires-Dist: email-validator==2.3.0; extra == "frozen"
152
152
  Requires-Dist: executing==2.2.1; extra == "frozen"
153
153
  Requires-Dist: fastapi==0.136.3; extra == "frozen"
154
154
  Requires-Dist: fastapi-cli==0.0.32; extra == "frozen"
155
155
  Requires-Dist: fastjsonschema==2.22.2; extra == "frozen"
156
- Requires-Dist: flower==2.1.0; extra == "frozen"
157
- Requires-Dist: fonttools==4.63.0; extra == "frozen"
156
+ Requires-Dist: flower==2.2.0; extra == "frozen"
157
+ Requires-Dist: fonttools==4.66.0; extra == "frozen"
158
158
  Requires-Dist: fqdn==1.5.1; extra == "frozen"
159
159
  Requires-Dist: frozenlist==1.8.0; extra == "frozen"
160
- Requires-Dist: fsspec==2026.7.0; extra == "frozen"
160
+ Requires-Dist: fsspec==2026.9.0; extra == "frozen"
161
161
  Requires-Dist: globus-sdk==4.9.0; extra == "frozen"
162
- Requires-Dist: googleapis-common-protos==1.75.1; extra == "frozen"
162
+ Requires-Dist: googleapis-common-protos==1.75.3; extra == "frozen"
163
163
  Requires-Dist: gqlclient==2.0.0; extra == "frozen"
164
164
  Requires-Dist: greenback==1.3.0; extra == "frozen"
165
- Requires-Dist: greenlet==3.5.5; extra == "frozen"
166
- Requires-Dist: grpcio==1.83.0; extra == "frozen"
165
+ Requires-Dist: greenlet==3.5.6; extra == "frozen"
166
+ Requires-Dist: grpcio==1.84.0; extra == "frozen"
167
167
  Requires-Dist: h11==0.16.0; extra == "frozen"
168
168
  Requires-Dist: httpcore==1.0.9; extra == "frozen"
169
169
  Requires-Dist: httptools==0.8.0; extra == "frozen"
170
170
  Requires-Dist: httpx==0.28.1; extra == "frozen"
171
171
  Requires-Dist: humanize==4.16.0; extra == "frozen"
172
- Requires-Dist: idna==3.19; extra == "frozen"
172
+ Requires-Dist: idna==3.20; extra == "frozen"
173
173
  Requires-Dist: imageio-ffmpeg==0.6.0; extra == "frozen"
174
- Requires-Dist: importlib_metadata==9.0.0; extra == "frozen"
174
+ Requires-Dist: importlib_metadata==9.0.1; extra == "frozen"
175
175
  Requires-Dist: ipykernel==7.3.0; extra == "frozen"
176
- Requires-Dist: ipython==9.16.1; extra == "frozen"
176
+ Requires-Dist: ipython==9.17.1; extra == "frozen"
177
177
  Requires-Dist: ipython_pygments_lexers==1.1.1; extra == "frozen"
178
178
  Requires-Dist: isoduration==20.11.0; extra == "frozen"
179
179
  Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
180
180
  Requires-Dist: jedi==0.20.0; extra == "frozen"
181
181
  Requires-Dist: jmespath==1.1.0; extra == "frozen"
182
- Requires-Dist: joblib==1.5.3; extra == "frozen"
182
+ Requires-Dist: joblib==1.6.0; extra == "frozen"
183
183
  Requires-Dist: json5==0.15.0; extra == "frozen"
184
184
  Requires-Dist: jsonpointer==3.1.1; extra == "frozen"
185
185
  Requires-Dist: jsonschema==4.26.0; extra == "frozen"
186
186
  Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
187
187
  Requires-Dist: jupyter-events==0.12.1; extra == "frozen"
188
188
  Requires-Dist: jupyter-lsp==2.3.1; extra == "frozen"
189
- Requires-Dist: jupyter_builder==1.2.2; extra == "frozen"
190
- Requires-Dist: jupyter_client==8.9.1; extra == "frozen"
189
+ Requires-Dist: jupyter_builder==1.2.3; extra == "frozen"
190
+ Requires-Dist: jupyter_client==8.10.0; extra == "frozen"
191
191
  Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
192
- Requires-Dist: jupyter_server==2.20.0; extra == "frozen"
192
+ Requires-Dist: jupyter_server==2.21.1; extra == "frozen"
193
193
  Requires-Dist: jupyter_server_terminals==0.5.4; extra == "frozen"
194
- Requires-Dist: jupyterlab==4.6.3; extra == "frozen"
194
+ Requires-Dist: jupyterlab==4.6.4; extra == "frozen"
195
195
  Requires-Dist: jupyterlab_pygments==0.3.0; extra == "frozen"
196
- Requires-Dist: jupyterlab_server==2.28.0; extra == "frozen"
197
- Requires-Dist: kiwisolver==1.5.0; extra == "frozen"
196
+ Requires-Dist: jupyterlab_server==2.28.1; extra == "frozen"
197
+ Requires-Dist: kiwisolver==1.5.1; extra == "frozen"
198
198
  Requires-Dist: kombu==5.6.2; extra == "frozen"
199
199
  Requires-Dist: largestinteriorrectangle==0.2.1; extra == "frozen"
200
200
  Requires-Dist: lark==1.3.1; extra == "frozen"
201
- Requires-Dist: lazy-loader==0.5; extra == "frozen"
201
+ Requires-Dist: lazy-loader==0.6; extra == "frozen"
202
202
  Requires-Dist: lazy-object-proxy==1.12.0; extra == "frozen"
203
203
  Requires-Dist: libcst==1.9.0; extra == "frozen"
204
- Requires-Dist: linkify-it-py==2.1.1; extra == "frozen"
204
+ Requires-Dist: linkify-it-py==2.2.0; extra == "frozen"
205
205
  Requires-Dist: llvmlite==0.44.0; extra == "frozen"
206
206
  Requires-Dist: lmfit==1.3.4; extra == "frozen"
207
207
  Requires-Dist: lockfile==0.12.2; extra == "frozen"
208
208
  Requires-Dist: loguru==0.7.3; extra == "frozen"
209
209
  Requires-Dist: markdown-it-py==4.2.0; extra == "frozen"
210
- Requires-Dist: matplotlib==3.11.1; extra == "frozen"
210
+ Requires-Dist: matplotlib==3.11.2; extra == "frozen"
211
211
  Requires-Dist: matplotlib-inline==0.2.2; extra == "frozen"
212
212
  Requires-Dist: mdurl==0.1.2; extra == "frozen"
213
213
  Requires-Dist: methodtools==0.4.7; extra == "frozen"
@@ -215,15 +215,15 @@ Requires-Dist: mistune==3.3.4; extra == "frozen"
215
215
  Requires-Dist: more-itertools==11.1.0; extra == "frozen"
216
216
  Requires-Dist: moviepy==2.1.2; extra == "frozen"
217
217
  Requires-Dist: msgspec==0.21.1; extra == "frozen"
218
- Requires-Dist: multidict==6.7.1; extra == "frozen"
219
- Requires-Dist: narwhals==2.25.0; extra == "frozen"
218
+ Requires-Dist: multidict==6.9.1; extra == "frozen"
219
+ Requires-Dist: narwhals==2.26.0; extra == "frozen"
220
220
  Requires-Dist: natsort==8.4.0; extra == "frozen"
221
221
  Requires-Dist: nbclient==0.11.0; extra == "frozen"
222
222
  Requires-Dist: nbconvert==7.17.1; extra == "frozen"
223
223
  Requires-Dist: nbformat==5.11.1; extra == "frozen"
224
- Requires-Dist: nest-asyncio2==1.7.2; extra == "frozen"
225
- Requires-Dist: networkx==3.6.1; extra == "frozen"
226
- Requires-Dist: notebook==7.6.2; extra == "frozen"
224
+ Requires-Dist: nest-asyncio2==1.7.3; extra == "frozen"
225
+ Requires-Dist: networkx==3.7; extra == "frozen"
226
+ Requires-Dist: notebook==7.6.3; extra == "frozen"
227
227
  Requires-Dist: notebook_shim==0.2.4; extra == "frozen"
228
228
  Requires-Dist: numba==0.61.2; extra == "frozen"
229
229
  Requires-Dist: numpy==2.2.5; extra == "frozen"
@@ -254,7 +254,7 @@ Requires-Dist: opentelemetry-semantic-conventions==0.65b0; extra == "frozen"
254
254
  Requires-Dist: opentelemetry-util-http==0.65b0; extra == "frozen"
255
255
  Requires-Dist: outcome==1.3.0.post0; extra == "frozen"
256
256
  Requires-Dist: packaging==26.3; extra == "frozen"
257
- Requires-Dist: pandas==3.0.5; extra == "frozen"
257
+ Requires-Dist: pandas==3.0.6; extra == "frozen"
258
258
  Requires-Dist: pandocfilters==1.5.1; extra == "frozen"
259
259
  Requires-Dist: parfive==2.3.1; extra == "frozen"
260
260
  Requires-Dist: parso==0.8.7; extra == "frozen"
@@ -265,35 +265,35 @@ Requires-Dist: pexpect==4.9.0; extra == "frozen"
265
265
  Requires-Dist: pika==1.4.4; extra == "frozen"
266
266
  Requires-Dist: pillow==10.4.0; extra == "frozen"
267
267
  Requires-Dist: pip==26.2.1; extra == "frozen"
268
- Requires-Dist: platformdirs==4.11.4; extra == "frozen"
268
+ Requires-Dist: platformdirs==4.11.12; extra == "frozen"
269
269
  Requires-Dist: pluggy==1.6.0; extra == "frozen"
270
270
  Requires-Dist: pooch==1.9.0; extra == "frozen"
271
271
  Requires-Dist: proglog==0.1.12; extra == "frozen"
272
272
  Requires-Dist: prometheus_client==0.26.0; extra == "frozen"
273
273
  Requires-Dist: prompt_toolkit==3.0.53; extra == "frozen"
274
- Requires-Dist: propcache==0.5.2; extra == "frozen"
275
- Requires-Dist: protobuf==7.36.0; extra == "frozen"
274
+ Requires-Dist: propcache==0.5.4; extra == "frozen"
275
+ Requires-Dist: protobuf==7.36.2; extra == "frozen"
276
276
  Requires-Dist: psutil==7.2.2; extra == "frozen"
277
- Requires-Dist: psycopg==3.3.4; extra == "frozen"
278
- Requires-Dist: psycopg-binary==3.3.4; extra == "frozen"
279
- Requires-Dist: psycopg2-binary==2.9.12; extra == "frozen"
277
+ Requires-Dist: psycopg==3.3.6; extra == "frozen"
278
+ Requires-Dist: psycopg-binary==3.3.6; extra == "frozen"
279
+ Requires-Dist: psycopg2-binary==2.9.13; extra == "frozen"
280
280
  Requires-Dist: ptyprocess==0.7.0; extra == "frozen"
281
- Requires-Dist: pure_eval==0.2.3; extra == "frozen"
281
+ Requires-Dist: pure_eval==0.2.4; extra == "frozen"
282
282
  Requires-Dist: pycparser==3.0; extra == "frozen"
283
- Requires-Dist: pydantic==2.13.4; extra == "frozen"
283
+ Requires-Dist: pydantic==2.13.5; extra == "frozen"
284
284
  Requires-Dist: pydantic-extra-types==2.11.1; extra == "frozen"
285
285
  Requires-Dist: pydantic-settings==2.15.0; extra == "frozen"
286
- Requires-Dist: pydantic_core==2.46.4; extra == "frozen"
286
+ Requires-Dist: pydantic_core==2.46.5; extra == "frozen"
287
287
  Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
288
- Requires-Dist: pygtrie==2.5.0; extra == "frozen"
289
- Requires-Dist: pyparsing==3.3.2; extra == "frozen"
288
+ Requires-Dist: pygtrie==2.6.2; extra == "frozen"
289
+ Requires-Dist: pyparsing==3.3.3; extra == "frozen"
290
290
  Requires-Dist: python-daemon==3.1.2; extra == "frozen"
291
291
  Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
292
292
  Requires-Dist: python-dotenv==1.2.3; extra == "frozen"
293
293
  Requires-Dist: python-json-logger==4.2.0; extra == "frozen"
294
294
  Requires-Dist: python-multipart==0.0.32; extra == "frozen"
295
- Requires-Dist: python-slugify==8.0.4; extra == "frozen"
296
- Requires-Dist: pytz==2026.3.post1; extra == "frozen"
295
+ Requires-Dist: python-slugify==9.1.1; extra == "frozen"
296
+ Requires-Dist: pytz==2026.4; extra == "frozen"
297
297
  Requires-Dist: pyzmq==27.2.0; extra == "frozen"
298
298
  Requires-Dist: redis==6.4.0; extra == "frozen"
299
299
  Requires-Dist: referencing==0.37.0; extra == "frozen"
@@ -303,7 +303,7 @@ Requires-Dist: rfc3986-validator==0.1.1; extra == "frozen"
303
303
  Requires-Dist: rfc3987-syntax==1.1.0; extra == "frozen"
304
304
  Requires-Dist: rich==15.0.0; extra == "frozen"
305
305
  Requires-Dist: rich-argparse==1.8.0; extra == "frozen"
306
- Requires-Dist: rich-toolkit==0.20.3; extra == "frozen"
306
+ Requires-Dist: rich-toolkit==0.20.5; extra == "frozen"
307
307
  Requires-Dist: rpds-py==2026.6.3; extra == "frozen"
308
308
  Requires-Dist: s3transfer==0.19.2; extra == "frozen"
309
309
  Requires-Dist: scikit-image==0.25.2; extra == "frozen"
@@ -315,11 +315,11 @@ Requires-Dist: shellingham==1.5.4; extra == "frozen"
315
315
  Requires-Dist: six==1.17.0; extra == "frozen"
316
316
  Requires-Dist: sniffio==1.3.1; extra == "frozen"
317
317
  Requires-Dist: solar-wavelength-calibration==2.0.3; extra == "frozen"
318
- Requires-Dist: soupsieve==2.9.2; extra == "frozen"
318
+ Requires-Dist: soupsieve==2.10; extra == "frozen"
319
319
  Requires-Dist: sqids==0.5.1; extra == "frozen"
320
320
  Requires-Dist: sqlparse==0.6.0; extra == "frozen"
321
321
  Requires-Dist: stack-data==0.6.3; extra == "frozen"
322
- Requires-Dist: starlette==1.6.0; extra == "frozen"
322
+ Requires-Dist: starlette==1.7.0; extra == "frozen"
323
323
  Requires-Dist: structlog==26.1.0; extra == "frozen"
324
324
  Requires-Dist: sunpy==6.1.1; extra == "frozen"
325
325
  Requires-Dist: svcs==26.2.0; extra == "frozen"
@@ -329,37 +329,36 @@ Requires-Dist: tenacity==8.5.0; extra == "frozen"
329
329
  Requires-Dist: termcolor==3.3.0; extra == "frozen"
330
330
  Requires-Dist: terminado==0.18.1; extra == "frozen"
331
331
  Requires-Dist: text-unidecode==1.3; extra == "frozen"
332
- Requires-Dist: threadpoolctl==3.6.0; extra == "frozen"
333
- Requires-Dist: tifffile==2026.8.23; extra == "frozen"
332
+ Requires-Dist: threadpoolctl==3.7.0; extra == "frozen"
333
+ Requires-Dist: tifffile==2026.9.20; extra == "frozen"
334
334
  Requires-Dist: tinycss2==1.5.1; extra == "frozen"
335
- Requires-Dist: tornado==6.5.8; extra == "frozen"
336
- Requires-Dist: tqdm==4.70.0; extra == "frozen"
335
+ Requires-Dist: tornado==6.5.10; extra == "frozen"
336
+ Requires-Dist: tqdm==4.70.1; extra == "frozen"
337
337
  Requires-Dist: traitlets==5.16.1; extra == "frozen"
338
- Requires-Dist: typer==0.27.1; extra == "frozen"
338
+ Requires-Dist: typer==0.27.2; extra == "frozen"
339
339
  Requires-Dist: typing-inspection==0.4.4; extra == "frozen"
340
340
  Requires-Dist: typing_extensions==4.16.0; extra == "frozen"
341
- Requires-Dist: tzdata==2026.3; extra == "frozen"
341
+ Requires-Dist: tzdata==2026.4; extra == "frozen"
342
342
  Requires-Dist: tzlocal==5.4.4; extra == "frozen"
343
- Requires-Dist: uc-micro-py==2.0.0; extra == "frozen"
344
343
  Requires-Dist: uncertainties==3.2.3; extra == "frozen"
345
344
  Requires-Dist: universal_pathlib==0.3.10; extra == "frozen"
346
345
  Requires-Dist: uri-template==1.3.0; extra == "frozen"
347
- Requires-Dist: urllib3==2.7.0; extra == "frozen"
346
+ Requires-Dist: urllib3==2.8.0; extra == "frozen"
348
347
  Requires-Dist: uuid6==2025.0.1; extra == "frozen"
349
- Requires-Dist: uvicorn==0.52.4; extra == "frozen"
348
+ Requires-Dist: uvicorn==0.53.0; extra == "frozen"
350
349
  Requires-Dist: uvloop==0.22.1; extra == "frozen"
351
350
  Requires-Dist: vine==5.1.0; extra == "frozen"
352
351
  Requires-Dist: voluptuous==0.16.0; extra == "frozen"
353
- Requires-Dist: watchfiles==1.2.0; extra == "frozen"
354
- Requires-Dist: wcwidth==0.8.2; extra == "frozen"
352
+ Requires-Dist: watchfiles==1.3.0; extra == "frozen"
353
+ Requires-Dist: wcwidth==0.9.1; extra == "frozen"
355
354
  Requires-Dist: webcolors==25.10.0; extra == "frozen"
356
355
  Requires-Dist: webencodings==0.6.1; extra == "frozen"
357
- Requires-Dist: websocket-client==1.9.0; extra == "frozen"
358
- Requires-Dist: websockets==17.0.1; extra == "frozen"
356
+ Requires-Dist: websocket-client==1.9.2; extra == "frozen"
357
+ Requires-Dist: websockets==17.1; extra == "frozen"
359
358
  Requires-Dist: wirerope==1.0.0; extra == "frozen"
360
- Requires-Dist: wrapt==2.3.0; extra == "frozen"
359
+ Requires-Dist: wrapt==2.4.1; extra == "frozen"
361
360
  Requires-Dist: yamale==6.1.0; extra == "frozen"
362
- Requires-Dist: yarl==1.24.5; extra == "frozen"
361
+ Requires-Dist: yarl==1.25.1; extra == "frozen"
363
362
  Requires-Dist: zipp==4.1.0; extra == "frozen"
364
363
 
365
364
  dkist-processing-cryonirsp
@@ -4,6 +4,8 @@ from dataclasses import dataclass
4
4
  from typing import Generator
5
5
 
6
6
  import numpy as np
7
+ from astropy.io import fits
8
+ from dkist_processing_common.codecs.fits import fits_access_header_decoder
7
9
  from dkist_processing_common.codecs.fits import fits_array_encoder
8
10
  from dkist_service_configuration.logging import logger
9
11
  from numba import njit
@@ -104,22 +106,22 @@ class LinearityCorrection(CryonirspTaskBase):
104
106
  Generator which yields _RampSet instances
105
107
  """
106
108
  for ramp_set_num, time_obs in enumerate(self.constants.time_obs_list):
107
- input_objects = list(
109
+ header_objects = list(
108
110
  self.read(
109
111
  tags=[
110
112
  CryonirspTag.input(),
111
113
  CryonirspTag.frame(),
112
114
  CryonirspTag.time_obs(time_obs),
113
115
  ],
114
- decoder=cryo_fits_access_decoder,
116
+ decoder=fits_access_header_decoder,
115
117
  fits_access_class=CryonirspRampFitsAccess,
116
118
  )
117
119
  )
118
120
 
119
- if not self.is_ramp_valid(input_objects):
121
+ if not self.is_ramp_valid(header_objects):
120
122
  continue
121
123
 
122
- ramp_set = self.populate_ramp_set(time_obs, ramp_set_num)
124
+ ramp_set = self.populate_ramp_set(time_obs, ramp_set_num, header_objects)
123
125
  yield ramp_set
124
126
 
125
127
  def is_ramp_valid(self, ramp_object_list: list[CryonirspRampFitsAccess]) -> bool:
@@ -193,32 +195,21 @@ class LinearityCorrection(CryonirspTaskBase):
193
195
  fits_obj = fits_obj_list[0]
194
196
  return fits_obj
195
197
 
196
- def get_ordered_exposure_time_list(self, time_obs: str, num_frames_in_ramp: int) -> np.ndarray:
197
- """
198
- Return a list of exposure times for this ramp, ordered by frame in ramp.
199
-
200
- Parameters
201
- ----------
202
- time_obs
203
- The DATE-OBS value identifying the ramp
204
- num_frames_in_ramp
205
- The number of frames in the ramp
206
-
207
- Returns
208
- -------
209
- np.ndarray of the exposure times for the NDRs in the ramp set.
210
-
211
- This method iterates through all the frames in the ramp to construct the list. While this could
212
- be incorporated into other methods that iterate through a ramp set, it is kept separate for clarity.
213
- We read one frame at a time to not have all the frames in memory simultaneously.
214
- """
215
- exp_time_list = []
216
- for frame_num in range(1, num_frames_in_ramp + 1):
217
- fits_obj = self.read_single_ramp_frame(time_obs, frame_num)
218
- exp_time_list.append(fits_obj.fpa_exposure_time_ms)
219
- return np.array(exp_time_list, dtype=np.float32)
220
-
221
- def populate_ramp_set(self, time_obs: str, idx: int) -> _RampSet | None:
198
+ @staticmethod
199
+ def get_frame_shape_from_header(header: fits.Header) -> tuple[int, ...]:
200
+ """Return the data shape using only FITS header metadata."""
201
+ axis_key = "ZNAXIS" if "ZNAXIS" in header else "NAXIS"
202
+ frame_shape = tuple(header[f"{axis_key}{axis}"] for axis in range(header[axis_key], 0, -1))
203
+ if len(frame_shape) == 3 and frame_shape[0] == 1:
204
+ frame_shape = frame_shape[1:]
205
+ return frame_shape
206
+
207
+ def populate_ramp_set(
208
+ self,
209
+ time_obs: str,
210
+ idx: int,
211
+ ramp_object_list: list[CryonirspRampFitsAccess],
212
+ ) -> _RampSet:
222
213
  """
223
214
  Populate a _RampSet dataclass for the ramp identified by time_obs.
224
215
 
@@ -228,16 +219,21 @@ class LinearityCorrection(CryonirspTaskBase):
228
219
  The DATE-OBS value identifying the ramp
229
220
  idx
230
221
  The index number representing this ramp set out of the total number of ramp sets (zero-based)
222
+ ramp_object_list
223
+ Header-only objects for all frames in the ramp
231
224
 
232
225
  Returns
233
226
  -------
234
227
  A populated _RampSet object representing the specified ramp in the input data set
235
228
 
236
- The last frame in the set is read to access the shape of the data frame.
229
+ All metadata is reused from the header-only objects loaded during ramp validation.
237
230
  """
238
- actual_num_frames_in_ramp = self.count(CryonirspTag.time_obs(time_obs))
239
- exp_times = self.get_ordered_exposure_time_list(time_obs, actual_num_frames_in_ramp)
240
- last_frame = self.read_single_ramp_frame(time_obs, actual_num_frames_in_ramp)
231
+ ordered_objects = sorted(ramp_object_list, key=lambda fo: fo.curr_frame_in_ramp)
232
+ actual_num_frames_in_ramp = len(ordered_objects)
233
+ exp_times = np.array(
234
+ [fits_obj.fpa_exposure_time_ms for fits_obj in ordered_objects], dtype=np.float32
235
+ )
236
+ last_frame = ordered_objects[-1]
241
237
  ramp_set_num = idx + 1
242
238
  # The default list of curr_frame_in_ramp tag numbers to use, which may be altered later on
243
239
  frames_to_process = np.array(range(1, actual_num_frames_in_ramp + 1), dtype=int)
@@ -246,7 +242,7 @@ class LinearityCorrection(CryonirspTaskBase):
246
242
  time_obs=time_obs,
247
243
  num_frames_in_ramp=actual_num_frames_in_ramp,
248
244
  exposure_times_ms=exp_times,
249
- frame_shape=last_frame.data.shape,
245
+ frame_shape=self.get_frame_shape_from_header(last_frame.header),
250
246
  last_frame_name=last_frame.name,
251
247
  last_frame_fits_access=CryonirspRampFitsAccess(header=last_frame.header),
252
248
  frames_to_process=frames_to_process,
@@ -301,7 +297,7 @@ class LinearityCorrection(CryonirspTaskBase):
301
297
  'LookUpTable','FastCDS','FitUpTheRamp' (ignored if data is line by line)
302
298
 
303
299
  camera_readout_mode
304
- ‘FastUpTheRamp, ‘SlowUpTheRamp’, or 'LineByLine’
300
+ 'FastUpTheRamp', 'SlowUpTheRamp', or 'LineByLine'
305
301
 
306
302
  lin_curve
307
303
  The lincurve array is the set of coefficients for a 3rd order polynomial which represents the overall
@@ -391,7 +387,7 @@ class LinearityCorrection(CryonirspTaskBase):
391
387
  e. Store the linearized chunk in the proper location in the final linearized array
392
388
  3. Return the linearized ramp, reshaping it to the original frame shape
393
389
  """
394
- thresholds_flattened = thresholds.flatten()
390
+ thresholds_flattened = thresholds.ravel(order="C")
395
391
  frame_shape = ramp_set.frame_shape
396
392
  linearized_frame = np.zeros(np.prod(frame_shape), dtype=np.float32)
397
393
  num_frame_size_elements = int(np.prod(frame_shape))
@@ -463,7 +459,9 @@ class LinearityCorrection(CryonirspTaskBase):
463
459
  for frame_num in ramp_set.frames_to_process:
464
460
  frame = self.read_single_ramp_frame(ramp_set.time_obs, frame_num).data
465
461
  frame_pos_in_stack = frame_num - ramp_set.index_offset_to_first_frame
466
- chunk_stack[:current_chunk_size, frame_pos_in_stack] = frame.flatten()[current_slice]
462
+ chunk_stack[:current_chunk_size, frame_pos_in_stack] = frame.ravel(order="C")[
463
+ current_slice
464
+ ]
467
465
  return chunk_stack
468
466
 
469
467
  def compute_linear_chunk_size(self, frame_size_nelem: int, num_frames_in_ramp: int) -> int: