dkist-processing-common 14.0.2rc2__tar.gz → 14.0.3__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.
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/CHANGELOG.rst +19 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/PKG-INFO +3 -3
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/trial_catalog.py +7 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/mock_metadata_store.py +5 -1
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_trial_catalog.py +99 -9
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common.egg-info/PKG-INFO +3 -3
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common.egg-info/SOURCES.txt +0 -2
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common.egg-info/requires.txt +2 -2
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/pyproject.toml +2 -2
- dkist_processing_common-14.0.2rc2/changelog/332.feature.1.rst +0 -1
- dkist_processing_common-14.0.2rc2/changelog/332.feature.rst +0 -1
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/.gitignore +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/.pre-commit-config.yaml +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/.readthedocs.yml +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/.snyk +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/README.rst +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/changelog/.gitempty +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/__init__.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/_util/__init__.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/_util/constants.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/_util/graphql.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/_util/scratch.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/_util/tags.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/codecs/__init__.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/codecs/array.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/codecs/asdf.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/codecs/basemodel.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/codecs/bytes.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/codecs/fits.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/codecs/iobase.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/codecs/json.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/codecs/path.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/codecs/quality.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/codecs/str.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/config.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/fonts/Lato-Regular.ttf +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/fonts/__init__.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/manual.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/__init__.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/constants.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/dkist_location.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/extras.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/fits_access.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/flower_pot.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/fried_parameter.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/graphql.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/input_dataset.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/message.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/message_queue_binding.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/metric_code.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/parameters.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/quality.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/tags.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/task_name.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/telemetry.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/models/wavelength.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/__init__.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/average_bud.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/cs_step.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/dsps_repeat.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/experiment_id_bud.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/id_bud.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/l0_fits_access.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/l1_fits_access.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/lookup_bud.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/near_bud.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/observing_program_id_bud.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/proposal_id_bud.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/quality.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/retarder.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/single_value_single_key_flower.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/task.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/time.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/unique_bud.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/parsers/wavelength.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/__init__.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/assemble_movie.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/base.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/l1_output_data.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/mixin/__init__.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/mixin/globus.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/mixin/interservice_bus.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/mixin/metadata_store.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/mixin/object_store.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/mixin/quality/__init__.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/mixin/quality/_base.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/mixin/quality/_metrics.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/output_data_base.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/parse_l0_input_data.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/quality_metrics.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/teardown.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/transfer_input_data.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/trial_output_data.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/write_extra.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/write_l1.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tasks/write_l1_base.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/__init__.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/conftest.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_assemble_movie.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_assemble_quality.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_base.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_codecs.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_constants.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_construct_dataset_extras.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_cs_step.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_dkist_location.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_fits_access.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_flower_pot.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_fried_parameter.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_input_dataset.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_interservice_bus.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_interservice_bus_mixin.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_manual_processing.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_output_data_base.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_parameters.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_parse_l0_input_data.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_publish_catalog_messages.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_quality.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_quality_mixin.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_scratch.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_stems.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_submit_dataset_metadata.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_tags.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_task_name.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_task_parsing.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_teardown.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_transfer_input_data.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_transfer_l1_output_data.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_trial_output_data.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_workflow_task_base.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common/tests/test_write_l1.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common.egg-info/dependency_links.txt +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/dkist_processing_common.egg-info/top_level.txt +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/docs/Makefile +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/docs/changelog.rst +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/docs/conf.py +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/docs/index.rst +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/docs/landing_page.rst +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/docs/make.bat +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/docs/requirements.txt +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/licenses/LICENSE.rst +0 -0
- {dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/setup.cfg +0 -0
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
v14.0.3 (2026-05-05)
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
Features
|
|
5
|
+
--------
|
|
6
|
+
|
|
7
|
+
- Add recipe run configuration information relevant to the metadata ASDF file generated in trial workflows. (`#318 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/318>`__)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
v14.0.2 (2026-05-04)
|
|
11
|
+
====================
|
|
12
|
+
|
|
13
|
+
Features
|
|
14
|
+
--------
|
|
15
|
+
|
|
16
|
+
- Convert TASK_TYPES quality metric to the new methodology. (`#332 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/332>`__)
|
|
17
|
+
- Add `TaskCount` quality metric model. (`#332 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/332>`__)
|
|
18
|
+
|
|
19
|
+
|
|
1
20
|
v14.0.1 (2026-04-22)
|
|
2
21
|
====================
|
|
3
22
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-common
|
|
3
|
-
Version: 14.0.
|
|
3
|
+
Version: 14.0.3
|
|
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
|
|
@@ -56,9 +56,9 @@ Requires-Dist: sphinx-autoapi!=3.1.0; extra == "docs"
|
|
|
56
56
|
Requires-Dist: pytest; extra == "docs"
|
|
57
57
|
Requires-Dist: dkist-sphinx-theme; extra == "docs"
|
|
58
58
|
Provides-Extra: inventory
|
|
59
|
-
Requires-Dist: dkist-inventory<2.0,>=1.11.
|
|
59
|
+
Requires-Dist: dkist-inventory<2.0,>=1.11.7; extra == "inventory"
|
|
60
60
|
Provides-Extra: asdf
|
|
61
|
-
Requires-Dist: dkist-inventory[asdf]<2.0,>=1.11.
|
|
61
|
+
Requires-Dist: dkist-inventory[asdf]<2.0,>=1.11.7; extra == "asdf"
|
|
62
62
|
Provides-Extra: quality
|
|
63
63
|
Requires-Dist: dkist-quality<3.0,>=2.0.1; extra == "quality"
|
|
64
64
|
|
|
@@ -155,6 +155,12 @@ class CreateTrialAsdf(OutputDataBase):
|
|
|
155
155
|
Tag.input_dataset_calibration_frames()
|
|
156
156
|
)
|
|
157
157
|
|
|
158
|
+
with self.telemetry_span("Collate recipe run configuration"):
|
|
159
|
+
recipe_run_config = self.metadata_store_recipe_run.configuration.model_dump(
|
|
160
|
+
exclude_unset=True,
|
|
161
|
+
exclude_none=True,
|
|
162
|
+
)
|
|
163
|
+
|
|
158
164
|
with self.telemetry_span("Generate ASDF tree"):
|
|
159
165
|
tree = asdf_tree_from_filenames(
|
|
160
166
|
filenames=self.absolute_output_frame_paths,
|
|
@@ -163,6 +169,7 @@ class CreateTrialAsdf(OutputDataBase):
|
|
|
163
169
|
parameters=parameters,
|
|
164
170
|
observation_frames=observation_frames,
|
|
165
171
|
calibration_frames=calibration_frames,
|
|
172
|
+
recipe_run_config=recipe_run_config,
|
|
166
173
|
)
|
|
167
174
|
|
|
168
175
|
trial_history = [
|
|
@@ -96,7 +96,11 @@ default_parameters_doc = [
|
|
|
96
96
|
},
|
|
97
97
|
]
|
|
98
98
|
|
|
99
|
-
default_recipe_run_configuration = {
|
|
99
|
+
default_recipe_run_configuration = {
|
|
100
|
+
"tile_size": TILE_SIZE,
|
|
101
|
+
"destination_bucket": "data",
|
|
102
|
+
"validate_l1_on_write": True,
|
|
103
|
+
}
|
|
100
104
|
|
|
101
105
|
|
|
102
106
|
class Unset:
|
|
@@ -27,8 +27,12 @@ from dkist_processing_common.models.tags import Tag
|
|
|
27
27
|
from dkist_processing_common.tasks import CreateTrialAsdf
|
|
28
28
|
from dkist_processing_common.tasks import CreateTrialDatasetInventory
|
|
29
29
|
from dkist_processing_common.tasks import CreateTrialQualityReport
|
|
30
|
+
from dkist_processing_common.tests.mock_metadata_store import RecipeRunResponseMapping
|
|
30
31
|
from dkist_processing_common.tests.mock_metadata_store import default_observe_frames_doc
|
|
32
|
+
from dkist_processing_common.tests.mock_metadata_store import default_recipe_run_configuration
|
|
33
|
+
from dkist_processing_common.tests.mock_metadata_store import fake_gql_client_factory
|
|
31
34
|
from dkist_processing_common.tests.mock_metadata_store import input_dataset_parameters_part_factory
|
|
35
|
+
from dkist_processing_common.tests.mock_metadata_store import make_default_recipe_run_response
|
|
32
36
|
|
|
33
37
|
|
|
34
38
|
def _parameter_for_test_comparison(param: dict) -> dict:
|
|
@@ -155,20 +159,46 @@ def scratch_with_l1_frames_and_other_frames(
|
|
|
155
159
|
return scratch
|
|
156
160
|
|
|
157
161
|
|
|
162
|
+
@pytest.fixture()
|
|
163
|
+
def patch_default_graphql_client(mocker, fake_gql_client) -> None:
|
|
164
|
+
"""Patch the metadata store client to use the default fake GraphQL client."""
|
|
165
|
+
mocker.patch(
|
|
166
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient",
|
|
167
|
+
new=fake_gql_client,
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
@pytest.fixture()
|
|
172
|
+
def fake_gql_client_without_recipe_config():
|
|
173
|
+
"""GraphQL client mock that returns a recipe run response without explicit configuration."""
|
|
174
|
+
recipe_run_response = make_default_recipe_run_response()
|
|
175
|
+
recipe_run_response.configuration = None
|
|
176
|
+
|
|
177
|
+
return fake_gql_client_factory(
|
|
178
|
+
response_mapping_override=RecipeRunResponseMapping(response=recipe_run_response)
|
|
179
|
+
)
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
@pytest.fixture()
|
|
183
|
+
def patch_graphql_client_without_recipe_config(
|
|
184
|
+
mocker, fake_gql_client_without_recipe_config
|
|
185
|
+
) -> None:
|
|
186
|
+
"""Patch the metadata store client to return a recipe run response without config."""
|
|
187
|
+
mocker.patch(
|
|
188
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient",
|
|
189
|
+
new=fake_gql_client_without_recipe_config,
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
|
|
158
193
|
@pytest.fixture()
|
|
159
194
|
def create_trial_dataset_inventory_task(
|
|
160
195
|
recipe_run_id,
|
|
161
196
|
tmp_path,
|
|
162
197
|
scratch_with_l1_frames,
|
|
163
198
|
fake_constants_db,
|
|
164
|
-
|
|
165
|
-
fake_gql_client,
|
|
199
|
+
patch_default_graphql_client,
|
|
166
200
|
) -> CreateTrialDatasetInventory:
|
|
167
201
|
"""An instance of CreateTrialDatasetInventory with L1 frames tagged in scratch."""
|
|
168
|
-
mocker.patch(
|
|
169
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient",
|
|
170
|
-
new=fake_gql_client,
|
|
171
|
-
)
|
|
172
202
|
task = CreateTrialDatasetInventory(
|
|
173
203
|
recipe_run_id=recipe_run_id,
|
|
174
204
|
workflow_name="trial_dataset_inventory",
|
|
@@ -182,7 +212,7 @@ def create_trial_dataset_inventory_task(
|
|
|
182
212
|
|
|
183
213
|
@pytest.fixture()
|
|
184
214
|
def create_trial_asdf_task(
|
|
185
|
-
recipe_run_id, tmp_path, scratch_with_l1_frames, fake_constants_db
|
|
215
|
+
recipe_run_id, tmp_path, scratch_with_l1_frames, fake_constants_db, patch_default_graphql_client
|
|
186
216
|
) -> CreateTrialAsdf:
|
|
187
217
|
"""An instance of CreateTrialAsdf with L1 frames tagged in scratch."""
|
|
188
218
|
task = CreateTrialAsdf(
|
|
@@ -196,9 +226,33 @@ def create_trial_asdf_task(
|
|
|
196
226
|
task._purge()
|
|
197
227
|
|
|
198
228
|
|
|
229
|
+
@pytest.fixture(scope="function")
|
|
230
|
+
def create_trial_asdf_task_without_recipe_config(
|
|
231
|
+
recipe_run_id,
|
|
232
|
+
tmp_path,
|
|
233
|
+
scratch_with_l1_frames,
|
|
234
|
+
fake_constants_db,
|
|
235
|
+
patch_graphql_client_without_recipe_config,
|
|
236
|
+
) -> CreateTrialAsdf:
|
|
237
|
+
"""An instance of CreateTrialAsdf with L1 frames and no recipe run configuration."""
|
|
238
|
+
task = CreateTrialAsdf(
|
|
239
|
+
recipe_run_id=recipe_run_id,
|
|
240
|
+
workflow_name="trial_asdf",
|
|
241
|
+
workflow_version="trial_asdf_version",
|
|
242
|
+
)
|
|
243
|
+
task.scratch = scratch_with_l1_frames
|
|
244
|
+
task.constants._update(fake_constants_db)
|
|
245
|
+
yield task
|
|
246
|
+
task._purge()
|
|
247
|
+
|
|
248
|
+
|
|
199
249
|
@pytest.fixture(scope="function")
|
|
200
250
|
def create_trial_asdf_task_with_params(
|
|
201
|
-
recipe_run_id,
|
|
251
|
+
recipe_run_id,
|
|
252
|
+
tmp_path,
|
|
253
|
+
scratch_with_l1_frames_and_parameters,
|
|
254
|
+
fake_constants_db,
|
|
255
|
+
patch_default_graphql_client,
|
|
202
256
|
) -> CreateTrialAsdf:
|
|
203
257
|
"""An instance of CreateTrialAsdf with L1 frames and input parameters tagged in scratch."""
|
|
204
258
|
task = CreateTrialAsdf(
|
|
@@ -214,7 +268,11 @@ def create_trial_asdf_task_with_params(
|
|
|
214
268
|
|
|
215
269
|
@pytest.fixture()
|
|
216
270
|
def create_trial_asdf_task_with_frames(
|
|
217
|
-
recipe_run_id,
|
|
271
|
+
recipe_run_id,
|
|
272
|
+
tmp_path,
|
|
273
|
+
scratch_with_l1_frames_and_other_frames,
|
|
274
|
+
fake_constants_db,
|
|
275
|
+
patch_default_graphql_client,
|
|
218
276
|
) -> CreateTrialAsdf:
|
|
219
277
|
"""An instance of CreateTrialAsdf with L1 frames and input frame docs tagged in scratch."""
|
|
220
278
|
task = CreateTrialAsdf(
|
|
@@ -389,6 +447,38 @@ def test_create_trial_asdf_with_frames(create_trial_asdf_task_with_frames):
|
|
|
389
447
|
assert set(cal_keys_str) == expected_keys
|
|
390
448
|
|
|
391
449
|
|
|
450
|
+
def test_create_trial_asdf_includes_recipe_run_config(create_trial_asdf_task):
|
|
451
|
+
"""
|
|
452
|
+
:Given: CreateTrialAsdf with recipe run configuration available in metadata store
|
|
453
|
+
:When: CreateTrialAsdf is run
|
|
454
|
+
:Then: The ASDF tree contains normalized recipe run configuration metadata
|
|
455
|
+
"""
|
|
456
|
+
task = create_trial_asdf_task
|
|
457
|
+
task()
|
|
458
|
+
|
|
459
|
+
tree = next(task.read(tags=[Tag.output(), Tag.asdf()], decoder=asdf_decoder))
|
|
460
|
+
ds = tree["dataset"]
|
|
461
|
+
|
|
462
|
+
assert ds.meta["recipe_run_config"] == default_recipe_run_configuration
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
def test_create_trial_asdf_without_recipe_run_config_has_empty_config(
|
|
466
|
+
create_trial_asdf_task_without_recipe_config,
|
|
467
|
+
):
|
|
468
|
+
"""
|
|
469
|
+
:Given: CreateTrialAsdf with no recipe run configuration in metadata store
|
|
470
|
+
:When: CreateTrialAsdf is run
|
|
471
|
+
:Then: The ASDF tree contains an empty normalized recipe run configuration structure
|
|
472
|
+
"""
|
|
473
|
+
task = create_trial_asdf_task_without_recipe_config
|
|
474
|
+
task()
|
|
475
|
+
|
|
476
|
+
tree = next(task.read(tags=[Tag.output(), Tag.asdf()], decoder=asdf_decoder))
|
|
477
|
+
ds = tree["dataset"]
|
|
478
|
+
|
|
479
|
+
assert ds.meta["recipe_run_config"] == {}
|
|
480
|
+
|
|
481
|
+
|
|
392
482
|
def test_create_trial_quality_report(create_trial_quality_report_task):
|
|
393
483
|
"""
|
|
394
484
|
:Given: An instance of CreateTrialQualityReport with tagged quality data
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-common
|
|
3
|
-
Version: 14.0.
|
|
3
|
+
Version: 14.0.3
|
|
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
|
|
@@ -56,9 +56,9 @@ Requires-Dist: sphinx-autoapi!=3.1.0; extra == "docs"
|
|
|
56
56
|
Requires-Dist: pytest; extra == "docs"
|
|
57
57
|
Requires-Dist: dkist-sphinx-theme; extra == "docs"
|
|
58
58
|
Provides-Extra: inventory
|
|
59
|
-
Requires-Dist: dkist-inventory<2.0,>=1.11.
|
|
59
|
+
Requires-Dist: dkist-inventory<2.0,>=1.11.7; extra == "inventory"
|
|
60
60
|
Provides-Extra: asdf
|
|
61
|
-
Requires-Dist: dkist-inventory[asdf]<2.0,>=1.11.
|
|
61
|
+
Requires-Dist: dkist-inventory[asdf]<2.0,>=1.11.7; extra == "asdf"
|
|
62
62
|
Provides-Extra: quality
|
|
63
63
|
Requires-Dist: dkist-quality<3.0,>=2.0.1; extra == "quality"
|
|
64
64
|
|
|
@@ -24,7 +24,7 @@ sunpy>=3.0.0
|
|
|
24
24
|
talus==1.3.4
|
|
25
25
|
|
|
26
26
|
[asdf]
|
|
27
|
-
dkist-inventory[asdf]<2.0,>=1.11.
|
|
27
|
+
dkist-inventory[asdf]<2.0,>=1.11.7
|
|
28
28
|
|
|
29
29
|
[docs]
|
|
30
30
|
setuptools
|
|
@@ -36,7 +36,7 @@ pytest
|
|
|
36
36
|
dkist-sphinx-theme
|
|
37
37
|
|
|
38
38
|
[inventory]
|
|
39
|
-
dkist-inventory<2.0,>=1.11.
|
|
39
|
+
dkist-inventory<2.0,>=1.11.7
|
|
40
40
|
|
|
41
41
|
[quality]
|
|
42
42
|
dkist-quality<3.0,>=2.0.1
|
|
@@ -75,10 +75,10 @@ docs = [
|
|
|
75
75
|
"dkist-sphinx-theme",
|
|
76
76
|
]
|
|
77
77
|
inventory = [
|
|
78
|
-
"dkist-inventory >= 1.11.
|
|
78
|
+
"dkist-inventory >= 1.11.7, <2.0",
|
|
79
79
|
]
|
|
80
80
|
asdf = [
|
|
81
|
-
"dkist-inventory[asdf] >= 1.11.
|
|
81
|
+
"dkist-inventory[asdf] >= 1.11.7, <2.0",
|
|
82
82
|
]
|
|
83
83
|
quality = [
|
|
84
84
|
"dkist-quality >= 2.0.1, <3.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Added `TaskCount` quality metric model.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Convert TASK_TYPES quality metric to the new methodology.
|
|
File without changes
|
{dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/.pre-commit-config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_common-14.0.2rc2 → dkist_processing_common-14.0.3}/bitbucket-pipelines.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|