dkist-processing-cryonirsp 1.11.1__tar.gz → 1.12.0__tar.gz

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

Potentially problematic release.


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

Files changed (127) hide show
  1. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/.pre-commit-config.yaml +2 -2
  2. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/CHANGELOG.rst +15 -0
  3. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/PKG-INFO +13 -13
  4. dkist_processing_cryonirsp-1.12.0/dkist_processing_cryonirsp/parsers/measurements.py +64 -0
  5. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/scan_step.py +11 -4
  6. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_parse.py +1 -0
  7. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp.egg-info/PKG-INFO +13 -13
  8. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp.egg-info/requires.txt +12 -12
  9. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/pyproject.toml +14 -14
  10. dkist_processing_cryonirsp-1.11.1/dkist_processing_cryonirsp/parsers/measurements.py +0 -55
  11. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/.gitignore +0 -0
  12. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/.readthedocs.yml +0 -0
  13. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/.snyk +0 -0
  14. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/README.rst +0 -0
  15. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/SCIENCE_CHANGELOG.rst +0 -0
  16. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/bitbucket-pipelines.yml +0 -0
  17. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/changelog/.gitempty +0 -0
  18. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/__init__.py +0 -0
  19. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/codecs/__init__.py +0 -0
  20. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/codecs/fits.py +0 -0
  21. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/config.py +0 -0
  22. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/models/__init__.py +0 -0
  23. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/models/beam_boundaries.py +0 -0
  24. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/models/constants.py +0 -0
  25. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
  26. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/models/parameters.py +0 -0
  27. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/models/tags.py +0 -0
  28. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/models/task_name.py +0 -0
  29. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
  30. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/check_for_gains.py +0 -0
  31. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
  32. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
  33. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
  34. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
  35. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
  36. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
  37. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
  38. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/time.py +0 -0
  39. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
  40. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
  41. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
  42. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
  43. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
  44. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
  45. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
  46. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
  47. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
  48. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
  49. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
  50. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
  51. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
  52. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
  53. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
  54. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
  55. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
  56. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
  57. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
  58. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
  59. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
  60. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
  61. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
  62. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
  63. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +0 -0
  64. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
  65. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
  66. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/conftest.py +0 -0
  67. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
  68. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
  69. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -0
  70. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
  71. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
  72. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
  73. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
  74. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +0 -0
  75. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
  76. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
  77. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
  78. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
  79. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
  80. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
  81. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
  82. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
  83. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
  84. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
  85. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
  86. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
  87. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
  88. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
  89. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
  90. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
  91. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
  92. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
  93. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py +0 -0
  94. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
  95. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
  96. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
  97. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
  98. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
  99. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
  100. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
  101. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -0
  102. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
  103. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
  104. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/Makefile +0 -0
  105. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/bad_pixel_calibration.rst +0 -0
  106. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/beam_angle_calculation.rst +0 -0
  107. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/beam_boundary_computation.rst +0 -0
  108. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/changelog.rst +0 -0
  109. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/ci_science_calibration.rst +0 -0
  110. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/conf.py +0 -0
  111. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/index.rst +0 -0
  112. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
  113. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
  114. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
  115. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
  116. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/landing_page.rst +0 -0
  117. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/linearization.rst +0 -0
  118. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/make.bat +0 -0
  119. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/requirements.txt +0 -0
  120. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/requirements_table.rst +0 -0
  121. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/scientific_changelog.rst +0 -0
  122. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/sp_science_calibration.rst +0 -0
  123. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/docs/wavelength_calibration.rst +0 -0
  124. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/licenses/LICENSE.rst +0 -0
  125. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/science_towncrier.sh +0 -0
  126. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/setup.cfg +0 -0
  127. {dkist_processing_cryonirsp-1.11.1 → dkist_processing_cryonirsp-1.12.0}/towncrier_science.toml +0 -0
@@ -2,7 +2,7 @@
2
2
  # See https://pre-commit.com/hooks.html for more hooks
3
3
  repos:
4
4
  - repo: https://github.com/pre-commit/pre-commit-hooks
5
- rev: v4.4.0
5
+ rev: v5.0.0
6
6
  hooks:
7
7
  - id: trailing-whitespace
8
8
  - id: end-of-file-fixer
@@ -28,6 +28,6 @@ repos:
28
28
  - --convention=numpy
29
29
  - --add-ignore=D105
30
30
  - repo: https://bitbucket.org/dkistdc/pre-commit-hooks
31
- rev: v1.0.0
31
+ rev: v1.0.2
32
32
  hooks:
33
33
  - id: calibration-workflow-name
@@ -1,3 +1,18 @@
1
+ v1.12.0 (2025-07-30)
2
+ ====================
3
+
4
+ Features
5
+ --------
6
+
7
+ - Enable handling of single-map, single-step observations with repeated measurements that end in an abort. (`#212 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/212>`__)
8
+
9
+
10
+ Misc
11
+ ----
12
+
13
+ - Update some pre-commit hook versions. (`#213 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/213>`__)
14
+
15
+
1
16
  v1.11.1 (2025-07-28)
2
17
  ====================
3
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 1.11.1
3
+ Version: 1.12.0
4
4
  Summary: Science processing code for the Cryo-NIRSP instrument on DKIST
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -89,7 +89,7 @@ Requires-Dist: WTForms==3.2.1; extra == "frozen"
89
89
  Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
90
90
  Requires-Dist: aioftp==0.26.2; extra == "frozen"
91
91
  Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
92
- Requires-Dist: aiohttp==3.12.14; extra == "frozen"
92
+ Requires-Dist: aiohttp==3.12.15; extra == "frozen"
93
93
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
94
94
  Requires-Dist: alembic==1.16.4; extra == "frozen"
95
95
  Requires-Dist: amqp==5.3.1; extra == "frozen"
@@ -121,8 +121,8 @@ Requires-Dist: attrs==25.3.0; extra == "frozen"
121
121
  Requires-Dist: babel==2.17.0; extra == "frozen"
122
122
  Requires-Dist: billiard==4.2.1; extra == "frozen"
123
123
  Requires-Dist: blinker==1.9.0; extra == "frozen"
124
- Requires-Dist: boto3==1.39.14; extra == "frozen"
125
- Requires-Dist: botocore==1.39.14; extra == "frozen"
124
+ Requires-Dist: boto3==1.39.16; extra == "frozen"
125
+ Requires-Dist: botocore==1.39.16; extra == "frozen"
126
126
  Requires-Dist: cachelib==0.13.0; extra == "frozen"
127
127
  Requires-Dist: celery==5.5.3; extra == "frozen"
128
128
  Requires-Dist: certifi==2025.7.14; extra == "frozen"
@@ -147,7 +147,7 @@ Requires-Dist: dill==0.4.0; extra == "frozen"
147
147
  Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
148
148
  Requires-Dist: dkist-processing-common==11.2.0; extra == "frozen"
149
149
  Requires-Dist: dkist-processing-core==5.1.1; extra == "frozen"
150
- Requires-Dist: dkist-processing-cryonirsp==1.11.1; extra == "frozen"
150
+ Requires-Dist: dkist-processing-cryonirsp==1.12.0; extra == "frozen"
151
151
  Requires-Dist: dkist-processing-math==2.2.0; extra == "frozen"
152
152
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
153
153
  Requires-Dist: dkist-service-configuration==2.2; extra == "frozen"
@@ -209,14 +209,14 @@ Requires-Dist: networkx==3.5; extra == "frozen"
209
209
  Requires-Dist: numba==0.61.2; extra == "frozen"
210
210
  Requires-Dist: numpy==2.2.5; extra == "frozen"
211
211
  Requires-Dist: object-clerk==0.1.2; extra == "frozen"
212
- Requires-Dist: opentelemetry-api==1.35.0; extra == "frozen"
213
- Requires-Dist: opentelemetry-exporter-otlp==1.35.0; extra == "frozen"
214
- Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.35.0; extra == "frozen"
215
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.35.0; extra == "frozen"
216
- Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.35.0; extra == "frozen"
217
- Requires-Dist: opentelemetry-proto==1.35.0; extra == "frozen"
218
- Requires-Dist: opentelemetry-sdk==1.35.0; extra == "frozen"
219
- Requires-Dist: opentelemetry-semantic-conventions==0.56b0; extra == "frozen"
212
+ Requires-Dist: opentelemetry-api==1.36.0; extra == "frozen"
213
+ Requires-Dist: opentelemetry-exporter-otlp==1.36.0; extra == "frozen"
214
+ Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.36.0; extra == "frozen"
215
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.36.0; extra == "frozen"
216
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.36.0; extra == "frozen"
217
+ Requires-Dist: opentelemetry-proto==1.36.0; extra == "frozen"
218
+ Requires-Dist: opentelemetry-sdk==1.36.0; extra == "frozen"
219
+ Requires-Dist: opentelemetry-semantic-conventions==0.57b0; extra == "frozen"
220
220
  Requires-Dist: ordered-set==4.1.0; extra == "frozen"
221
221
  Requires-Dist: packaging==25.0; extra == "frozen"
222
222
  Requires-Dist: pandas==2.3.1; extra == "frozen"
@@ -0,0 +1,64 @@
1
+ """Copies of UniqueBud and SingleValueSingleKeyFlower from common that only activate if the frames are "observe" task."""
2
+ from typing import Hashable
3
+ from typing import Type
4
+
5
+ from dkist_processing_common.models.flower_pot import SpilledDirt
6
+ from dkist_processing_common.parsers.single_value_single_key_flower import (
7
+ SingleValueSingleKeyFlower,
8
+ )
9
+
10
+ from dkist_processing_cryonirsp.models.constants import CryonirspBudName
11
+ from dkist_processing_cryonirsp.models.tags import CryonirspStemName
12
+ from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspL0FitsAccess
13
+ from dkist_processing_cryonirsp.parsers.scan_step import NumberOfScanStepsBase
14
+
15
+
16
+ class NumberOfMeasurementsBud(NumberOfScanStepsBase):
17
+ """Bud for finding the total number of measurements per scan step."""
18
+
19
+ def __init__(self):
20
+ self.metadata_key = "num_meas"
21
+ super().__init__(stem_name=CryonirspBudName.num_meas.value)
22
+
23
+ def getter(self, key: Hashable) -> Hashable:
24
+ """
25
+ Search all scan steps to find the maximum number of measurements in a step.
26
+
27
+ This maximum number should be the same for all measurements, with the possible exception of the last one in
28
+ an abort.
29
+
30
+ Abort possibilities:
31
+ * if a measurement is missing in the last scan step of a multi-scan, multi-map observation, it will be handled
32
+ as an incomplete scan step and truncated by the scan step abort handler.
33
+ * if a measurement is missing in a single-map, single-scan observation then the number of measurements will be
34
+ given by the last measurement value that had as many frames as the maximum number of frames of any
35
+ measurement.
36
+ This is a formality for intensity mode observations but is an important check for polarimetric data as the
37
+ abort may have happened in the middle of the modulator state sequence.
38
+ """
39
+ measurements_in_scan_steps = []
40
+ for meas_dict in self.scan_step_dict.values():
41
+ measurements_in_scan_steps.append(len(meas_dict))
42
+ return max(
43
+ measurements_in_scan_steps
44
+ ) # if there are incomplete measurements, they should be at the end and will be truncated by an incomplete scan step
45
+
46
+
47
+ class MeasurementNumberFlower(SingleValueSingleKeyFlower):
48
+ """Flower for a measurement number."""
49
+
50
+ def __init__(self):
51
+ super().__init__(tag_stem_name=CryonirspStemName.meas_num.value, metadata_key="meas_num")
52
+
53
+ def setter(self, fits_obj: CryonirspL0FitsAccess) -> Type[SpilledDirt] | int:
54
+ """
55
+ Setter for a flower.
56
+
57
+ Parameters
58
+ ----------
59
+ fits_obj:
60
+ A single FitsAccess object
61
+ """
62
+ if fits_obj.ip_task_type != "observe":
63
+ return SpilledDirt
64
+ return super().setter(fits_obj)
@@ -312,11 +312,11 @@ class MapScanStepStemBase(Stem, ABC):
312
312
  return step_list.index(scan_step_obj) + 1 # Here we decide that map scan indices start at 1
313
313
 
314
314
 
315
- class NumberOfScanStepsBud(MapScanStepStemBase):
316
- """Bud for finding the total number of scan steps."""
315
+ class NumberOfScanStepsBase(MapScanStepStemBase, ABC):
316
+ """Base class for managing scan steps."""
317
317
 
318
- def __init__(self):
319
- super().__init__(stem_name=CryonirspBudName.num_scan_steps.value)
318
+ def __init__(self, stem_name: CryonirspBudName):
319
+ super().__init__(stem_name=stem_name)
320
320
 
321
321
  @cached_property
322
322
  def map_scan_to_obj_dict(self) -> dict[int, list[SingleScanStep]]:
@@ -361,6 +361,13 @@ class NumberOfScanStepsBud(MapScanStepStemBase):
361
361
 
362
362
  return len(completed_steps)
363
363
 
364
+
365
+ class NumberOfScanStepsBud(NumberOfScanStepsBase):
366
+ """Bud for finding the total number of scan steps."""
367
+
368
+ def __init__(self):
369
+ super().__init__(stem_name=CryonirspBudName.num_scan_steps.value)
370
+
364
371
  def getter(self, key):
365
372
  """
366
373
  Compute the number of complete scan steps.
@@ -980,6 +980,7 @@ def test_parse_cryonirsp_linearized_incomplete_raster_scan(
980
980
 
981
981
  assert task.constants._db_dict[CryonirspBudName.num_scan_steps.value] == num_scan_steps - 1
982
982
  assert task.constants._db_dict[CryonirspBudName.num_map_scans.value] == num_map_scans
983
+ assert task.constants._db_dict[CryonirspBudName.num_meas.value] == 2
983
984
 
984
985
 
985
986
  @pytest.mark.parametrize("arm_id", ["CI", "SP"])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 1.11.1
3
+ Version: 1.12.0
4
4
  Summary: Science processing code for the Cryo-NIRSP instrument on DKIST
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -89,7 +89,7 @@ Requires-Dist: WTForms==3.2.1; extra == "frozen"
89
89
  Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
90
90
  Requires-Dist: aioftp==0.26.2; extra == "frozen"
91
91
  Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
92
- Requires-Dist: aiohttp==3.12.14; extra == "frozen"
92
+ Requires-Dist: aiohttp==3.12.15; extra == "frozen"
93
93
  Requires-Dist: aiosignal==1.4.0; extra == "frozen"
94
94
  Requires-Dist: alembic==1.16.4; extra == "frozen"
95
95
  Requires-Dist: amqp==5.3.1; extra == "frozen"
@@ -121,8 +121,8 @@ Requires-Dist: attrs==25.3.0; extra == "frozen"
121
121
  Requires-Dist: babel==2.17.0; extra == "frozen"
122
122
  Requires-Dist: billiard==4.2.1; extra == "frozen"
123
123
  Requires-Dist: blinker==1.9.0; extra == "frozen"
124
- Requires-Dist: boto3==1.39.14; extra == "frozen"
125
- Requires-Dist: botocore==1.39.14; extra == "frozen"
124
+ Requires-Dist: boto3==1.39.16; extra == "frozen"
125
+ Requires-Dist: botocore==1.39.16; extra == "frozen"
126
126
  Requires-Dist: cachelib==0.13.0; extra == "frozen"
127
127
  Requires-Dist: celery==5.5.3; extra == "frozen"
128
128
  Requires-Dist: certifi==2025.7.14; extra == "frozen"
@@ -147,7 +147,7 @@ Requires-Dist: dill==0.4.0; extra == "frozen"
147
147
  Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
148
148
  Requires-Dist: dkist-processing-common==11.2.0; extra == "frozen"
149
149
  Requires-Dist: dkist-processing-core==5.1.1; extra == "frozen"
150
- Requires-Dist: dkist-processing-cryonirsp==1.11.1; extra == "frozen"
150
+ Requires-Dist: dkist-processing-cryonirsp==1.12.0; extra == "frozen"
151
151
  Requires-Dist: dkist-processing-math==2.2.0; extra == "frozen"
152
152
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
153
153
  Requires-Dist: dkist-service-configuration==2.2; extra == "frozen"
@@ -209,14 +209,14 @@ Requires-Dist: networkx==3.5; extra == "frozen"
209
209
  Requires-Dist: numba==0.61.2; extra == "frozen"
210
210
  Requires-Dist: numpy==2.2.5; extra == "frozen"
211
211
  Requires-Dist: object-clerk==0.1.2; extra == "frozen"
212
- Requires-Dist: opentelemetry-api==1.35.0; extra == "frozen"
213
- Requires-Dist: opentelemetry-exporter-otlp==1.35.0; extra == "frozen"
214
- Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.35.0; extra == "frozen"
215
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.35.0; extra == "frozen"
216
- Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.35.0; extra == "frozen"
217
- Requires-Dist: opentelemetry-proto==1.35.0; extra == "frozen"
218
- Requires-Dist: opentelemetry-sdk==1.35.0; extra == "frozen"
219
- Requires-Dist: opentelemetry-semantic-conventions==0.56b0; extra == "frozen"
212
+ Requires-Dist: opentelemetry-api==1.36.0; extra == "frozen"
213
+ Requires-Dist: opentelemetry-exporter-otlp==1.36.0; extra == "frozen"
214
+ Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.36.0; extra == "frozen"
215
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.36.0; extra == "frozen"
216
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.36.0; extra == "frozen"
217
+ Requires-Dist: opentelemetry-proto==1.36.0; extra == "frozen"
218
+ Requires-Dist: opentelemetry-sdk==1.36.0; extra == "frozen"
219
+ Requires-Dist: opentelemetry-semantic-conventions==0.57b0; extra == "frozen"
220
220
  Requires-Dist: ordered-set==4.1.0; extra == "frozen"
221
221
  Requires-Dist: packaging==25.0; extra == "frozen"
222
222
  Requires-Dist: pandas==2.3.1; extra == "frozen"
@@ -57,7 +57,7 @@ WTForms==3.2.1
57
57
  Werkzeug==2.2.3
58
58
  aioftp==0.26.2
59
59
  aiohappyeyeballs==2.6.1
60
- aiohttp==3.12.14
60
+ aiohttp==3.12.15
61
61
  aiosignal==1.4.0
62
62
  alembic==1.16.4
63
63
  amqp==5.3.1
@@ -89,8 +89,8 @@ attrs==25.3.0
89
89
  babel==2.17.0
90
90
  billiard==4.2.1
91
91
  blinker==1.9.0
92
- boto3==1.39.14
93
- botocore==1.39.14
92
+ boto3==1.39.16
93
+ botocore==1.39.16
94
94
  cachelib==0.13.0
95
95
  celery==5.5.3
96
96
  certifi==2025.7.14
@@ -115,7 +115,7 @@ dill==0.4.0
115
115
  dkist-header-validator==5.2.1
116
116
  dkist-processing-common==11.2.0
117
117
  dkist-processing-core==5.1.1
118
- dkist-processing-cryonirsp==1.11.1
118
+ dkist-processing-cryonirsp==1.12.0
119
119
  dkist-processing-math==2.2.0
120
120
  dkist-processing-pac==3.1.1
121
121
  dkist-service-configuration==2.2
@@ -177,14 +177,14 @@ networkx==3.5
177
177
  numba==0.61.2
178
178
  numpy==2.2.5
179
179
  object-clerk==0.1.2
180
- opentelemetry-api==1.35.0
181
- opentelemetry-exporter-otlp==1.35.0
182
- opentelemetry-exporter-otlp-proto-common==1.35.0
183
- opentelemetry-exporter-otlp-proto-grpc==1.35.0
184
- opentelemetry-exporter-otlp-proto-http==1.35.0
185
- opentelemetry-proto==1.35.0
186
- opentelemetry-sdk==1.35.0
187
- opentelemetry-semantic-conventions==0.56b0
180
+ opentelemetry-api==1.36.0
181
+ opentelemetry-exporter-otlp==1.36.0
182
+ opentelemetry-exporter-otlp-proto-common==1.36.0
183
+ opentelemetry-exporter-otlp-proto-grpc==1.36.0
184
+ opentelemetry-exporter-otlp-proto-http==1.36.0
185
+ opentelemetry-proto==1.36.0
186
+ opentelemetry-sdk==1.36.0
187
+ opentelemetry-semantic-conventions==0.57b0
188
188
  ordered-set==4.1.0
189
189
  packaging==25.0
190
190
  pandas==2.3.1
@@ -9,8 +9,8 @@ find = {}
9
9
 
10
10
  [tool.dkist-dev-tools]
11
11
  # Most recently frozen version by dkist-dev-tools
12
- version = "1.11.1"
13
- date = 2025-07-28T09:56:20.936915
12
+ version = "1.12.0"
13
+ date = 2025-07-30T10:52:13.538948
14
14
 
15
15
  [project]
16
16
  dynamic = ["version"]
@@ -117,7 +117,7 @@ frozen = [
117
117
  "Werkzeug == 2.2.3",
118
118
  "aioftp == 0.26.2",
119
119
  "aiohappyeyeballs == 2.6.1",
120
- "aiohttp == 3.12.14",
120
+ "aiohttp == 3.12.15",
121
121
  "aiosignal == 1.4.0",
122
122
  "alembic == 1.16.4",
123
123
  "amqp == 5.3.1",
@@ -149,8 +149,8 @@ frozen = [
149
149
  "babel == 2.17.0",
150
150
  "billiard == 4.2.1",
151
151
  "blinker == 1.9.0",
152
- "boto3 == 1.39.14",
153
- "botocore == 1.39.14",
152
+ "boto3 == 1.39.16",
153
+ "botocore == 1.39.16",
154
154
  "cachelib == 0.13.0",
155
155
  "celery == 5.5.3",
156
156
  "certifi == 2025.7.14",
@@ -175,7 +175,7 @@ frozen = [
175
175
  "dkist-header-validator == 5.2.1",
176
176
  "dkist-processing-common == 11.2.0",
177
177
  "dkist-processing-core == 5.1.1",
178
- "dkist-processing-cryonirsp == 1.11.1",
178
+ "dkist-processing-cryonirsp == 1.12.0",
179
179
  "dkist-processing-math == 2.2.0",
180
180
  "dkist-processing-pac == 3.1.1",
181
181
  "dkist-service-configuration == 2.2",
@@ -237,14 +237,14 @@ frozen = [
237
237
  "numba == 0.61.2",
238
238
  "numpy == 2.2.5",
239
239
  "object-clerk == 0.1.2",
240
- "opentelemetry-api == 1.35.0",
241
- "opentelemetry-exporter-otlp == 1.35.0",
242
- "opentelemetry-exporter-otlp-proto-common == 1.35.0",
243
- "opentelemetry-exporter-otlp-proto-grpc == 1.35.0",
244
- "opentelemetry-exporter-otlp-proto-http == 1.35.0",
245
- "opentelemetry-proto == 1.35.0",
246
- "opentelemetry-sdk == 1.35.0",
247
- "opentelemetry-semantic-conventions == 0.56b0",
240
+ "opentelemetry-api == 1.36.0",
241
+ "opentelemetry-exporter-otlp == 1.36.0",
242
+ "opentelemetry-exporter-otlp-proto-common == 1.36.0",
243
+ "opentelemetry-exporter-otlp-proto-grpc == 1.36.0",
244
+ "opentelemetry-exporter-otlp-proto-http == 1.36.0",
245
+ "opentelemetry-proto == 1.36.0",
246
+ "opentelemetry-sdk == 1.36.0",
247
+ "opentelemetry-semantic-conventions == 0.57b0",
248
248
  "ordered-set == 4.1.0",
249
249
  "packaging == 25.0",
250
250
  "pandas == 2.3.1",
@@ -1,55 +0,0 @@
1
- """Copies of UniqueBud and SingleValueSingleKeyFlower from common that only activate if the frames are "observe" task."""
2
- from typing import Type
3
-
4
- from dkist_processing_common.models.flower_pot import SpilledDirt
5
- from dkist_processing_common.parsers.single_value_single_key_flower import (
6
- SingleValueSingleKeyFlower,
7
- )
8
- from dkist_processing_common.parsers.unique_bud import UniqueBud
9
-
10
- from dkist_processing_cryonirsp.models.constants import CryonirspBudName
11
- from dkist_processing_cryonirsp.models.tags import CryonirspStemName
12
- from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspL0FitsAccess
13
-
14
-
15
- class NumberOfMeasurementsBud(UniqueBud):
16
- """Bud for finding the total number of measurements per scan step."""
17
-
18
- def __init__(self):
19
- self.metadata_key = "num_meas"
20
- super().__init__(
21
- constant_name=CryonirspBudName.num_meas.value, metadata_key=self.metadata_key
22
- )
23
-
24
- def setter(self, fits_obj: CryonirspL0FitsAccess) -> Type[SpilledDirt] | int:
25
- """
26
- Setter for the bud.
27
-
28
- Parameters
29
- ----------
30
- fits_obj:
31
- A single FitsAccess object
32
- """
33
- if fits_obj.ip_task_type != "observe":
34
- return SpilledDirt
35
- return getattr(fits_obj, self.metadata_key)
36
-
37
-
38
- class MeasurementNumberFlower(SingleValueSingleKeyFlower):
39
- """Flower for a measurement number."""
40
-
41
- def __init__(self):
42
- super().__init__(tag_stem_name=CryonirspStemName.meas_num.value, metadata_key="meas_num")
43
-
44
- def setter(self, fits_obj: CryonirspL0FitsAccess) -> Type[SpilledDirt] | int:
45
- """
46
- Setter for a flower.
47
-
48
- Parameters
49
- ----------
50
- fits_obj:
51
- A single FitsAccess object
52
- """
53
- if fits_obj.ip_task_type != "observe":
54
- return SpilledDirt
55
- return super().setter(fits_obj)