dkist-processing-common 10.6.1rc5__tar.gz → 10.6.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-10.6.1rc5 → dkist_processing_common-10.6.3}/CHANGELOG.rst +38 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/PKG-INFO +7 -2
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/README.rst +5 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/bitbucket-pipelines.yml +7 -1
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/manual.py +1 -1
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/wavelength.py +1 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/transfer_input_data.py +11 -6
- dkist_processing_common-10.6.3/dkist_processing_common/tests/test_manual_processing.py +34 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_transfer_input_data.py +48 -3
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common.egg-info/PKG-INFO +7 -2
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common.egg-info/SOURCES.txt +1 -2
- dkist_processing_common-10.6.1rc5/changelog/236.misc.1.rst +0 -2
- dkist_processing_common-10.6.1rc5/changelog/236.misc.rst +0 -3
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/.gitignore +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/.pre-commit-config.yaml +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/.readthedocs.yml +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/.snyk +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/changelog/.gitempty +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/__init__.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/_util/__init__.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/_util/constants.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/_util/graphql.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/_util/scratch.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/_util/tags.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/codecs/__init__.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/codecs/asdf.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/codecs/bytes.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/codecs/fits.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/codecs/iobase.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/codecs/json.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/codecs/path.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/codecs/quality.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/codecs/str.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/config.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/fonts/Lato-Regular.ttf +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/fonts/__init__.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/__init__.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/constants.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/fits_access.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/flower_pot.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/graphql.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/message.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/message_queue_binding.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/metric_code.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/parameters.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/quality.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/tags.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/models/task_name.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/__init__.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/cs_step.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/dsps_repeat.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/experiment_id_bud.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/id_bud.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/l0_fits_access.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/l1_fits_access.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/near_bud.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/proposal_id_bud.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/quality.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/retarder.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/single_value_single_key_flower.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/task.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/time.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/unique_bud.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/parsers/wavelength.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/__init__.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/assemble_movie.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/base.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/l1_output_data.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/mixin/__init__.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/mixin/globus.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/mixin/input_dataset.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/mixin/interservice_bus.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/mixin/metadata_store.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/mixin/object_store.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/mixin/quality/__init__.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/mixin/quality/_base.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/mixin/quality/_metrics.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/output_data_base.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/parse_l0_input_data.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/quality_metrics.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/teardown.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/trial_catalog.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/trial_output_data.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tasks/write_l1.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/__init__.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/conftest.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_assemble_movie.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_assemble_quality.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_base.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_codecs.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_constants.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_cs_step.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_fits_access.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_flower_pot.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_input_dataset.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_interservice_bus.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_interservice_bus_mixin.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_output_data_base.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_parameters.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_parse_l0_input_data.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_publish_catalog_messages.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_quality.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_quality_mixin.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_scratch.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_stems.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_submit_dataset_metadata.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_tags.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_task_name.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_task_parsing.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_teardown.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_transfer_l1_output_data.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_trial_catalog.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_trial_output_data.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_workflow_task_base.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common/tests/test_write_l1.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common.egg-info/dependency_links.txt +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common.egg-info/requires.txt +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/dkist_processing_common.egg-info/top_level.txt +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/docs/Makefile +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/docs/changelog.rst +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/docs/conf.py +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/docs/index.rst +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/docs/landing_page.rst +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/docs/make.bat +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/docs/requirements.txt +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/licenses/LICENSE.rst +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/pyproject.toml +0 -0
- {dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/setup.cfg +0 -0
|
@@ -1,3 +1,41 @@
|
|
|
1
|
+
v10.6.3 (2025-03-27)
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
Bugfixes
|
|
5
|
+
--------
|
|
6
|
+
|
|
7
|
+
- Fix a bug where transfer input dataset fails if any of the input dataset part documents are missing. (`#241 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/241>`__)
|
|
8
|
+
- Pydantic model validator now returns the validated instance. (`#240 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/240>`__)
|
|
9
|
+
|
|
10
|
+
v10.6.2 (2025-03-19)
|
|
11
|
+
====================
|
|
12
|
+
|
|
13
|
+
Bugfixes
|
|
14
|
+
--------
|
|
15
|
+
|
|
16
|
+
- Fix a bug in manual processing where a metadata store dataclass has been previously converted to
|
|
17
|
+
a Pydantic BaseModel. Add a test that will catch future similar bugs. (`#239 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/239>`__)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
Misc
|
|
21
|
+
----
|
|
22
|
+
|
|
23
|
+
- Add coverage badge to README.rst. (`#238 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/238>`__)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
v10.6.1 (2025-03-14)
|
|
27
|
+
====================
|
|
28
|
+
|
|
29
|
+
Misc
|
|
30
|
+
----
|
|
31
|
+
|
|
32
|
+
- Convert dataclasses in the graphql model to Pydantic BaseModels for additional validation. In the
|
|
33
|
+
RecipeRunResponse class, configuration is converted from a JSON dictionary to its own Pydantic BaseModel.
|
|
34
|
+
In the InputDatasetPartResponse class, the inputDatasetPartDocument is now returned as a list of dictionaries. (`#236 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/236>`__)
|
|
35
|
+
- Change returns from the metadata store queries into Pydantic BaseModel instances. Remove unnecessary parsing
|
|
36
|
+
and error checking in the metadata store mixin. (`#236 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/236>`__)
|
|
37
|
+
|
|
38
|
+
|
|
1
39
|
v10.6.0 (2025-03-03)
|
|
2
40
|
====================
|
|
3
41
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-common
|
|
3
|
-
Version: 10.6.
|
|
3
|
+
Version: 10.6.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
|
|
@@ -65,6 +65,8 @@ Requires-Dist: dkist-quality<2.0,>=1.2.1; extra == "quality"
|
|
|
65
65
|
dkist-processing-common
|
|
66
66
|
=======================
|
|
67
67
|
|
|
68
|
+
|codecov|
|
|
69
|
+
|
|
68
70
|
This repository works in concert with `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_ and `dkist-processing-*instrument*` to
|
|
69
71
|
form the DKIST calibration processing stack.
|
|
70
72
|
|
|
@@ -173,3 +175,6 @@ then the Bitbucket pipeline will fail. To be able to use the same tag you must d
|
|
|
173
175
|
# Re-tag with the same version
|
|
174
176
|
git tag vWHATEVER.THE.VERSION
|
|
175
177
|
git push --tags origin main
|
|
178
|
+
|
|
179
|
+
.. |codecov| image:: https://codecov.io/bb/dkistdc/dkist-processing-common/graph/badge.svg?token=3QSLGSEF3O
|
|
180
|
+
:target: https://codecov.io/bb/dkistdc/dkist-processing-common
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
dkist-processing-common
|
|
2
2
|
=======================
|
|
3
3
|
|
|
4
|
+
|codecov|
|
|
5
|
+
|
|
4
6
|
This repository works in concert with `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_ and `dkist-processing-*instrument*` to
|
|
5
7
|
form the DKIST calibration processing stack.
|
|
6
8
|
|
|
@@ -109,3 +111,6 @@ then the Bitbucket pipeline will fail. To be able to use the same tag you must d
|
|
|
109
111
|
# Re-tag with the same version
|
|
110
112
|
git tag vWHATEVER.THE.VERSION
|
|
111
113
|
git push --tags origin main
|
|
114
|
+
|
|
115
|
+
.. |codecov| image:: https://codecov.io/bb/dkistdc/dkist-processing-common/graph/badge.svg?token=3QSLGSEF3O
|
|
116
|
+
:target: https://codecov.io/bb/dkistdc/dkist-processing-common
|
{dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/bitbucket-pipelines.yml
RENAMED
|
@@ -18,24 +18,28 @@ definitions:
|
|
|
18
18
|
- chmod 755 ci_scripts/latest/execute_script.sh
|
|
19
19
|
artifacts:
|
|
20
20
|
- ci_scripts/latest/execute_script.sh
|
|
21
|
+
|
|
21
22
|
- step: &lint
|
|
22
23
|
caches:
|
|
23
24
|
- pip
|
|
24
25
|
name: Lint
|
|
25
26
|
script:
|
|
26
27
|
- ./ci_scripts/latest/execute_script.sh lint_python.sh
|
|
28
|
+
|
|
27
29
|
- step: &changelog
|
|
28
30
|
caches:
|
|
29
31
|
- pip
|
|
30
32
|
name: Changelog
|
|
31
33
|
script:
|
|
32
34
|
- ./ci_scripts/latest/execute_script.sh check_changelog.sh
|
|
35
|
+
|
|
33
36
|
- step: &scan
|
|
34
37
|
caches:
|
|
35
38
|
- pip
|
|
36
39
|
name: Scan
|
|
37
40
|
script:
|
|
38
41
|
- ./ci_scripts/latest/execute_script.sh scan_python.sh
|
|
42
|
+
|
|
39
43
|
- step: &test
|
|
40
44
|
caches:
|
|
41
45
|
- pip
|
|
@@ -43,7 +47,9 @@ definitions:
|
|
|
43
47
|
script:
|
|
44
48
|
- pip install -U pip
|
|
45
49
|
- pip install .[test]
|
|
46
|
-
- pytest -v -n auto -m "not development" --cov dkist_processing_common
|
|
50
|
+
- pytest -v -n auto -m "not development" --cov dkist_processing_common --cov-report=xml --cov-report=term-missing
|
|
51
|
+
- ./ci_scripts/latest/execute_script.sh upload_coverage.sh
|
|
52
|
+
|
|
47
53
|
services:
|
|
48
54
|
- redis
|
|
49
55
|
- broker
|
|
@@ -182,7 +182,7 @@ def writing_metadata_store_record_provenance(self, is_task_manual: bool, library
|
|
|
182
182
|
workflowVersion=self.workflow_version,
|
|
183
183
|
)
|
|
184
184
|
self.write(
|
|
185
|
-
data=
|
|
185
|
+
data=params.model_dump(),
|
|
186
186
|
encoder=json_encoder,
|
|
187
187
|
tags=["PROVENANCE_RECORD"],
|
|
188
188
|
relative_path=f"{self.task_name}_provenance.json",
|
|
@@ -20,12 +20,17 @@ class TransferL0Data(WorkflowTaskBase, GlobusMixin, InputDatasetMixin):
|
|
|
20
20
|
|
|
21
21
|
def download_input_dataset(self):
|
|
22
22
|
"""Get the input dataset document parts and save it to scratch with the appropriate tags."""
|
|
23
|
-
if
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
self.write(
|
|
23
|
+
if observe_frames := self.metadata_store_input_dataset_observe_frames:
|
|
24
|
+
observe_doc = observe_frames.inputDatasetPartDocument
|
|
25
|
+
self.write(observe_doc, tags=Tag.input_dataset_observe_frames(), encoder=json_encoder)
|
|
26
|
+
if calibration_frames := self.metadata_store_input_dataset_calibration_frames:
|
|
27
|
+
calibration_doc = calibration_frames.inputDatasetPartDocument
|
|
28
|
+
self.write(
|
|
29
|
+
calibration_doc, tags=Tag.input_dataset_calibration_frames(), encoder=json_encoder
|
|
30
|
+
)
|
|
31
|
+
if parameters := self.metadata_store_input_dataset_parameters:
|
|
32
|
+
parameters_doc = parameters.inputDatasetPartDocument
|
|
33
|
+
self.write(parameters_doc, tags=Tag.input_dataset_parameters(), encoder=json_encoder)
|
|
29
34
|
|
|
30
35
|
def format_transfer_items(
|
|
31
36
|
self, input_dataset_objects: list[InputDatasetObject]
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
|
|
3
|
+
from dkist_processing_common.manual import ManualProcessing
|
|
4
|
+
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ProvenanceTask(WorkflowTaskBase):
|
|
8
|
+
record_provenance = True
|
|
9
|
+
|
|
10
|
+
def run(self):
|
|
11
|
+
...
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@pytest.fixture(scope="function")
|
|
15
|
+
def manual_processing_run(tmp_path, recipe_run_id):
|
|
16
|
+
with ManualProcessing(
|
|
17
|
+
recipe_run_id=recipe_run_id,
|
|
18
|
+
workflow_path=tmp_path,
|
|
19
|
+
workflow_name="manual",
|
|
20
|
+
workflow_version="manual",
|
|
21
|
+
) as manual_processing_run:
|
|
22
|
+
yield manual_processing_run
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def test_manual_record_provenance(tmp_path, recipe_run_id, manual_processing_run):
|
|
26
|
+
"""
|
|
27
|
+
Given: A WorkflowTaskBase subclass with provenance recording turned on
|
|
28
|
+
When: Running the task with the ManualProcessing wrapper
|
|
29
|
+
Then: The provenance record exists on disk
|
|
30
|
+
"""
|
|
31
|
+
manual_processing_run.run_task(task=ProvenanceTask)
|
|
32
|
+
directory = tmp_path / str(recipe_run_id)
|
|
33
|
+
provenance_file = directory / "ProvenanceTask_provenance.json"
|
|
34
|
+
assert provenance_file.exists()
|
|
@@ -17,10 +17,20 @@ class TransferL0DataTask(TransferL0Data):
|
|
|
17
17
|
...
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
class FakeGQLClientMissingPart(FakeGQLClient):
|
|
21
|
+
"""Same metadata mocker with calibration input dataset part missing."""
|
|
22
|
+
|
|
23
|
+
def execute_gql_query(self, **kwargs):
|
|
24
|
+
original_response = super().execute_gql_query(**kwargs)
|
|
25
|
+
# Remove calibration frames part
|
|
26
|
+
del original_response[0].recipeInstance.inputDataset.inputDatasetInputDatasetParts[2]
|
|
27
|
+
return original_response
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def _transfer_l0_data_task_with_client(recipe_run_id, tmp_path, mocker, client_cls):
|
|
22
31
|
mocker.patch(
|
|
23
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient",
|
|
32
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient",
|
|
33
|
+
new=client_cls,
|
|
24
34
|
)
|
|
25
35
|
with TransferL0DataTask(
|
|
26
36
|
recipe_run_id=recipe_run_id,
|
|
@@ -35,6 +45,18 @@ def transfer_l0_data_task(recipe_run_id, tmp_path, mocker):
|
|
|
35
45
|
task._purge()
|
|
36
46
|
|
|
37
47
|
|
|
48
|
+
@pytest.fixture
|
|
49
|
+
def transfer_l0_data_task(recipe_run_id, tmp_path, mocker):
|
|
50
|
+
yield from _transfer_l0_data_task_with_client(recipe_run_id, tmp_path, mocker, FakeGQLClient)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
@pytest.fixture
|
|
54
|
+
def transfer_l0_data_task_missing_part(recipe_run_id, tmp_path, mocker):
|
|
55
|
+
yield from _transfer_l0_data_task_with_client(
|
|
56
|
+
recipe_run_id, tmp_path, mocker, FakeGQLClientMissingPart
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
|
|
38
60
|
def test_download_dataset(transfer_l0_data_task):
|
|
39
61
|
"""
|
|
40
62
|
:Given: a TransferL0Data task with a valid input dataset
|
|
@@ -63,6 +85,29 @@ def test_download_dataset(transfer_l0_data_task):
|
|
|
63
85
|
assert parameters_doc_from_file == expected_parameters_doc
|
|
64
86
|
|
|
65
87
|
|
|
88
|
+
def test_download_dataset_missing_part(transfer_l0_data_task_missing_part):
|
|
89
|
+
"""
|
|
90
|
+
:Given: a TransferL0Data task with a valid input dataset without calibration frames
|
|
91
|
+
:When: downloading the dataset documents from the metadata store
|
|
92
|
+
:Then: the correct number of documents are written to disk
|
|
93
|
+
"""
|
|
94
|
+
# Given
|
|
95
|
+
task = transfer_l0_data_task_missing_part
|
|
96
|
+
# When
|
|
97
|
+
task.download_input_dataset()
|
|
98
|
+
# Then
|
|
99
|
+
observe_doc_from_file = next(
|
|
100
|
+
task.read(tags=Tag.input_dataset_observe_frames(), decoder=json_decoder)
|
|
101
|
+
)
|
|
102
|
+
parameters_doc_from_file = next(
|
|
103
|
+
task.read(tags=Tag.input_dataset_parameters(), decoder=json_decoder)
|
|
104
|
+
)
|
|
105
|
+
with pytest.raises(StopIteration):
|
|
106
|
+
calibration_doc_from_file = next(
|
|
107
|
+
task.read(tags=Tag.input_dataset_calibration_frames(), decoder=json_decoder)
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
|
|
66
111
|
def test_format_frame_transfer_items(transfer_l0_data_task):
|
|
67
112
|
"""
|
|
68
113
|
:Given: a TransferL0Data task with a downloaded input dataset
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-common
|
|
3
|
-
Version: 10.6.
|
|
3
|
+
Version: 10.6.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
|
|
@@ -65,6 +65,8 @@ Requires-Dist: dkist-quality<2.0,>=1.2.1; extra == "quality"
|
|
|
65
65
|
dkist-processing-common
|
|
66
66
|
=======================
|
|
67
67
|
|
|
68
|
+
|codecov|
|
|
69
|
+
|
|
68
70
|
This repository works in concert with `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_ and `dkist-processing-*instrument*` to
|
|
69
71
|
form the DKIST calibration processing stack.
|
|
70
72
|
|
|
@@ -173,3 +175,6 @@ then the Bitbucket pipeline will fail. To be able to use the same tag you must d
|
|
|
173
175
|
# Re-tag with the same version
|
|
174
176
|
git tag vWHATEVER.THE.VERSION
|
|
175
177
|
git push --tags origin main
|
|
178
|
+
|
|
179
|
+
.. |codecov| image:: https://codecov.io/bb/dkistdc/dkist-processing-common/graph/badge.svg?token=3QSLGSEF3O
|
|
180
|
+
:target: https://codecov.io/bb/dkistdc/dkist-processing-common
|
|
@@ -7,8 +7,6 @@ README.rst
|
|
|
7
7
|
bitbucket-pipelines.yml
|
|
8
8
|
pyproject.toml
|
|
9
9
|
changelog/.gitempty
|
|
10
|
-
changelog/236.misc.1.rst
|
|
11
|
-
changelog/236.misc.rst
|
|
12
10
|
dkist_processing_common/__init__.py
|
|
13
11
|
dkist_processing_common/config.py
|
|
14
12
|
dkist_processing_common/manual.py
|
|
@@ -96,6 +94,7 @@ dkist_processing_common/tests/test_flower_pot.py
|
|
|
96
94
|
dkist_processing_common/tests/test_input_dataset.py
|
|
97
95
|
dkist_processing_common/tests/test_interservice_bus.py
|
|
98
96
|
dkist_processing_common/tests/test_interservice_bus_mixin.py
|
|
97
|
+
dkist_processing_common/tests/test_manual_processing.py
|
|
99
98
|
dkist_processing_common/tests/test_output_data_base.py
|
|
100
99
|
dkist_processing_common/tests/test_parameters.py
|
|
101
100
|
dkist_processing_common/tests/test_parse_l0_input_data.py
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
Convert dataclasses in the graphql model to Pydantic BaseModels for additional validation. In the
|
|
2
|
-
RecipeRunResponse class, configuration is converted from a JSON dictionary to its own Pydantic BaseModel.
|
|
3
|
-
In the InputDatasetPartResponse class, the inputDatasetPartDocument is now returned as a list of dictionaries.
|
|
File without changes
|
{dkist_processing_common-10.6.1rc5 → dkist_processing_common-10.6.3}/.pre-commit-config.yaml
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
|