dkist-processing-cryonirsp 0.0.59__tar.gz → 0.0.61__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 (124) hide show
  1. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/CHANGELOG.rst +18 -0
  2. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/PKG-INFO +2 -1
  3. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/l1_output_data.py +5 -5
  4. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/trial_output_data.py +6 -0
  5. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +10 -11
  6. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +29 -70
  7. dkist_processing_cryonirsp-0.0.61/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +515 -0
  8. dkist_processing_cryonirsp-0.0.61/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +79 -0
  9. dkist_processing_cryonirsp-0.0.61/dkist_processing_cryonirsp/tests/test_trial_output_data.py +252 -0
  10. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +5 -5
  11. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +5 -5
  12. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/workflows/trial_workflows.py +66 -4
  13. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp.egg-info/PKG-INFO +2 -1
  14. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +2 -2
  15. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp.egg-info/requires.txt +5 -1
  16. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/setup.cfg +4 -1
  17. dkist_processing_cryonirsp-0.0.59/dkist_processing_cryonirsp/tests/test_build_quality_report.py +0 -99
  18. dkist_processing_cryonirsp-0.0.59/dkist_processing_cryonirsp/tests/test_submit_qualilty.py +0 -59
  19. dkist_processing_cryonirsp-0.0.59/dkist_processing_cryonirsp/tests/test_trial_output_data.py +0 -157
  20. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/.gitignore +0 -0
  21. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/.pre-commit-config.yaml +0 -0
  22. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/.readthedocs.yml +0 -0
  23. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/README.rst +0 -0
  24. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/SCIENCE_CHANGELOG.rst +0 -0
  25. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/bitbucket-pipelines.yml +0 -0
  26. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/changelog/.gitempty +0 -0
  27. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/check_changelog_updated.sh +0 -0
  28. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/__init__.py +0 -0
  29. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/models/__init__.py +0 -0
  30. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/models/constants.py +0 -0
  31. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
  32. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/models/parameters.py +0 -0
  33. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/models/tags.py +0 -0
  34. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/models/task_name.py +0 -0
  35. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
  36. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
  37. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
  38. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
  39. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
  40. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
  41. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
  42. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
  43. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
  44. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
  45. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/time.py +0 -0
  46. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
  47. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
  48. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
  49. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
  50. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
  51. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
  52. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
  53. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
  54. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
  55. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
  56. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
  57. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
  58. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
  59. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
  60. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/mixin/beam_access.py +0 -0
  61. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
  62. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/mixin/intermediate_frame.py +0 -0
  63. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/mixin/linearized_frame.py +0 -0
  64. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
  65. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
  66. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
  67. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
  68. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
  69. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
  70. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
  71. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
  72. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
  73. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
  74. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/conftest.py +0 -0
  75. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
  76. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
  77. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
  78. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +0 -0
  79. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
  80. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
  81. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
  82. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
  83. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
  84. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
  85. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
  86. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
  87. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
  88. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
  89. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
  90. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
  91. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
  92. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_parse.py +0 -0
  93. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
  94. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
  95. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
  96. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
  97. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
  98. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
  99. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
  100. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
  101. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
  102. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
  103. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
  104. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/Makefile +0 -0
  105. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/bad_pixel_calibration.rst +0 -0
  106. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/beam_angle_calculation.rst +0 -0
  107. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/beam_boundary_computation.rst +0 -0
  108. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/changelog.rst +0 -0
  109. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/ci_science_calibration.rst +0 -0
  110. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/conf.py +0 -0
  111. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/index.rst +0 -0
  112. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
  113. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
  114. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/linearization.rst +0 -0
  115. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/make.bat +0 -0
  116. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/requirements.txt +0 -0
  117. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/requirements_table.rst +0 -0
  118. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/scientific_changelog.rst +0 -0
  119. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/docs/sp_science_calibration.rst +0 -0
  120. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/licenses/LICENSE.rst +0 -0
  121. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/pyproject.toml +0 -0
  122. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/science_towncrier.sh +0 -0
  123. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/setup.py +0 -0
  124. {dkist_processing_cryonirsp-0.0.59 → dkist_processing_cryonirsp-0.0.61}/towncrier_science.toml +0 -0
@@ -1,3 +1,21 @@
1
+ v0.0.61 (2024-05-09)
2
+ ====================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Bumped common to 6.2.3 (`#123 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/123>`__)
8
+
9
+
10
+ v0.0.60 (2024-05-07)
11
+ ====================
12
+
13
+ Features
14
+ --------
15
+
16
+ - Add the ability to create a quality report from a trial workflow. (`#121 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/121>`__)
17
+
18
+
1
19
  v0.0.59 (2024-05-06)
2
20
  ====================
3
21
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dkist_processing_cryonirsp
3
- Version: 0.0.59
3
+ Version: 0.0.61
4
4
  Summary: Science processing code for the Cryo-NIRSP instrument on DKIST
5
5
  Home-page: https://bitbucket.org/dkistdc/dkist_processing_cryonirsp/src/main/
6
6
  Author: NSO / AURA
@@ -13,6 +13,7 @@ Requires-Python: >=3.11
13
13
  Provides-Extra: test
14
14
  Provides-Extra: inventory
15
15
  Provides-Extra: asdf
16
+ Provides-Extra: quality
16
17
  Provides-Extra: grogu
17
18
  Provides-Extra: docs
18
19
 
@@ -1,10 +1,10 @@
1
- """Subclasses of SubmitQuality that cause the correct polcal metrics to build."""
2
- from dkist_processing_common.tasks import SubmitQuality
1
+ """Subclasses of AssembleQualityData that cause the correct polcal metrics to build."""
2
+ from dkist_processing_common.tasks import AssembleQualityData
3
3
 
4
- __all__ = ["CISubmitQuality", "SPSubmitQuality"]
4
+ __all__ = ["CIAssembleQualityData", "SPAssembleQualityData"]
5
5
 
6
6
 
7
- class CISubmitQuality(SubmitQuality):
7
+ class CIAssembleQualityData(AssembleQualityData):
8
8
  """Subclass just so that the polcal_label_list can be populated."""
9
9
 
10
10
  @property
@@ -13,7 +13,7 @@ class CISubmitQuality(SubmitQuality):
13
13
  return ["CI Beam 1"]
14
14
 
15
15
 
16
- class SPSubmitQuality(SubmitQuality):
16
+ class SPAssembleQualityData(AssembleQualityData):
17
17
  """Subclass just so that the polcal_label_list can be populated."""
18
18
 
19
19
  @property
@@ -52,4 +52,10 @@ class TransferCryoTrialData(TransferTrialDataBase):
52
52
  if self.output_asdf_switch:
53
53
  transfer_list += self.build_output_asdf_transfer_list()
54
54
 
55
+ if self.output_quality_report_switch:
56
+ transfer_list += self.build_output_quality_report_transfer_list()
57
+
58
+ if self.output_quality_data_switch:
59
+ transfer_list += self.build_output_quality_data_transfer_list()
60
+
55
61
  return transfer_list
@@ -89,21 +89,20 @@ try:
89
89
  from dkist_inventory.asdf_generator import dataset_from_fits
90
90
 
91
91
  INV = True
92
- # Temp hack to work around import error caused by Stuart code updates...
93
- except (ModuleNotFoundError, ImportError):
94
- # Bitbucket pipelines won't have dkist-inventory installed
95
- pass
92
+ except ModuleNotFoundError:
93
+ logger.warning(
94
+ "Could not load dkist-inventory. CreateTrialDatasetInventory and CreateTrialAsdf require dkist-inventory."
95
+ )
96
96
 
97
- QRM = False
97
+ QUALITY = False
98
98
  try:
99
- from quality_report_maker.libraries import report
100
- from quality_report_maker.libraries.json_encoder import datetime_json_object_hook
101
- from quality_report_maker.libraries.json_encoder import DatetimeEncoder
99
+ import dkist_quality
102
100
 
103
- QRM = True
101
+ QUALITY = True
104
102
  except ModuleNotFoundError:
105
- logger.warning("Could not find quality_report_maker (must be installed manually)")
106
- if QRM:
103
+ logger.warning("Could not load dkist-quality. CreateTrialQualityReport requires dkist-quality.")
104
+
105
+ if QUALITY:
107
106
  import matplotlib.pyplot as plt
108
107
 
109
108
  plt.ioff()
@@ -7,6 +7,8 @@ from pathlib import Path
7
7
  from astropy.io import fits
8
8
  from dkist_header_validator import spec214_validator
9
9
  from dkist_processing_common.manual import ManualProcessing
10
+ from dkist_processing_common.tasks import CreateTrialAsdf
11
+ from dkist_processing_common.tasks import CreateTrialQualityReport
10
12
  from dkist_processing_common.tasks import QualityL1Metrics
11
13
  from dkist_processing_common.tasks import WorkflowTaskBase
12
14
  from dkist_service_configuration import logger
@@ -27,7 +29,8 @@ from dkist_processing_cryonirsp.tasks.instrument_polarization import (
27
29
  from dkist_processing_cryonirsp.tasks.instrument_polarization import (
28
30
  SPInstrumentPolarizationCalibration,
29
31
  )
30
- from dkist_processing_cryonirsp.tasks.l1_output_data import SPSubmitQuality
32
+ from dkist_processing_cryonirsp.tasks.l1_output_data import CIAssembleQualityData
33
+ from dkist_processing_cryonirsp.tasks.l1_output_data import SPAssembleQualityData
31
34
  from dkist_processing_cryonirsp.tasks.linearity_correction import LinearityCorrection
32
35
  from dkist_processing_cryonirsp.tasks.make_movie_frames import MakeCryonirspMovieFrames
33
36
  from dkist_processing_cryonirsp.tasks.parse import ParseL0CryonirspLinearizedData
@@ -101,21 +104,20 @@ try:
101
104
  from dkist_inventory.asdf_generator import dataset_from_fits
102
105
 
103
106
  INV = True
104
- # Temp hack to work around import error caused by Stuart code updates...
105
- except (ModuleNotFoundError, ImportError):
106
- # Bitbucket pipelines won't have dkist-inventory installed
107
- pass
107
+ except ModuleNotFoundError:
108
+ logger.warning(
109
+ "Could not load dkist-inventory. CreateTrialDatasetInventory and CreateTrialAsdf require dkist-inventory."
110
+ )
108
111
 
109
- QRM = False
112
+ QUALITY = False
110
113
  try:
111
- from quality_report_maker.libraries import report
112
- from quality_report_maker.libraries.json_encoder import datetime_json_object_hook
113
- from quality_report_maker.libraries.json_encoder import DatetimeEncoder
114
+ import dkist_quality
114
115
 
115
- QRM = True
116
+ QUALITY = True
116
117
  except ModuleNotFoundError:
117
- logger.warning("Could not find quality_report_maker (must be installed manually)")
118
- if QRM:
118
+ logger.warning("Could not load dkist-quality. CreateTrialQualityReport requires dkist-quality.")
119
+
120
+ if QUALITY:
119
121
  import matplotlib.pyplot as plt
120
122
 
121
123
  plt.ioff()
@@ -168,29 +170,6 @@ class ShowExposureConditions(CryonirspTaskBase):
168
170
  logger.info(f"{self.constants.observe_exposure_conditions_list = }")
169
171
 
170
172
 
171
- class SubmitAndExposeQuality(SPSubmitQuality):
172
- """A direct copy paste of SumbitQuality with an additional step of writing the report to disk"""
173
-
174
- def run(self):
175
- # To make sure the subclassing worked
176
- super().run()
177
-
178
- # Now regenerate the report str and save it
179
- if QRM:
180
- logger.info("Building quality report for save to disk")
181
- report_str = self.quality_build_report(polcal_label_list=self.polcal_label_list)
182
-
183
- doc_path = self.scratch.workflow_base_path / "quality_report.json"
184
- report_container = {
185
- "datasetId": self.constants.dataset_id,
186
- "qualityReport": json.dumps(report_str, cls=DatetimeEncoder),
187
- }
188
- json_str = json.dumps(report_container)
189
- with open(doc_path, "w") as f:
190
- f.write(json_str)
191
- logger.info(f"Wrote report to {doc_path}")
192
-
193
-
194
173
  class ValidateL1Output(CryonirspTaskBase):
195
174
  def run(self) -> None:
196
175
  files = self.read(tags=[CryonirspTag.output(), CryonirspTag.frame()])
@@ -311,38 +290,6 @@ def SP_workflow(
311
290
  manual_processing_run.run_task(task=AssembleCryonirspMovie)
312
291
 
313
292
 
314
- def make_pdf_report(scratch_path: str, recipe_run_id: int) -> None:
315
- if not QRM:
316
- logger.info("Did NOT make quality report pdf because quality_report_maker is not installed")
317
- return
318
-
319
- json_file = os.path.join(scratch_path, str(recipe_run_id), "quality_report.json")
320
- pdf_file = os.path.join(scratch_path, str(recipe_run_id), "quality_report.pdf")
321
- with open(json_file, "r") as f:
322
- report_container = json.load(f)
323
- dataset_id = report_container["datasetId"]
324
- report_str = json.loads(
325
- report_container["qualityReport"], object_hook=datetime_json_object_hook
326
- )
327
-
328
- pdf_bytes = report.format_report(report_str, f"GROGU_TEST_{dataset_id}")
329
- with open(pdf_file, "wb") as f:
330
- f.write(pdf_bytes)
331
-
332
- logger.info(f"Wrote quality report PDF to {pdf_file}")
333
-
334
-
335
- def make_dataset_asdf(recipe_run_id, scratch_path):
336
- if not INV:
337
- logger.warning("Did NOT make dataset asdf file because dkist_inventory is not installed")
338
- return
339
-
340
- output_dir = os.path.join(scratch_path, str(recipe_run_id))
341
- asdf_name = f"dataset_{recipe_run_id:03n}.asdf"
342
- logger.info(f"Creating ASDF file from {output_dir} and saving to {asdf_name}")
343
- dataset_from_fits(output_dir, asdf_name, hdu=1)
344
-
345
-
346
293
  def main(
347
294
  scratch_path: str,
348
295
  suffix: str = "FITS",
@@ -461,7 +408,10 @@ def main(
461
408
  raise ValueError(f"Did not recognize {arm_id = }")
462
409
  manual_processing_run.run_task(task=QualityL1Metrics)
463
410
  manual_processing_run.run_task(task=CryonirspL1QualityMetrics)
464
- manual_processing_run.run_task(task=SubmitAndExposeQuality)
411
+ if arm_id == "SP":
412
+ manual_processing_run.run_task(task=SPAssembleQualityData)
413
+ elif arm_id == "CI":
414
+ manual_processing_run.run_task(task=CIAssembleQualityData)
465
415
  manual_processing_run.run_task(task=ValidateL1Output)
466
416
 
467
417
  if transfer_trial_data:
@@ -477,8 +427,17 @@ def main(
477
427
  manual_processing_run.run_task(transfer_local_task)
478
428
 
479
429
  # Test some downstream services
480
- make_dataset_asdf(recipe_run_id, scratch_path)
481
- make_pdf_report(scratch_path, recipe_run_id)
430
+ if INV:
431
+ manual_processing_run.run_task(task=CreateTrialAsdf)
432
+ else:
433
+ logger.warning(
434
+ "Did NOT make dataset asdf file because the asdf generator is not installed"
435
+ )
436
+
437
+ if QUALITY:
438
+ manual_processing_run.run_task(task=CreateTrialQualityReport)
439
+ else:
440
+ logger.warning("Did NOT make quality report pdf because dkist-quality is not installed")
482
441
 
483
442
  if any([load_dark, load_lamp, load_geometric, load_solar, load_inst_pol]):
484
443
  logger.info("NOT counting provenance records because some tasks were skipped")