dkist-processing-common 11.6.0rc1__tar.gz → 11.7.0rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/CHANGELOG.rst +19 -0
  2. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/PKG-INFO +3 -3
  3. dkist_processing_common-11.7.0rc1/changelog/267.feature.1.rst +1 -0
  4. dkist_processing_common-11.7.0rc1/changelog/267.feature.2.rst +1 -0
  5. dkist_processing_common-11.7.0rc1/changelog/267.feature.rst +1 -0
  6. dkist_processing_common-11.7.0rc1/changelog/267.misc.rst +1 -0
  7. dkist_processing_common-11.7.0rc1/changelog/267.removal.1.rst +2 -0
  8. dkist_processing_common-11.7.0rc1/changelog/267.removal.rst +1 -0
  9. dkist_processing_common-11.7.0rc1/dkist_processing_common/models/constants.py +565 -0
  10. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/fits_access.py +16 -25
  11. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/telemetry.py +9 -2
  12. dkist_processing_common-11.7.0rc1/dkist_processing_common/parsers/average_bud.py +48 -0
  13. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/experiment_id_bud.py +8 -4
  14. dkist_processing_common-11.7.0rc1/dkist_processing_common/parsers/id_bud.py +78 -0
  15. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/l0_fits_access.py +3 -3
  16. dkist_processing_common-11.7.0rc1/dkist_processing_common/parsers/l1_fits_access.py +91 -0
  17. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/near_bud.py +4 -4
  18. dkist_processing_common-11.7.0rc1/dkist_processing_common/parsers/proposal_id_bud.py +28 -0
  19. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/single_value_single_key_flower.py +0 -1
  20. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/time.py +141 -27
  21. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/base.py +21 -3
  22. dkist_processing_common-11.7.0rc1/dkist_processing_common/tasks/parse_l0_input_data.py +508 -0
  23. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_fits_access.py +19 -44
  24. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_parse_l0_input_data.py +39 -5
  25. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_stems.py +127 -10
  26. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_task_parsing.py +6 -6
  27. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common.egg-info/PKG-INFO +3 -3
  28. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common.egg-info/SOURCES.txt +7 -1
  29. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common.egg-info/requires.txt +2 -2
  30. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/pyproject.toml +2 -2
  31. dkist_processing_common-11.6.0rc1/changelog/268.misc.rst +0 -1
  32. dkist_processing_common-11.6.0rc1/dkist_processing_common/models/constants.py +0 -187
  33. dkist_processing_common-11.6.0rc1/dkist_processing_common/parsers/id_bud.py +0 -60
  34. dkist_processing_common-11.6.0rc1/dkist_processing_common/parsers/l1_fits_access.py +0 -65
  35. dkist_processing_common-11.6.0rc1/dkist_processing_common/parsers/proposal_id_bud.py +0 -22
  36. dkist_processing_common-11.6.0rc1/dkist_processing_common/tasks/parse_l0_input_data.py +0 -255
  37. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/.gitignore +0 -0
  38. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/.pre-commit-config.yaml +0 -0
  39. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/.readthedocs.yml +0 -0
  40. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/.snyk +0 -0
  41. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/README.rst +0 -0
  42. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/bitbucket-pipelines.yml +0 -0
  43. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/changelog/.gitempty +0 -0
  44. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/__init__.py +0 -0
  45. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/_util/__init__.py +0 -0
  46. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/_util/constants.py +0 -0
  47. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/_util/graphql.py +0 -0
  48. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/_util/scratch.py +0 -0
  49. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/_util/tags.py +0 -0
  50. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/codecs/__init__.py +0 -0
  51. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/codecs/array.py +0 -0
  52. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/codecs/asdf.py +0 -0
  53. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/codecs/basemodel.py +0 -0
  54. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/codecs/bytes.py +0 -0
  55. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/codecs/fits.py +0 -0
  56. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/codecs/iobase.py +0 -0
  57. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/codecs/json.py +0 -0
  58. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/codecs/path.py +0 -0
  59. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/codecs/quality.py +0 -0
  60. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/codecs/str.py +0 -0
  61. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/config.py +0 -0
  62. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/fonts/Lato-Regular.ttf +0 -0
  63. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/fonts/__init__.py +0 -0
  64. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/manual.py +0 -0
  65. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/__init__.py +0 -0
  66. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/dkist_location.py +0 -0
  67. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/flower_pot.py +0 -0
  68. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/fried_parameter.py +0 -0
  69. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/graphql.py +0 -0
  70. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/input_dataset.py +0 -0
  71. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/message.py +0 -0
  72. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/message_queue_binding.py +0 -0
  73. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/metric_code.py +0 -0
  74. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/parameters.py +0 -0
  75. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/quality.py +0 -0
  76. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/tags.py +0 -0
  77. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/task_name.py +0 -0
  78. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/models/wavelength.py +0 -0
  79. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/__init__.py +0 -0
  80. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/cs_step.py +0 -0
  81. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/dsps_repeat.py +0 -0
  82. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/quality.py +0 -0
  83. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/retarder.py +0 -0
  84. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/task.py +0 -0
  85. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/unique_bud.py +0 -0
  86. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/parsers/wavelength.py +0 -0
  87. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/__init__.py +0 -0
  88. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/assemble_movie.py +0 -0
  89. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/l1_output_data.py +0 -0
  90. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/mixin/__init__.py +0 -0
  91. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/mixin/globus.py +0 -0
  92. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/mixin/interservice_bus.py +0 -0
  93. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/mixin/metadata_store.py +0 -0
  94. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/mixin/object_store.py +0 -0
  95. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/mixin/quality/__init__.py +0 -0
  96. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/mixin/quality/_base.py +0 -0
  97. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/mixin/quality/_metrics.py +0 -0
  98. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/output_data_base.py +0 -0
  99. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/quality_metrics.py +0 -0
  100. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/teardown.py +0 -0
  101. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/transfer_input_data.py +0 -0
  102. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/trial_catalog.py +0 -0
  103. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/trial_output_data.py +0 -0
  104. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tasks/write_l1.py +0 -0
  105. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/__init__.py +0 -0
  106. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/conftest.py +0 -0
  107. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/mock_metadata_store.py +0 -0
  108. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_assemble_movie.py +0 -0
  109. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_assemble_quality.py +0 -0
  110. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_base.py +0 -0
  111. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_codecs.py +0 -0
  112. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_constants.py +0 -0
  113. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_cs_step.py +0 -0
  114. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_dkist_location.py +0 -0
  115. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_flower_pot.py +0 -0
  116. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_fried_parameter.py +0 -0
  117. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_input_dataset.py +0 -0
  118. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_interservice_bus.py +0 -0
  119. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_interservice_bus_mixin.py +0 -0
  120. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_manual_processing.py +0 -0
  121. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_output_data_base.py +0 -0
  122. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_parameters.py +0 -0
  123. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_publish_catalog_messages.py +0 -0
  124. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_quality.py +0 -0
  125. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_quality_mixin.py +0 -0
  126. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_scratch.py +0 -0
  127. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_submit_dataset_metadata.py +0 -0
  128. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_tags.py +0 -0
  129. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_task_name.py +0 -0
  130. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_teardown.py +0 -0
  131. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_transfer_input_data.py +0 -0
  132. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_transfer_l1_output_data.py +0 -0
  133. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_trial_catalog.py +0 -0
  134. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_trial_output_data.py +0 -0
  135. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_workflow_task_base.py +0 -0
  136. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common/tests/test_write_l1.py +0 -0
  137. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common.egg-info/dependency_links.txt +0 -0
  138. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/dkist_processing_common.egg-info/top_level.txt +0 -0
  139. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/docs/Makefile +0 -0
  140. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/docs/changelog.rst +0 -0
  141. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/docs/conf.py +0 -0
  142. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/docs/index.rst +0 -0
  143. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/docs/landing_page.rst +0 -0
  144. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/docs/make.bat +0 -0
  145. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/docs/requirements.txt +0 -0
  146. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/licenses/LICENSE.rst +0 -0
  147. {dkist_processing_common-11.6.0rc1 → dkist_processing_common-11.7.0rc1}/setup.cfg +0 -0
@@ -1,3 +1,22 @@
1
+ v11.6.0 (2025-09-26)
2
+ ====================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Integrate dkist-processing-core 6.0.0 which brings a swap of Elastic APM to OpenTelemetry for metrics and tracing. (`#268 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/268>`__)
8
+ - Added common meters to instrument reads/writes and a framework for observing task progress. (`#268 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/268>`__)
9
+
10
+
11
+ v11.5.1 (2025-09-17)
12
+ ====================
13
+
14
+ Misc
15
+ ----
16
+
17
+ - Update the redis SDK to the latest version to deploy concurrently with an updated redis server. (`#269 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/269>`__)
18
+
19
+
1
20
  v11.5.0 (2025-09-08)
2
21
  ====================
3
22
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-common
3
- Version: 11.6.0rc1
3
+ Version: 11.7.0rc1
4
4
  Summary: Common task classes used by the DKIST science data processing pipelines
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -17,7 +17,7 @@ Requires-Dist: asdf<4.0.0,>=3.5.0
17
17
  Requires-Dist: astropy>=7.0.0
18
18
  Requires-Dist: dkist-fits-specifications<5.0,>=4.0.0
19
19
  Requires-Dist: dkist-header-validator<6.0,>=5.0.0
20
- Requires-Dist: dkist-processing-core==6.0.0rc3
20
+ Requires-Dist: dkist-processing-core==6.0.0
21
21
  Requires-Dist: dkist-processing-pac<4.0,>=3.1
22
22
  Requires-Dist: dkist-service-configuration<5.0,>=4.1.7
23
23
  Requires-Dist: dkist-spectral-lines<4.0,>=3.0.0
@@ -32,7 +32,7 @@ Requires-Dist: object-clerk==1.0.0
32
32
  Requires-Dist: pandas>=1.4.2
33
33
  Requires-Dist: pillow>=10.2.0
34
34
  Requires-Dist: pydantic>=2.0
35
- Requires-Dist: redis==4.6.0
35
+ Requires-Dist: redis==6.4.0
36
36
  Requires-Dist: requests>=2.23
37
37
  Requires-Dist: scipy>=1.15.1
38
38
  Requires-Dist: sunpy>=3.0.0
@@ -0,0 +1 @@
1
+ Add new bud types TaskAverageBud and TaskBeginDateBud, which is based on new TaskDatetimeBudBase.
@@ -0,0 +1 @@
1
+ Add new bud type TaskContributingIdsBud, based on ContributingIdsBud, for for specific task types.
@@ -0,0 +1 @@
1
+ Add new buds to parsing for what will become the dataset extras.
@@ -0,0 +1 @@
1
+ Rename TimeFlowerBase and TaskTimeBudBase to RoundTimeFlowerBase and TaskRoundTimeBudBase, respectively.
@@ -0,0 +1,2 @@
1
+ Remove the `_set_metadata_key_value` method from FitsAccessBase. Instead of using `setattr`, attributes
2
+ are assigned explicitly in access classes using `MetadataKey` members in place of header key strings.
@@ -0,0 +1 @@
1
+ Remove IdBud, which is just a TaskUniqueBud with the task set to observe, and therefore is not needed.
@@ -0,0 +1,565 @@
1
+ """
2
+ Components of the Constant model.
3
+
4
+ Contains names of database entries and Base class for an object that simplifies
5
+ accessing the database (tab completion, etc.)
6
+ """
7
+
8
+ from enum import StrEnum
9
+ from enum import unique
10
+ from string import ascii_uppercase
11
+
12
+ from sqids import Sqids
13
+
14
+ from dkist_processing_common._util.constants import ConstantsDb
15
+
16
+
17
+ @unique
18
+ class BudName(StrEnum):
19
+ """Controlled list of names for constant stems (buds)."""
20
+
21
+ instrument = "INSTRUMENT"
22
+ num_cs_steps = "NUM_CS_STEPS"
23
+ num_modstates = "NUM_MODSTATES"
24
+ retarder_name = "RETARDER_NAME"
25
+ proposal_id = "PROPOSAL_ID"
26
+ contributing_proposal_ids = "CONTRIBUTING_PROPOSAL_IDS"
27
+ experiment_id = "EXPERIMENT_ID"
28
+ contributing_experiment_ids = "CONTRIBUTING_EXPERIMENT_IDS"
29
+ obs_ip_start_time = "OBS_IP_START_TIME"
30
+ average_cadence = "AVERAGE_CADENCE"
31
+ maximum_cadence = "MAXIMUM_CADENCE"
32
+ minimum_cadence = "MINIMUM_CADENCE"
33
+ variance_cadence = "VARIANCE_CADENCE"
34
+ num_dsps_repeats = "NUM_DSPS_REPEATS"
35
+ dark_exposure_times = "DARK_EXPOSURE_TIMES"
36
+ dark_readout_exp_times = "DARK_READOUT_EXP_TIMES"
37
+ wavelength = "WAVELENGTH"
38
+ camera_id = "CAMERA_ID"
39
+ camera_name = "CAMERA_NAME"
40
+ camera_bit_depth = "CAMERA_BIT_DEPTH"
41
+ hardware_binning_x = "HARDWARE_BINNING_X"
42
+ hardware_binning_y = "HARDWARE_BINNING_Y"
43
+ software_binning_x = "SOFTWARE_BINNING_X"
44
+ software_binning_y = "SOFTWARE_BINNING_Y"
45
+ hls_version = "HLS_VERSION"
46
+ # Multi-task buds start here:
47
+ dark_observing_program_execution_id = "DARK_OBSERVING_PROGRAM_EXECUTION_ID"
48
+ solar_gain_observing_program_execution_id = "SOLAR_GAIN_OBSERVING_PROGRAM_EXECUTION_ID"
49
+ polcal_observing_program_execution_id = "POLCAL_OBSERVING_PROGRAM_EXECUTION_ID"
50
+ dark_date_begin = "DARK_DATE_BEGIN"
51
+ solar_gain_date_begin = "SOLAR_GAIN_DATE_BEGIN"
52
+ polcal_date_begin = "POLCAL_DATE_BEGIN"
53
+ dark_date_end = "DARK_DATE_END"
54
+ solar_gain_date_end = "SOLAR_GAIN_DATE_END"
55
+ polcal_date_end = "POLCAL_DATE_END"
56
+ dark_num_raw_frames_per_fpa = "DARK_NUM_RAW_FRAMES_PER_FPA"
57
+ solar_gain_num_raw_frames_per_fpa = "SOLAR_GAIN_NUM_RAW_FRAMES_PER_FPA"
58
+ polcal_num_raw_frames_per_fpa = "POLCAL_NUM_RAW_FRAMES_PER_FPA"
59
+ dark_telescope_tracking_mode = "DARK_TELESCOPE_TRACKING_MODE"
60
+ solar_gain_telescope_tracking_mode = "SOLAR_GAIN_TELESCOPE_TRACKING_MODE"
61
+ polcal_telescope_tracking_mode = "POLCAL_TELESCOPE_TRACKING_MODE"
62
+ dark_coude_table_tracking_mode = "DARK_COUDE_TABLE_TRACKING_MODE"
63
+ solar_gain_coude_table_tracking_mode = "SOLAR_GAIN_COUDE_TABLE_TRACKING_MODE"
64
+ polcal_coude_table_tracking_mode = "POLCAL_COUDE_TABLE_TRACKING_MODE"
65
+ dark_telescope_scanning_mode = "DARK_TELESCOPE_SCANNING_MODE"
66
+ solar_gain_telescope_scanning_mode = "SOLAR_GAIN_TELESCOPE_SCANNING_MODE"
67
+ polcal_telescope_scanning_mode = "POLCAL_TELESCOPE_SCANNING_MODE"
68
+ dark_average_light_level = "DARK_AVERAGE_LIGHT_LEVEL"
69
+ solar_gain_average_light_level = "SOLAR_GAIN_AVERAGE_LIGHT_LEVEL"
70
+ polcal_average_light_level = "POLCAL_AVERAGE_LIGHT_LEVEL"
71
+ dark_average_telescope_elevation = "DARK_AVERAGE_TELESCOPE_ELEVATION"
72
+ solar_gain_average_telescope_elevation = "SOLAR_GAIN_AVERAGE_TELESCOPE_ELEVATION"
73
+ polcal_average_telescope_elevation = "POLCAL_AVERAGE_TELESCOPE_ELEVATION"
74
+ dark_average_coude_table_angle = "DARK_AVERAGE_COUDE_TABLE_ANGLE"
75
+ solar_gain_average_coude_table_angle = "SOLAR_GAIN_AVERAGE_COUDE_TABLE_ANGLE"
76
+ polcal_average_coude_table_angle = "POLCAL_AVERAGE_COUDE_TABLE_ANGLE"
77
+ dark_average_telescope_azimuth = "DARK_AVERAGE_TELESCOPE_AZIMUTH"
78
+ solar_gain_average_telescope_azimuth = "SOLAR_GAIN_AVERAGE_TELESCOPE_AZIMUTH"
79
+ polcal_average_telescope_azimuth = "POLCAL_AVERAGE_TELESCOPE_AZIMUTH"
80
+ dark_gos_level3_status = "DARK_GOS_LEVEL3_STATUS"
81
+ solar_gain_gos_level3_status = "SOLAR_GAIN_GOS_LEVEL3_STATUS"
82
+ polcal_gos_level3_status = "POLCAL_GOS_LEVEL3_STATUS"
83
+ dark_gos_level3_lamp_status = "DARK_GOS_LEVEL3_LAMP_STATUS"
84
+ solar_gain_gos_level3_lamp_status = "SOLAR_GAIN_GOS_LEVEL3_LAMP_STATUS"
85
+ polcal_gos_level3_lamp_status = "POLCAL_GOS_LEVEL3_LAMP_STATUS"
86
+ dark_gos_polarizer_status = "DARK_GOS_POLARIZER_STATUS"
87
+ solar_gain_gos_polarizer_status = "SOLAR_GAIN_GOS_POLARIZER_STATUS"
88
+ polcal_gos_polarizer_status = "POLCAL_GOS_POLARIZER_STATUS"
89
+ dark_gos_polarizer_angle = "DARK_GOS_POLARIZER_ANGLE"
90
+ solar_gain_gos_polarizer_angle = "SOLAR_GAIN_GOS_POLARIZER_ANGLE"
91
+ polcal_gos_polarizer_angle = "POLCAL_GOS_POLARIZER_ANGLE"
92
+ dark_gos_retarder_status = "DARK_GOS_RETARDER_STATUS"
93
+ solar_gain_gos_retarder_status = "SOLAR_GAIN_GOS_RETARDER_STATUS"
94
+ polcal_gos_retarder_status = "POLCAL_GOS_RETARDER_STATUS"
95
+ dark_gos_retarder_angle = "DARK_GOS_RETARDER_ANGLE"
96
+ solar_gain_gos_retarder_angle = "SOLAR_GAIN_GOS_RETARDER_ANGLE"
97
+ polcal_gos_retarder_angle = "POLCAL_GOS_RETARDER_ANGLE"
98
+ dark_gos_level0_status = "DARK_GOS_LEVEL0_STATUS"
99
+ solar_gain_gos_level0_status = "SOLAR_GAIN_GOS_LEVEL0_STATUS"
100
+ polcal_gos_level0_status = "POLCAL_GOS_LEVEL0_STATUS"
101
+
102
+
103
+ class ConstantsBase:
104
+ """
105
+ Aggregate (from the constant buds flower pot) in a single property on task classes.
106
+
107
+ It also provides some default constants, but is intended to be subclassed by instruments.
108
+
109
+ To subclass:
110
+
111
+ 1. Create the actual subclass. All you need to do is add more @properties for the constants you want
112
+
113
+ 2. Update the instrument class's `constants_model_class` property to return the new subclass. For example::
114
+
115
+ class NewConstants(ConstantsBase):
116
+ @property
117
+ def something(self):
118
+ return 7
119
+
120
+ class InstrumentWorkflowTask(WorkflowTaskBase):
121
+ @property
122
+ def constants_model_class:
123
+ return NewConstants
124
+
125
+ ...
126
+
127
+ Parameters
128
+ ----------
129
+ recipe_run_id
130
+ The recipe_run_id
131
+ task_name
132
+ The task_name
133
+ """
134
+
135
+ def __init__(self, recipe_run_id: int, task_name: str):
136
+ self._db_dict = ConstantsDb(recipe_run_id=recipe_run_id, task_name=task_name)
137
+ self._recipe_run_id = recipe_run_id
138
+
139
+ # These management functions are all underscored because we want tab-complete to *only* show the available
140
+ # constants
141
+ def _update(self, d: dict):
142
+ self._db_dict.update(d)
143
+
144
+ def _purge(self):
145
+ self._db_dict.purge()
146
+
147
+ def _close(self):
148
+ self._db_dict.close()
149
+
150
+ def _rollback(self):
151
+ self._db_dict.rollback()
152
+
153
+ @property
154
+ def dataset_id(self) -> str:
155
+ """Define the dataset id constant."""
156
+ return Sqids(min_length=6, alphabet=ascii_uppercase).encode([self._recipe_run_id])
157
+
158
+ @property
159
+ def stokes_params(self) -> [str]:
160
+ """Return the list of stokes parameter names."""
161
+ return ["I", "Q", "U", "V"]
162
+
163
+ @property
164
+ def instrument(self) -> str:
165
+ """Get the instrument name."""
166
+ return self._db_dict[BudName.instrument]
167
+
168
+ @property
169
+ def num_cs_steps(self) -> int:
170
+ """Get the number of calibration sequence steps."""
171
+ return self._db_dict[BudName.num_cs_steps]
172
+
173
+ @property
174
+ def num_modstates(self) -> int:
175
+ """Get the number of modulation states."""
176
+ return self._db_dict[BudName.num_modstates]
177
+
178
+ @property
179
+ def retarder_name(self) -> str:
180
+ """Get the retarder name."""
181
+ return self._db_dict[BudName.retarder_name]
182
+
183
+ @property
184
+ def proposal_id(self) -> str:
185
+ """Get the proposal ID constant."""
186
+ return self._db_dict[BudName.proposal_id]
187
+
188
+ @property
189
+ def contributing_proposal_ids(self) -> [str]:
190
+ """Return the list of contributing proposal IDs."""
191
+ proposal_ids = self._db_dict[BudName.contributing_proposal_ids]
192
+ return list(proposal_ids)
193
+
194
+ @property
195
+ def experiment_id(self) -> str:
196
+ """Get the experiment ID constant."""
197
+ return self._db_dict[BudName.experiment_id]
198
+
199
+ @property
200
+ def contributing_experiment_ids(self) -> [str]:
201
+ """Return the list of contributing experiment IDs."""
202
+ experiment_ids = self._db_dict[BudName.contributing_experiment_ids]
203
+ return list(experiment_ids)
204
+
205
+ @property
206
+ def obs_ip_start_time(self) -> str:
207
+ """Return the start time of the observe IP."""
208
+ return self._db_dict[BudName.obs_ip_start_time]
209
+
210
+ @property
211
+ def average_cadence(self) -> float:
212
+ """Get the average cadence constant."""
213
+ return self._db_dict[BudName.average_cadence]
214
+
215
+ @property
216
+ def maximum_cadence(self) -> float:
217
+ """Get the maximum cadence constant constant."""
218
+ return self._db_dict[BudName.maximum_cadence]
219
+
220
+ @property
221
+ def minimum_cadence(self) -> float:
222
+ """Get the minimum cadence constant constant."""
223
+ return self._db_dict[BudName.minimum_cadence]
224
+
225
+ @property
226
+ def variance_cadence(self) -> float:
227
+ """Get the variance of the cadence constant."""
228
+ return self._db_dict[BudName.variance_cadence]
229
+
230
+ @property
231
+ def num_dsps_repeats(self) -> int:
232
+ """Get the number of dsps repeats."""
233
+ return self._db_dict[BudName.num_dsps_repeats]
234
+
235
+ @property
236
+ def dark_exposure_times(self) -> [float]:
237
+ """Get a list of exposure times used in the dark calibration."""
238
+ exposure_times = self._db_dict[BudName.dark_exposure_times]
239
+ return list(exposure_times)
240
+
241
+ @property
242
+ def dark_readout_exp_times(self) -> [float]:
243
+ """Get a list of readout exp times for all dark frames."""
244
+ readout_times = self._db_dict[BudName.dark_readout_exp_times]
245
+ return list(readout_times)
246
+
247
+ @property
248
+ def wavelength(self) -> float:
249
+ """Wavelength."""
250
+ return self._db_dict[BudName.wavelength]
251
+
252
+ @property
253
+ def camera_id(self) -> str:
254
+ """Return the camera ID constant."""
255
+ return self._db_dict[BudName.camera_id]
256
+
257
+ @property
258
+ def camera_name(self) -> str:
259
+ """Return the camera name for humans constant."""
260
+ return self._db_dict[BudName.camera_name]
261
+
262
+ @property
263
+ def camera_bit_depth(self) -> int:
264
+ """Return the camera bit depth constant."""
265
+ return self._db_dict[BudName.camera_bit_depth]
266
+
267
+ @property
268
+ def hardware_binning_x(self) -> int:
269
+ """Return the x-direction hardware binning constant."""
270
+ return self._db_dict[BudName.hardware_binning_x]
271
+
272
+ @property
273
+ def hardware_binning_y(self) -> int:
274
+ """Return the y-direction hardware binning constant."""
275
+ return self._db_dict[BudName.hardware_binning_y]
276
+
277
+ @property
278
+ def software_binning_x(self) -> int:
279
+ """Return the x-direction software binning constant."""
280
+ return self._db_dict[BudName.software_binning_x]
281
+
282
+ @property
283
+ def software_binning_y(self) -> int:
284
+ """Return the y-direction software binning constant."""
285
+ return self._db_dict[BudName.software_binning_y]
286
+
287
+ @property
288
+ def hls_version(self) -> str:
289
+ """Return the High-Level Software version."""
290
+ return self._db_dict[BudName.hls_version]
291
+
292
+ # Multi-task constants start here:
293
+
294
+ @property
295
+ def dark_observing_program_execution_id(self) -> [str]:
296
+ """Return the observing program execution id constant for the dark task."""
297
+ observing_programs = self._db_dict[BudName.dark_observing_program_execution_id]
298
+ return list(observing_programs)
299
+
300
+ @property
301
+ def solar_gain_observing_program_execution_id(self) -> [str]:
302
+ """Return the observing program execution id constant for the solar_gain task."""
303
+ observing_programs = self._db_dict[BudName.solar_gain_observing_program_execution_id]
304
+ return list(observing_programs)
305
+
306
+ @property
307
+ def polcal_observing_program_execution_id(self) -> [str]:
308
+ """Return the observing program execution id constant."""
309
+ observing_programs = self._db_dict[BudName.polcal_observing_program_execution_id]
310
+ return list(observing_programs)
311
+
312
+ @property
313
+ def dark_date_begin(self) -> str:
314
+ """Return the date begin header constant for the dark task."""
315
+ return self._db_dict[BudName.dark_date_begin]
316
+
317
+ @property
318
+ def solar_gain_date_begin(self) -> str:
319
+ """Return the date begin header constant for the solar gain task."""
320
+ return self._db_dict[BudName.solar_gain_date_begin]
321
+
322
+ @property
323
+ def polcal_date_begin(self) -> str:
324
+ """Return the time obs header constant for the polcal task."""
325
+ return self._db_dict[BudName.polcal_date_begin]
326
+
327
+ @property
328
+ def dark_date_end(self) -> str:
329
+ """Return the date end constant for the dark task."""
330
+ return self._db_dict[BudName.dark_date_end]
331
+
332
+ @property
333
+ def solar_gain_date_end(self) -> str:
334
+ """Return the date end constant for the solar gain task."""
335
+ return self._db_dict[BudName.solar_gain_date_end]
336
+
337
+ @property
338
+ def polcal_date_end(self) -> str:
339
+ """Return the date end constant for the polcal task."""
340
+ return self._db_dict[BudName.polcal_date_end]
341
+
342
+ @property
343
+ def dark_num_raw_frames_per_fpa(self) -> int:
344
+ """Return the number of raw frames per fpa constant for the dark task."""
345
+ return self._db_dict[BudName.dark_num_raw_frames_per_fpa]
346
+
347
+ @property
348
+ def solar_gain_num_raw_frames_per_fpa(self) -> int:
349
+ """Return the number of raw frames per fpa constant for the solar gain task."""
350
+ return self._db_dict[BudName.solar_gain_num_raw_frames_per_fpa]
351
+
352
+ @property
353
+ def polcal_num_raw_frames_per_fpa(self) -> int:
354
+ """Return the num raw frames per fpa constant for the polcal task."""
355
+ return self._db_dict[BudName.polcal_num_raw_frames_per_fpa]
356
+
357
+ @property
358
+ def dark_telescope_tracking_mode(self) -> str:
359
+ """Return the telescope tracking mode constant for the dark task."""
360
+ return self._db_dict[BudName.dark_telescope_tracking_mode]
361
+
362
+ @property
363
+ def solar_gain_telescope_tracking_mode(self) -> str:
364
+ """Return the telescope tracking mode constant for the solar gain task."""
365
+ return self._db_dict[BudName.solar_gain_telescope_tracking_mode]
366
+
367
+ @property
368
+ def polcal_telescope_tracking_mode(self) -> str:
369
+ """Return the telescope tracking mode constant for the polcal task."""
370
+ return self._db_dict[BudName.polcal_telescope_tracking_mode]
371
+
372
+ @property
373
+ def dark_coude_table_tracking_mode(self) -> str:
374
+ """Return the coude table tracking mode constant for the dark task."""
375
+ return self._db_dict[BudName.dark_coude_table_tracking_mode]
376
+
377
+ @property
378
+ def solar_gain_coude_table_tracking_mode(self) -> str:
379
+ """Return the coude table tracking mode constant for the solar gain task."""
380
+ return self._db_dict[BudName.solar_gain_coude_table_tracking_mode]
381
+
382
+ @property
383
+ def polcal_coude_table_tracking_mode(self) -> str:
384
+ """Return the coude table tracking mode constant for the polcal task."""
385
+ return self._db_dict[BudName.polcal_coude_table_tracking_mode]
386
+
387
+ @property
388
+ def dark_telescope_scanning_mode(self) -> str:
389
+ """Return the telescope scanning mode constant for the dark task."""
390
+ return self._db_dict[BudName.dark_telescope_scanning_mode]
391
+
392
+ @property
393
+ def solar_gain_telescope_scanning_mode(self) -> str:
394
+ """Return the telescope scanning mode constant for the solar gain task."""
395
+ return self._db_dict[BudName.solar_gain_telescope_scanning_mode]
396
+
397
+ @property
398
+ def polcal_telescope_scanning_mode(self) -> str:
399
+ """Return the telescope scanning mode constant for the polcal task."""
400
+ return self._db_dict[BudName.polcal_telescope_scanning_mode]
401
+
402
+ @property
403
+ def dark_average_light_level(self) -> float:
404
+ """Return the average light level constant for the dark task."""
405
+ return self._db_dict[BudName.dark_average_light_level]
406
+
407
+ @property
408
+ def solar_gain_average_light_level(self) -> float:
409
+ """Return the average light level constant for the solar gain task."""
410
+ return self._db_dict[BudName.solar_gain_average_light_level]
411
+
412
+ @property
413
+ def polcal_average_light_level(self) -> float:
414
+ """Return the average light level constant for the polcal task."""
415
+ return self._db_dict[BudName.polcal_average_light_level]
416
+
417
+ @property
418
+ def dark_average_telescope_elevation(self) -> float:
419
+ """Return the average telescope elevation constant for the dark task."""
420
+ return self._db_dict[BudName.dark_average_telescope_elevation]
421
+
422
+ @property
423
+ def solar_gain_average_telescope_elevation(self) -> float:
424
+ """Return the average telescope elevation constant for the solar gain task."""
425
+ return self._db_dict[BudName.solar_gain_average_telescope_elevation]
426
+
427
+ @property
428
+ def polcal_average_telescope_elevation(self) -> float:
429
+ """Return the average telescope elevation constant for the polcal task."""
430
+ return self._db_dict[BudName.polcal_average_telescope_elevation]
431
+
432
+ @property
433
+ def dark_average_coude_table_angle(self) -> float:
434
+ """Return the average coude table angle constant for the dark task."""
435
+ return self._db_dict[BudName.dark_average_coude_table_angle]
436
+
437
+ @property
438
+ def solar_gain_average_coude_table_angle(self) -> float:
439
+ """Return the average coude table angle constant for the solar gain task."""
440
+ return self._db_dict[BudName.solar_gain_average_coude_table_angle]
441
+
442
+ @property
443
+ def polcal_average_coude_table_angle(self) -> float:
444
+ """Return the average coude table angle constant for the polcal task."""
445
+ return self._db_dict[BudName.polcal_average_coude_table_angle]
446
+
447
+ @property
448
+ def dark_average_telescope_azimuth(self) -> float:
449
+ """Return the average telescope azimuth constant for the dark task."""
450
+ return self._db_dict[BudName.dark_average_telescope_azimuth]
451
+
452
+ @property
453
+ def solar_gain_average_telescope_azimuth(self) -> float:
454
+ """Return the average telescope azimuth constant for the solar gain task."""
455
+ return self._db_dict[BudName.solar_gain_average_telescope_azimuth]
456
+
457
+ @property
458
+ def polcal_average_telescope_azimuth(self) -> float:
459
+ """Return the average telescope azimuth constant for the polcal task."""
460
+ return self._db_dict[BudName.polcal_average_telescope_azimuth]
461
+
462
+ @property
463
+ def dark_gos_level3_status(self) -> str:
464
+ """Return the gos level3 status constant for the dark task."""
465
+ return self._db_dict[BudName.dark_gos_level3_status]
466
+
467
+ @property
468
+ def solar_gain_gos_level3_status(self) -> str:
469
+ """Return the gos level3 status constant for the solar gain task."""
470
+ return self._db_dict[BudName.solar_gain_gos_level3_status]
471
+
472
+ @property
473
+ def polcal_gos_level3_status(self) -> str:
474
+ """Return the gos level3 status constant for the polcal task."""
475
+ return self._db_dict[BudName.polcal_gos_level3_status]
476
+
477
+ @property
478
+ def dark_gos_level3_lamp_status(self) -> str:
479
+ """Return the gos level3 lamp status constant for the dark task."""
480
+ return self._db_dict[BudName.dark_gos_level3_lamp_status]
481
+
482
+ @property
483
+ def solar_gain_gos_level3_lamp_status(self) -> str:
484
+ """Return the gos level3 lamp status constant for the solar gain task."""
485
+ return self._db_dict[BudName.solar_gain_gos_level3_lamp_status]
486
+
487
+ @property
488
+ def polcal_gos_level3_lamp_status(self) -> str:
489
+ """Return the gos level3 lamp status constant for the polcal task."""
490
+ return self._db_dict[BudName.polcal_gos_level3_lamp_status]
491
+
492
+ @property
493
+ def dark_gos_polarizer_status(self) -> str:
494
+ """Return the gos polarizer status constant for the dark task."""
495
+ return self._db_dict[BudName.dark_gos_polarizer_status]
496
+
497
+ @property
498
+ def solar_gain_gos_polarizer_status(self) -> str:
499
+ """Return the gos polarizer status constant for the solar gain task."""
500
+ return self._db_dict[BudName.solar_gain_gos_polarizer_status]
501
+
502
+ @property
503
+ def polcal_gos_polarizer_status(self) -> str:
504
+ """Return the gos polarizer status constant for the polcal task."""
505
+ return self._db_dict[BudName.polcal_gos_polarizer_status]
506
+
507
+ @property
508
+ def dark_gos_polarizer_angle(self) -> float:
509
+ """Return the gos polarizer angle constant for the dark task."""
510
+ return self._db_dict[BudName.dark_gos_polarizer_angle]
511
+
512
+ @property
513
+ def solar_gain_gos_polarizer_angle(self) -> float:
514
+ """Return the gos polarizer angle constant for the solar gain task."""
515
+ return self._db_dict[BudName.solar_gain_gos_polarizer_angle]
516
+
517
+ @property
518
+ def polcal_gos_polarizer_angle(self) -> float:
519
+ """Return the gos polarizer angle constant for the polcal task."""
520
+ return self._db_dict[BudName.polcal_gos_polarizer_angle]
521
+
522
+ @property
523
+ def dark_gos_retarder_status(self) -> str:
524
+ """Return the gos retarder status constant for the dark task."""
525
+ return self._db_dict[BudName.dark_gos_retarder_status]
526
+
527
+ @property
528
+ def solar_gain_gos_retarder_status(self) -> str:
529
+ """Return the gos retarder status constant for the solar gain task."""
530
+ return self._db_dict[BudName.solar_gain_gos_retarder_status]
531
+
532
+ @property
533
+ def polcal_gos_retarder_status(self) -> str:
534
+ """Return the gos retarder status constant for the polcal task."""
535
+ return self._db_dict[BudName.polcal_gos_retarder_status]
536
+
537
+ @property
538
+ def dark_gos_retarder_angle(self) -> float:
539
+ """Return the gos retarder angle constant for the dark task."""
540
+ return self._db_dict[BudName.dark_gos_retarder_angle]
541
+
542
+ @property
543
+ def solar_gain_gos_retarder_angle(self) -> float:
544
+ """Return the gos retarder angle constant for the solar gain task."""
545
+ return self._db_dict[BudName.solar_gain_gos_retarder_angle]
546
+
547
+ @property
548
+ def polcal_gos_retarder_angle(self) -> float:
549
+ """Return the gos retarder angle constant for the polcal task."""
550
+ return self._db_dict[BudName.polcal_gos_retarder_angle]
551
+
552
+ @property
553
+ def dark_gos_level0_status(self) -> str:
554
+ """Return the gos level0 status constant for the dark task."""
555
+ return self._db_dict[BudName.dark_gos_level0_status]
556
+
557
+ @property
558
+ def solar_gain_gos_level0_status(self) -> str:
559
+ """Return the gos level0 status constant for the solar gain task."""
560
+ return self._db_dict[BudName.solar_gain_gos_level0_status]
561
+
562
+ @property
563
+ def polcal_gos_level0_status(self) -> str:
564
+ """Return the gos level0 status constant for the polcal task."""
565
+ return self._db_dict[BudName.polcal_gos_level0_status]