dkist-processing-cryonirsp 1.3.4__tar.gz → 1.4.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 (125) hide show
  1. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/CHANGELOG.rst +18 -0
  2. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/PKG-INFO +3 -3
  3. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/__init__.py +0 -1
  4. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +2 -18
  5. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +3 -0
  6. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +8 -7
  7. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/workflows/trial_workflows.py +5 -5
  8. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp.egg-info/PKG-INFO +3 -3
  9. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -2
  10. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp.egg-info/requires.txt +2 -2
  11. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/pyproject.toml +3 -3
  12. dkist_processing_cryonirsp-1.3.4/dkist_processing_cryonirsp/tasks/trial_output_data.py +0 -61
  13. dkist_processing_cryonirsp-1.3.4/dkist_processing_cryonirsp/tests/test_trial_output_data.py +0 -251
  14. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/.gitignore +0 -0
  15. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/.pre-commit-config.yaml +0 -0
  16. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/.readthedocs.yml +0 -0
  17. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/README.rst +0 -0
  18. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/SCIENCE_CHANGELOG.rst +0 -0
  19. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/bitbucket-pipelines.yml +0 -0
  20. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/changelog/.gitempty +0 -0
  21. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/check_changelog_updated.sh +0 -0
  22. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/__init__.py +0 -0
  23. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/config.py +0 -0
  24. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/models/__init__.py +0 -0
  25. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/models/constants.py +0 -0
  26. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/models/exposure_conditions.py +0 -0
  27. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/models/parameters.py +0 -0
  28. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/models/tags.py +0 -0
  29. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/models/task_name.py +0 -0
  30. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
  31. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
  32. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
  33. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/exposure_conditions.py +0 -0
  34. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
  35. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
  36. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
  37. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/optical_density_filters.py +0 -0
  38. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/polarimetric_check.py +0 -0
  39. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
  40. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/time.py +0 -0
  41. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
  42. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
  43. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
  44. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
  45. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
  46. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
  47. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
  48. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
  49. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
  50. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
  51. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
  52. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/linearity_correction.py +0 -0
  53. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
  54. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
  55. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/mixin/beam_access.py +0 -0
  56. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
  57. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/mixin/intermediate_frame.py +0 -0
  58. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/mixin/linearized_frame.py +0 -0
  59. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +0 -0
  60. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
  61. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
  62. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
  63. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
  64. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/sp_dispersion_axis_correction.py +0 -0
  65. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
  66. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
  67. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
  68. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
  69. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
  70. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/conftest.py +0 -0
  71. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/header_models.py +0 -0
  72. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py +0 -0
  73. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +0 -0
  74. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +0 -0
  75. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +0 -0
  76. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
  77. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
  78. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
  79. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
  80. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_corrections.py +0 -0
  81. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
  82. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
  83. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
  84. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
  85. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
  86. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_make_movie_frames.py +0 -0
  87. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
  88. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_parse.py +0 -0
  89. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
  90. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
  91. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_sp_dispersion_axis_correction.py +0 -0
  92. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
  93. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
  94. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
  95. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
  96. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +0 -0
  97. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
  98. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
  99. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
  100. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
  101. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
  102. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
  103. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
  104. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/Makefile +0 -0
  105. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/bad_pixel_calibration.rst +0 -0
  106. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/beam_angle_calculation.rst +0 -0
  107. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/beam_boundary_computation.rst +0 -0
  108. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/changelog.rst +0 -0
  109. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/ci_science_calibration.rst +0 -0
  110. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/conf.py +0 -0
  111. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/index.rst +0 -0
  112. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/l0_to_l1_cryonirsp_ci-full-trial.rst +0 -0
  113. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
  114. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/l0_to_l1_cryonirsp_sp-full-trial.rst +0 -0
  115. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
  116. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/linearization.rst +0 -0
  117. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/make.bat +0 -0
  118. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/requirements.txt +0 -0
  119. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/requirements_table.rst +0 -0
  120. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/scientific_changelog.rst +0 -0
  121. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/docs/sp_science_calibration.rst +0 -0
  122. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/licenses/LICENSE.rst +0 -0
  123. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/science_towncrier.sh +0 -0
  124. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/setup.cfg +0 -0
  125. {dkist_processing_cryonirsp-1.3.4 → dkist_processing_cryonirsp-1.4.0}/towncrier_science.toml +0 -0
@@ -1,3 +1,21 @@
1
+ v1.4.0 (2024-11-14)
2
+ ===================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Replace `TransferCryoTrialData` with `TransferTrialData` from dkist-processing-common. (`#158 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/158>`__)
8
+
9
+
10
+ v1.3.5 (2024-10-15)
11
+ ===================
12
+
13
+ Misc
14
+ ----
15
+
16
+ - Bump `dkist-processing-common` to v10.3.0 and `dkist-processing-pac` to v3.1.0, both of which harden polcal fitting against bad input data. (`#157 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/157>`__)
17
+
18
+
1
19
  v1.3.4 (2024-10-14)
2
20
  ===================
3
21
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 1.3.4
3
+ Version: 1.4.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
@@ -17,9 +17,9 @@ Requires-Dist: Pillow==10.3.0
17
17
  Requires-Dist: astropy==6.1.0
18
18
  Requires-Dist: dkist-fits-specifications==4.7.0
19
19
  Requires-Dist: dkist-header-validator==5.1.1
20
- Requires-Dist: dkist-processing-common==10.2.2
20
+ Requires-Dist: dkist-processing-common==10.4.0
21
21
  Requires-Dist: dkist-processing-math==2.1.1
22
- Requires-Dist: dkist-processing-pac==3.0.3
22
+ Requires-Dist: dkist-processing-pac==3.1.0
23
23
  Requires-Dist: dkist-spectral-lines==3.0.0
24
24
  Requires-Dist: largestinteriorrectangle==0.2.0
25
25
  Requires-Dist: dkist-service-configuration==2.2
@@ -15,5 +15,4 @@ from dkist_processing_cryonirsp.tasks.sp_dispersion_axis_correction import *
15
15
  from dkist_processing_cryonirsp.tasks.sp_geometric import *
16
16
  from dkist_processing_cryonirsp.tasks.sp_science import *
17
17
  from dkist_processing_cryonirsp.tasks.sp_solar_gain import *
18
- from dkist_processing_cryonirsp.tasks.trial_output_data import *
19
18
  from dkist_processing_cryonirsp.tasks.write_l1 import *
@@ -9,13 +9,13 @@ import asdf
9
9
  from astropy.io import fits
10
10
  from dkist_header_validator import spec122_validator
11
11
  from dkist_processing_common.models.task_name import TaskName
12
+ from dkist_processing_common.tasks import TransferTrialData
12
13
  from dkist_processing_common.tasks import WorkflowTaskBase
13
14
  from dkist_processing_common.tasks.mixin.globus import GlobusTransferItem
14
15
  from dkist_service_configuration.logging import logger
15
16
 
16
17
  from dkist_processing_cryonirsp.models.tags import CryonirspTag
17
18
  from dkist_processing_cryonirsp.models.task_name import CryonirspTaskName
18
- from dkist_processing_cryonirsp.tasks import TransferCryoTrialData
19
19
  from dkist_processing_cryonirsp.tasks.cryonirsp_base import CryonirspTaskBase
20
20
  from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
21
21
 
@@ -550,27 +550,11 @@ def transfer_trial_data_locally_task(
550
550
  output_swtich: bool = True,
551
551
  tag_lists: list | None = None,
552
552
  ):
553
- class LocalTrialData(TransferCryoTrialData):
553
+ class LocalTrialData(TransferTrialData):
554
554
  @property
555
555
  def destination_folder(self) -> Path:
556
556
  return Path(trial_dir)
557
557
 
558
- @property
559
- def debug_frame_switch(self) -> bool:
560
- return debug_switch
561
-
562
- @property
563
- def intermediate_frame_switch(self) -> bool:
564
- return intermediate_switch
565
-
566
- @property
567
- def output_frame_switch(self) -> bool:
568
- return output_swtich
569
-
570
- @property
571
- def specific_frame_tag_lists(self) -> list:
572
- return tag_lists or []
573
-
574
558
  def remove_folder_objects(self):
575
559
  logger.info("Would have removed folder objects here")
576
560
 
@@ -232,6 +232,7 @@ def quality_metrics(dataframe_json) -> list[Metric]:
232
232
  },
233
233
  "bin_strs": ["bin1", "bin2"],
234
234
  "total_bins": 100,
235
+ "sampled_bins": 20,
235
236
  "num_varied_I_sys": 2,
236
237
  },
237
238
  ["QUALITY_POLCAL_LOCAL_PAR_VALS", "QUALITY_TASK_CI BEAM 1"],
@@ -240,6 +241,7 @@ def quality_metrics(dataframe_json) -> list[Metric]:
240
241
  {
241
242
  "bin_strs": ["bin1", "bin2"],
242
243
  "total_bins": 100,
244
+ "sampled_bins": 20,
243
245
  "red_chi_list": [1, 2, 3],
244
246
  "residual_json": dataframe_json,
245
247
  },
@@ -249,6 +251,7 @@ def quality_metrics(dataframe_json) -> list[Metric]:
249
251
  {
250
252
  "bin_strs": ["bin1", "bin2"],
251
253
  "total_bins": 100,
254
+ "sampled_bins": 20,
252
255
  "efficiency_list": ((np.random.randn(4, 100) - 0.5) * 0.3).tolist(),
253
256
  "warnings": ["A warning"],
254
257
  },
@@ -43,13 +43,14 @@ class DummyPolcalFitter(PolcalFitter):
43
43
  **fit_kwargs,
44
44
  ):
45
45
  with patch("dkist_processing_pac.fitter.polcal_fitter.FitObjects"):
46
- super().__init__(
47
- local_dresser=local_dresser,
48
- global_dresser=global_dresser,
49
- fit_mode="use_M12_I_sys_per_step",
50
- init_set="OCCal_VIS",
51
- _dont_fit=True,
52
- )
46
+ with patch("dkist_processing_pac.fitter.polcal_fitter.PolcalFitter.check_dressers"):
47
+ super().__init__(
48
+ local_dresser=local_dresser,
49
+ global_dresser=global_dresser,
50
+ fit_mode="use_M12_I_sys_per_step",
51
+ init_set="OCCal_VIS",
52
+ _dont_fit=True,
53
+ )
53
54
 
54
55
  self.num_modstates = local_dresser.nummod
55
56
 
@@ -4,6 +4,7 @@ from dkist_processing_common.tasks import CreateTrialDatasetInventory
4
4
  from dkist_processing_common.tasks import CreateTrialQualityReport
5
5
  from dkist_processing_common.tasks import QualityL1Metrics
6
6
  from dkist_processing_common.tasks import TransferL0Data
7
+ from dkist_processing_common.tasks import TransferTrialData
7
8
  from dkist_processing_common.tasks import TrialTeardown
8
9
  from dkist_processing_core import ResourceQueue
9
10
  from dkist_processing_core import Workflow
@@ -33,7 +34,6 @@ from dkist_processing_cryonirsp.tasks import (
33
34
  from dkist_processing_cryonirsp.tasks import SPScienceCalibration
34
35
  from dkist_processing_cryonirsp.tasks import SPSolarGainCalibration
35
36
  from dkist_processing_cryonirsp.tasks import SPWriteL1Frame
36
- from dkist_processing_cryonirsp.tasks import TransferCryoTrialData
37
37
  from dkist_processing_cryonirsp.tasks.l1_output_data import CIAssembleQualityData
38
38
  from dkist_processing_cryonirsp.tasks.l1_output_data import SPAssembleQualityData
39
39
  from dkist_processing_cryonirsp.tasks.parse import ParseL0CryonirspCILinearizedData
@@ -99,7 +99,7 @@ full_trial_ci_pipeline.add_node(
99
99
 
100
100
  # Output flow
101
101
  full_trial_ci_pipeline.add_node(
102
- task=TransferCryoTrialData,
102
+ task=TransferTrialData,
103
103
  upstreams=[
104
104
  CreateTrialDatasetInventory,
105
105
  CreateTrialAsdf,
@@ -109,7 +109,7 @@ full_trial_ci_pipeline.add_node(
109
109
  )
110
110
 
111
111
  # goodbye
112
- full_trial_ci_pipeline.add_node(task=TrialTeardown, upstreams=TransferCryoTrialData)
112
+ full_trial_ci_pipeline.add_node(task=TrialTeardown, upstreams=TransferTrialData)
113
113
 
114
114
  #######################
115
115
  #######################
@@ -177,7 +177,7 @@ full_trial_sp_pipeline.add_node(
177
177
 
178
178
  # Output flow
179
179
  full_trial_sp_pipeline.add_node(
180
- task=TransferCryoTrialData,
180
+ task=TransferTrialData,
181
181
  upstreams=[
182
182
  CreateTrialDatasetInventory,
183
183
  CreateTrialAsdf,
@@ -187,4 +187,4 @@ full_trial_sp_pipeline.add_node(
187
187
  )
188
188
 
189
189
  # goodbye
190
- full_trial_sp_pipeline.add_node(task=TrialTeardown, upstreams=TransferCryoTrialData)
190
+ full_trial_sp_pipeline.add_node(task=TrialTeardown, upstreams=TransferTrialData)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 1.3.4
3
+ Version: 1.4.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
@@ -17,9 +17,9 @@ Requires-Dist: Pillow==10.3.0
17
17
  Requires-Dist: astropy==6.1.0
18
18
  Requires-Dist: dkist-fits-specifications==4.7.0
19
19
  Requires-Dist: dkist-header-validator==5.1.1
20
- Requires-Dist: dkist-processing-common==10.2.2
20
+ Requires-Dist: dkist-processing-common==10.4.0
21
21
  Requires-Dist: dkist-processing-math==2.1.1
22
- Requires-Dist: dkist-processing-pac==3.0.3
22
+ Requires-Dist: dkist-processing-pac==3.1.0
23
23
  Requires-Dist: dkist-spectral-lines==3.0.0
24
24
  Requires-Dist: largestinteriorrectangle==0.2.0
25
25
  Requires-Dist: dkist-service-configuration==2.2
@@ -56,7 +56,6 @@ dkist_processing_cryonirsp/tasks/sp_dispersion_axis_correction.py
56
56
  dkist_processing_cryonirsp/tasks/sp_geometric.py
57
57
  dkist_processing_cryonirsp/tasks/sp_science.py
58
58
  dkist_processing_cryonirsp/tasks/sp_solar_gain.py
59
- dkist_processing_cryonirsp/tasks/trial_output_data.py
60
59
  dkist_processing_cryonirsp/tasks/write_l1.py
61
60
  dkist_processing_cryonirsp/tasks/mixin/__init__.py
62
61
  dkist_processing_cryonirsp/tasks/mixin/beam_access.py
@@ -90,7 +89,6 @@ dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py
90
89
  dkist_processing_cryonirsp/tests/test_sp_science.py
91
90
  dkist_processing_cryonirsp/tests/test_sp_solar.py
92
91
  dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py
93
- dkist_processing_cryonirsp/tests/test_trial_output_data.py
94
92
  dkist_processing_cryonirsp/tests/test_workflows.py
95
93
  dkist_processing_cryonirsp/tests/test_write_l1.py
96
94
  dkist_processing_cryonirsp/tests/local_trial_workflows/__init__.py
@@ -2,9 +2,9 @@ Pillow==10.3.0
2
2
  astropy==6.1.0
3
3
  dkist-fits-specifications==4.7.0
4
4
  dkist-header-validator==5.1.1
5
- dkist-processing-common==10.2.2
5
+ dkist-processing-common==10.4.0
6
6
  dkist-processing-math==2.1.1
7
- dkist-processing-pac==3.0.3
7
+ dkist-processing-pac==3.1.0
8
8
  dkist-spectral-lines==3.0.0
9
9
  largestinteriorrectangle==0.2.0
10
10
  dkist-service-configuration==2.2
@@ -25,9 +25,9 @@ dependencies = [
25
25
  "astropy == 6.1.0",
26
26
  "dkist-fits-specifications == 4.7.0",
27
27
  "dkist-header-validator == 5.1.1",
28
- "dkist-processing-common == 10.2.2",
28
+ "dkist-processing-common == 10.4.0",
29
29
  "dkist-processing-math == 2.1.1",
30
- "dkist-processing-pac == 3.0.3",
30
+ "dkist-processing-pac == 3.1.0",
31
31
  "dkist-spectral-lines == 3.0.0",
32
32
  "largestinteriorrectangle == 0.2.0",
33
33
  "dkist-service-configuration == 2.2",
@@ -105,7 +105,7 @@ show_missing = true
105
105
  directory = "changelog/"
106
106
  issue_format = "`#{issue} <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/{issue}>`__"
107
107
  title_format = "{version} ({project_date})"
108
- ignore = [".gitempty"]
108
+ ignore = [".gitempty", "*.science.rst"]
109
109
 
110
110
  [[tool.towncrier.type]]
111
111
  directory = "feature"
@@ -1,61 +0,0 @@
1
- """Tasks for transferring scratch data to custom location for post-pipeline analysis."""
2
- from dkist_processing_common.models.task_name import TaskName
3
- from dkist_processing_common.tasks.mixin.globus import GlobusTransferItem
4
- from dkist_processing_common.tasks.trial_output_data import TransferTrialDataBase
5
-
6
- __all__ = ["TransferCryoTrialData"]
7
-
8
- from dkist_processing_cryonirsp.models.task_name import CryonirspTaskName
9
-
10
-
11
- class TransferCryoTrialData(TransferTrialDataBase):
12
- """Transfer DEBUG, Intermediate, and/or output data to the trial location."""
13
-
14
- @property
15
- def intermediate_task_names(self) -> list[str]:
16
- """Grab all the Calibration products used to calibrate science data."""
17
- return [
18
- TaskName.dark.value,
19
- TaskName.lamp_gain.value,
20
- TaskName.geometric_angle.value,
21
- TaskName.geometric_offsets.value,
22
- TaskName.geometric_spectral_shifts.value,
23
- TaskName.solar_gain.value,
24
- TaskName.demodulation_matrices.value,
25
- CryonirspTaskName.spectral_corrected_solar_array.value,
26
- ]
27
-
28
- def build_transfer_list(self) -> list[GlobusTransferItem]:
29
- """
30
- Build a list containing all files we want to transfer to the trial environment.
31
-
32
- The classes of/specific files to transfer are defined in the switches that look at the recipe run configuration.
33
- """
34
- transfer_list = []
35
-
36
- if self.debug_frame_switch:
37
- transfer_list += self.build_debug_frame_transfer_list()
38
-
39
- if self.intermediate_frame_switch:
40
- transfer_list += self.build_intermediate_frame_transfer_list()
41
-
42
- if self.output_frame_switch:
43
- transfer_list += self.build_output_frame_transfer_list()
44
- transfer_list += self.build_output_movie_transfer_list()
45
-
46
- if self.specific_frame_tag_lists:
47
- transfer_list += self.build_transfer_list_from_tag_lists(self.specific_frame_tag_lists)
48
-
49
- if self.output_dataset_inventory_switch:
50
- transfer_list += self.build_output_dataset_inventory_transfer_list()
51
-
52
- if self.output_asdf_switch:
53
- transfer_list += self.build_output_asdf_transfer_list()
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
-
61
- return transfer_list
@@ -1,251 +0,0 @@
1
- import json
2
- from uuid import uuid4
3
-
4
- import pytest
5
- from dkist_processing_common._util.scratch import WorkflowFileSystem
6
- from dkist_processing_common.codecs.json import json_encoder
7
- from dkist_processing_common.codecs.quality import quality_data_encoder
8
- from dkist_processing_common.codecs.str import str_encoder
9
- from dkist_processing_common.models.task_name import TaskName
10
- from dkist_processing_common.tests.conftest import FakeGQLClient
11
- from pydantic import BaseModel
12
-
13
- from dkist_processing_cryonirsp.models.tags import CryonirspTag
14
- from dkist_processing_cryonirsp.models.task_name import CryonirspTaskName
15
- from dkist_processing_cryonirsp.tasks import TransferCryoTrialData
16
-
17
-
18
- @pytest.fixture
19
- def recipe_run_configuration(
20
- debug_switch,
21
- intermediate_switch,
22
- output_switch,
23
- dataset_inventory_switch,
24
- asdf_switch,
25
- quality_report_switch,
26
- quality_data_switch,
27
- tag_lists,
28
- ):
29
- """Mock Recipe Run endpoint for trial output configuration flags"""
30
-
31
- class GQLClientWithConfiguration(FakeGQLClient):
32
- def execute_gql_query(self, **kwargs):
33
- response = super().execute_gql_query(**kwargs)
34
- response[0].configuration = json.dumps(
35
- {
36
- "trial_transfer_debug_frames": bool(debug_switch),
37
- "trial_transfer_intermediate_frames": bool(intermediate_switch),
38
- "trial_transfer_output_frames": bool(output_switch),
39
- "trial_transfer_output_dataset_inventory": bool(dataset_inventory_switch),
40
- "trial_transfer_output_asdf": bool(asdf_switch),
41
- "trial_transfer_output_quality_report": bool(quality_report_switch),
42
- "trial_transfer_output_quality_data": bool(quality_data_switch),
43
- "trial_transfer_tag_lists": tag_lists,
44
- }
45
- )
46
- return response
47
-
48
- return GQLClientWithConfiguration
49
-
50
-
51
- intermediate_task_names = [
52
- TaskName.dark.value,
53
- TaskName.lamp_gain.value,
54
- TaskName.geometric_angle.value,
55
- TaskName.geometric_offsets.value,
56
- TaskName.geometric_spectral_shifts.value,
57
- TaskName.solar_gain.value,
58
- TaskName.demodulation_matrices.value,
59
- CryonirspTaskName.spectral_corrected_solar_array.value,
60
- ]
61
-
62
- tag_lists = [[CryonirspTag.movie()], ["FOO", "BAR"]]
63
-
64
-
65
- def write_debug_frames_to_task(task: TransferCryoTrialData) -> int:
66
- num_debug = 3
67
- for _ in range(num_debug):
68
- task.write(
69
- data="123", encoder=str_encoder, tags=[CryonirspTag.frame(), CryonirspTag.debug()]
70
- )
71
-
72
- return num_debug
73
-
74
-
75
- def write_intermediate_frames_to_task(task: TransferCryoTrialData) -> int:
76
- for task_name in intermediate_task_names:
77
- task.write(
78
- data=task_name,
79
- encoder=str_encoder,
80
- tags=[CryonirspTag.frame(), CryonirspTag.intermediate(), CryonirspTag.task(task_name)],
81
- )
82
-
83
- return len(intermediate_task_names)
84
-
85
-
86
- def write_dummy_output_frames_to_task(task: TransferCryoTrialData) -> int:
87
- num_output = 2
88
- for i in range(num_output):
89
- task.write(
90
- data=f"output_{i}",
91
- encoder=str_encoder,
92
- tags=[CryonirspTag.frame(), CryonirspTag.output()],
93
- )
94
-
95
- return num_output
96
-
97
-
98
- def write_specific_tags_to_task(task: TransferCryoTrialData) -> int:
99
- for tags in tag_lists:
100
- task.write(data="foo", encoder=str_encoder, tags=tags)
101
-
102
- return len(tag_lists)
103
-
104
-
105
- def write_dataset_inventory_to_task(task: TransferCryoTrialData) -> int:
106
- dataset_inventory_obj: dict = {f"dsi_key": uuid4().hex}
107
- task.write(
108
- data=dataset_inventory_obj,
109
- encoder=json_encoder,
110
- tags=[CryonirspTag.output(), CryonirspTag.dataset_inventory()],
111
- )
112
- return 1
113
-
114
-
115
- def write_asdf_to_task(task: TransferCryoTrialData) -> int:
116
- asdf_obj = uuid4().hex
117
- task.write(
118
- data=asdf_obj, encoder=str_encoder, tags=[CryonirspTag.output(), CryonirspTag.asdf()]
119
- )
120
- return 1
121
-
122
-
123
- def write_quality_report_to_task(task: TransferCryoTrialData) -> int:
124
- quality_report_obj = uuid4().hex.encode("utf-8")
125
- task.write(data=quality_report_obj, tags=[CryonirspTag.output(), CryonirspTag.quality_report()])
126
- return 1
127
-
128
-
129
- def write_quality_data_to_task(task: TransferCryoTrialData) -> int:
130
- quality_data_obj: list[dict] = [{f"quality_key": uuid4().hex}]
131
- task.write(
132
- data=quality_data_obj, encoder=quality_data_encoder, tags=CryonirspTag.quality_data()
133
- )
134
- return 1
135
-
136
-
137
- def write_unused_frames_to_task(task: TransferCryoTrialData) -> int:
138
- task.write(data="bad", encoder=str_encoder, tags=["FOO"])
139
- task.write(
140
- data="intermediate we don't care about",
141
- encoder=str_encoder,
142
- tags=[CryonirspTag.frame(), CryonirspTag.intermediate(), CryonirspTag.task("NOT_A_KEEPER")],
143
- )
144
- return 1
145
-
146
-
147
- class AvailableOutputFiles(BaseModel):
148
- """Number of files of each type available for potential output"""
149
-
150
- num_debug: int
151
- num_intermediate: int
152
- num_output: int
153
- num_specific: int
154
- num_dataset_inventory: int
155
- num_asdf: int
156
- num_quality_report: int
157
- num_quality_data: int
158
-
159
-
160
- @pytest.fixture
161
- def transfer_task_with_files(recipe_run_id, recipe_run_configuration, tmp_path, mocker):
162
- mocker.patch(
163
- "dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient",
164
- new=recipe_run_configuration,
165
- )
166
- proposal_id = "test_proposal_id"
167
- with TransferCryoTrialData(
168
- recipe_run_id=recipe_run_id,
169
- workflow_name="workflow_name",
170
- workflow_version="workflow_version",
171
- ) as task:
172
- task.scratch = WorkflowFileSystem(
173
- recipe_run_id=recipe_run_id,
174
- scratch_base_path=tmp_path,
175
- )
176
- task.constants._update({"PROPOSAL_ID": proposal_id})
177
- try:
178
- write_unused_frames_to_task(task)
179
- available_output_files = AvailableOutputFiles(
180
- num_debug=write_debug_frames_to_task(task),
181
- num_intermediate=write_intermediate_frames_to_task(task),
182
- num_output=write_dummy_output_frames_to_task(task),
183
- num_specific=write_specific_tags_to_task(task),
184
- num_dataset_inventory=write_dataset_inventory_to_task(task),
185
- num_asdf=write_asdf_to_task(task),
186
- num_quality_report=write_quality_report_to_task(task),
187
- num_quality_data=write_quality_data_to_task(task),
188
- )
189
- yield task, available_output_files
190
-
191
- finally:
192
- task._purge()
193
-
194
-
195
- @pytest.mark.parametrize(
196
- "debug_switch, intermediate_switch, output_switch, dataset_inventory_switch, asdf_switch, quality_report_switch, quality_data_switch, tag_lists",
197
- [
198
- pytest.param(0, 0, 0, 0, 0, 0, 0, [], id="none"),
199
- pytest.param(1, 0, 0, 0, 0, 0, 0, [], id="debug_only"),
200
- pytest.param(0, 1, 0, 0, 0, 0, 0, [], id="intermediate_only"),
201
- pytest.param(0, 0, 1, 0, 0, 0, 0, [], id="output_only"),
202
- pytest.param(0, 0, 0, 1, 0, 0, 0, [], id="dataset_inventory_only"),
203
- pytest.param(0, 0, 0, 0, 1, 0, 0, [], id="asdf_only"),
204
- pytest.param(0, 0, 0, 0, 0, 1, 0, [], id="quality_report_only"),
205
- pytest.param(0, 0, 0, 0, 0, 0, 1, [], id="quality_data_only"),
206
- pytest.param(0, 0, 0, 0, 0, 0, 0, tag_lists, id="specific_only"),
207
- pytest.param(1, 1, 1, 1, 1, 1, 1, tag_lists, id="all"),
208
- pytest.param(1, 1, 0, 0, 0, 0, 0, tag_lists, id="combo_debug_intermediate_specific"),
209
- pytest.param(1, 1, 1, 0, 0, 0, 0, [], id="combo_debug_intermediate_output"),
210
- pytest.param(0, 1, 1, 0, 0, 0, 0, tag_lists, id="combo_intermediate_output_specific"),
211
- pytest.param(1, 0, 1, 0, 0, 0, 0, tag_lists, id="combo_debug_output_specific"),
212
- ],
213
- )
214
- def test_build_transfer_list(
215
- transfer_task_with_files,
216
- debug_switch,
217
- intermediate_switch,
218
- output_switch,
219
- dataset_inventory_switch,
220
- asdf_switch,
221
- quality_report_switch,
222
- quality_data_switch,
223
- tag_lists,
224
- ):
225
- """
226
- Given: A TransferCryoTrialData task with a recipe run configuration (RRC) and a collection of frames
227
- When: Building the transfer list
228
- Then: Only the files requested by the RRC switches are collected for transfer
229
- """
230
- task, available_output_files = transfer_task_with_files
231
-
232
- expected_num = 0
233
- if debug_switch:
234
- expected_num += available_output_files.num_debug
235
- if intermediate_switch:
236
- expected_num += available_output_files.num_intermediate
237
- if output_switch:
238
- expected_num += available_output_files.num_output
239
- if dataset_inventory_switch:
240
- expected_num += available_output_files.num_dataset_inventory
241
- if asdf_switch:
242
- expected_num += available_output_files.num_asdf
243
- if quality_report_switch:
244
- expected_num += available_output_files.num_quality_report
245
- if quality_data_switch:
246
- expected_num += available_output_files.num_quality_data
247
- if tag_lists:
248
- expected_num += available_output_files.num_specific
249
-
250
- transfer_list = task.build_transfer_list()
251
- assert len(transfer_list) == expected_num