dkist-processing-common 10.6.0rc2__tar.gz → 10.6.1rc2__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.0rc2 → dkist_processing_common-10.6.1rc2}/CHANGELOG.rst +10 -0
- dkist_processing_common-10.6.1rc2/PKG-INFO +398 -0
- dkist_processing_common-10.6.1rc2/changelog/236.misc.1.rst +1 -0
- dkist_processing_common-10.6.1rc2/changelog/236.misc.rst +1 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/graphql.py +25 -45
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/mixin/metadata_store.py +110 -199
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/output_data_base.py +1 -1
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/teardown.py +1 -1
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/transfer_input_data.py +3 -3
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/trial_output_data.py +6 -6
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/write_l1.py +8 -8
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/conftest.py +4 -3
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_teardown.py +1 -1
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_trial_output_data.py +11 -15
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_workflow_task_base.py +1 -1
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_write_l1.py +9 -3
- dkist_processing_common-10.6.1rc2/dkist_processing_common.egg-info/PKG-INFO +398 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common.egg-info/SOURCES.txt +2 -1
- dkist_processing_common-10.6.1rc2/dkist_processing_common.egg-info/requires.txt +277 -0
- dkist_processing_common-10.6.1rc2/pyproject.toml +362 -0
- dkist_processing_common-10.6.0rc2/PKG-INFO +0 -175
- dkist_processing_common-10.6.0rc2/changelog/235.feature.rst +0 -2
- dkist_processing_common-10.6.0rc2/dkist_processing_common.egg-info/PKG-INFO +0 -175
- dkist_processing_common-10.6.0rc2/dkist_processing_common.egg-info/requires.txt +0 -53
- dkist_processing_common-10.6.0rc2/pyproject.toml +0 -133
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/.gitignore +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/.pre-commit-config.yaml +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/.readthedocs.yml +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/.snyk +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/README.rst +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/changelog/.gitempty +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/__init__.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/_util/__init__.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/_util/constants.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/_util/graphql.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/_util/scratch.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/_util/tags.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/codecs/__init__.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/codecs/asdf.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/codecs/bytes.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/codecs/fits.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/codecs/iobase.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/codecs/json.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/codecs/path.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/codecs/quality.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/codecs/str.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/config.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/fonts/Lato-Regular.ttf +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/fonts/__init__.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/manual.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/__init__.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/constants.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/fits_access.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/flower_pot.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/message.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/message_queue_binding.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/metric_code.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/parameters.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/quality.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/tags.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/task_name.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/models/wavelength.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/__init__.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/cs_step.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/dsps_repeat.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/experiment_id_bud.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/id_bud.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/l0_fits_access.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/l1_fits_access.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/near_bud.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/proposal_id_bud.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/quality.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/retarder.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/single_value_single_key_flower.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/task.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/time.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/unique_bud.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/parsers/wavelength.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/__init__.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/assemble_movie.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/base.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/l1_output_data.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/mixin/__init__.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/mixin/globus.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/mixin/input_dataset.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/mixin/interservice_bus.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/mixin/object_store.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/mixin/quality/__init__.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/mixin/quality/_base.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/mixin/quality/_metrics.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/parse_l0_input_data.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/quality_metrics.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tasks/trial_catalog.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/__init__.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_assemble_movie.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_assemble_quality.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_base.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_codecs.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_constants.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_cs_step.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_fits_access.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_flower_pot.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_input_dataset.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_interservice_bus.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_interservice_bus_mixin.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_output_data_base.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_parameters.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_parse_l0_input_data.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_publish_catalog_messages.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_quality.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_quality_mixin.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_scratch.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_stems.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_submit_dataset_metadata.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_tags.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_task_name.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_task_parsing.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_transfer_input_data.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_transfer_l1_output_data.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common/tests/test_trial_catalog.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common.egg-info/dependency_links.txt +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/dkist_processing_common.egg-info/top_level.txt +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/docs/Makefile +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/docs/changelog.rst +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/docs/conf.py +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/docs/index.rst +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/docs/landing_page.rst +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/docs/make.bat +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/docs/requirements.txt +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/licenses/LICENSE.rst +0 -0
- {dkist_processing_common-10.6.0rc2 → dkist_processing_common-10.6.1rc2}/setup.cfg +0 -0
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
v10.6.0 (2025-03-03)
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
Features
|
|
5
|
+
--------
|
|
6
|
+
|
|
7
|
+
- Add the `RetarderNameBud` that can parse the name of the GOS retarder and ensure that only a single retarder was used
|
|
8
|
+
for the given set of POLCAL input data. (`#235 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/235>`__)
|
|
9
|
+
|
|
10
|
+
|
|
1
11
|
v10.5.15 (2025-02-24)
|
|
2
12
|
=====================
|
|
3
13
|
|
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: dkist-processing-common
|
|
3
|
+
Version: 10.6.1rc2
|
|
4
|
+
Summary: Common task classes used by the DKIST science data processing pipelines
|
|
5
|
+
Author-email: NSO / AURA <dkistdc@nso.edu>
|
|
6
|
+
License: BSD-3-Clause
|
|
7
|
+
Project-URL: Homepage, https://nso.edu/dkist/data-center/
|
|
8
|
+
Project-URL: Repository, https://bitbucket.org/dkistdc/dkist-processing-common/
|
|
9
|
+
Project-URL: Documentation, https://docs.dkist.nso.edu/projects/common
|
|
10
|
+
Project-URL: Help, https://nso.atlassian.net/servicedesk/customer/portal/5
|
|
11
|
+
Classifier: Programming Language :: Python
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Requires-Python: >=3.11
|
|
15
|
+
Description-Content-Type: text/x-rst
|
|
16
|
+
Requires-Dist: asdf<4.0.0,>=3.5.0
|
|
17
|
+
Requires-Dist: astropy<7.0.0,>=6.0.0
|
|
18
|
+
Requires-Dist: dkist-fits-specifications<5.0,>=4.0.0
|
|
19
|
+
Requires-Dist: dkist-header-validator<6.0,>=5.0.0
|
|
20
|
+
Requires-Dist: dkist-processing-core==5.1.0
|
|
21
|
+
Requires-Dist: dkist-processing-pac<4.0,>=3.1
|
|
22
|
+
Requires-Dist: dkist-service-configuration<3.0,>=2.0.2
|
|
23
|
+
Requires-Dist: dkist-spectral-lines<4.0,>=3.0.0
|
|
24
|
+
Requires-Dist: globus-sdk>=3.12.0
|
|
25
|
+
Requires-Dist: gqlclient==1.2.3
|
|
26
|
+
Requires-Dist: sqids==0.5.1
|
|
27
|
+
Requires-Dist: matplotlib>=3.4
|
|
28
|
+
Requires-Dist: moviepy>=2.0.0
|
|
29
|
+
Requires-Dist: numpy>=1.20.2
|
|
30
|
+
Requires-Dist: object-clerk==0.1.1
|
|
31
|
+
Requires-Dist: pandas>=1.4.2
|
|
32
|
+
Requires-Dist: pillow>=10.2.0
|
|
33
|
+
Requires-Dist: pydantic>=2.0
|
|
34
|
+
Requires-Dist: redis==4.6.0
|
|
35
|
+
Requires-Dist: requests>=2.23
|
|
36
|
+
Requires-Dist: scipy>=1.15.1
|
|
37
|
+
Requires-Dist: sunpy>=3.0.0
|
|
38
|
+
Requires-Dist: talus==1.1.0
|
|
39
|
+
Provides-Extra: test
|
|
40
|
+
Requires-Dist: pytest; extra == "test"
|
|
41
|
+
Requires-Dist: pytest-xdist; extra == "test"
|
|
42
|
+
Requires-Dist: pytest-cov; extra == "test"
|
|
43
|
+
Requires-Dist: pytest-mock; extra == "test"
|
|
44
|
+
Requires-Dist: hypothesis; extra == "test"
|
|
45
|
+
Requires-Dist: towncrier; extra == "test"
|
|
46
|
+
Requires-Dist: dkist-data-simulator>=5.0.0; extra == "test"
|
|
47
|
+
Requires-Dist: dkist-processing-common[inventory]; extra == "test"
|
|
48
|
+
Requires-Dist: dkist-processing-common[asdf]; extra == "test"
|
|
49
|
+
Requires-Dist: dkist-processing-common[quality]; extra == "test"
|
|
50
|
+
Provides-Extra: docs
|
|
51
|
+
Requires-Dist: sphinx; extra == "docs"
|
|
52
|
+
Requires-Dist: sphinx-astropy; extra == "docs"
|
|
53
|
+
Requires-Dist: sphinx-changelog; extra == "docs"
|
|
54
|
+
Requires-Dist: sphinx-autoapi!=3.1.0; extra == "docs"
|
|
55
|
+
Requires-Dist: pytest; extra == "docs"
|
|
56
|
+
Requires-Dist: towncrier<22.12.0; extra == "docs"
|
|
57
|
+
Requires-Dist: dkist-sphinx-theme; extra == "docs"
|
|
58
|
+
Provides-Extra: inventory
|
|
59
|
+
Requires-Dist: dkist-inventory<2.0,>=1.6.0; extra == "inventory"
|
|
60
|
+
Provides-Extra: asdf
|
|
61
|
+
Requires-Dist: dkist-inventory[asdf]<2.0,>=1.6.0; extra == "asdf"
|
|
62
|
+
Provides-Extra: quality
|
|
63
|
+
Requires-Dist: dkist-quality<2.0,>=1.2.1; extra == "quality"
|
|
64
|
+
Provides-Extra: frozen
|
|
65
|
+
Requires-Dist: ConfigUpdater==3.2; extra == "frozen"
|
|
66
|
+
Requires-Dist: Deprecated==1.2.18; extra == "frozen"
|
|
67
|
+
Requires-Dist: Flask==2.2.5; extra == "frozen"
|
|
68
|
+
Requires-Dist: Flask-AppBuilder==4.5.3; extra == "frozen"
|
|
69
|
+
Requires-Dist: Flask-Babel==2.0.0; extra == "frozen"
|
|
70
|
+
Requires-Dist: Flask-Caching==2.3.1; extra == "frozen"
|
|
71
|
+
Requires-Dist: Flask-JWT-Extended==4.7.1; extra == "frozen"
|
|
72
|
+
Requires-Dist: Flask-Limiter==3.10.1; extra == "frozen"
|
|
73
|
+
Requires-Dist: Flask-Login==0.6.3; extra == "frozen"
|
|
74
|
+
Requires-Dist: Flask-SQLAlchemy==2.5.1; extra == "frozen"
|
|
75
|
+
Requires-Dist: Flask-Session==0.5.0; extra == "frozen"
|
|
76
|
+
Requires-Dist: Flask-WTF==1.2.2; extra == "frozen"
|
|
77
|
+
Requires-Dist: Jinja2==3.1.5; extra == "frozen"
|
|
78
|
+
Requires-Dist: Mako==1.3.9; extra == "frozen"
|
|
79
|
+
Requires-Dist: MarkupSafe==3.0.2; extra == "frozen"
|
|
80
|
+
Requires-Dist: PyJWT==2.10.1; extra == "frozen"
|
|
81
|
+
Requires-Dist: PyYAML==6.0.2; extra == "frozen"
|
|
82
|
+
Requires-Dist: Pygments==2.19.1; extra == "frozen"
|
|
83
|
+
Requires-Dist: SQLAlchemy==1.4.54; extra == "frozen"
|
|
84
|
+
Requires-Dist: SQLAlchemy-JSONField==1.0.2; extra == "frozen"
|
|
85
|
+
Requires-Dist: SQLAlchemy-Utils==0.41.2; extra == "frozen"
|
|
86
|
+
Requires-Dist: WTForms==3.2.1; extra == "frozen"
|
|
87
|
+
Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
|
|
88
|
+
Requires-Dist: aioftp==0.24.1; extra == "frozen"
|
|
89
|
+
Requires-Dist: aiohappyeyeballs==2.4.8; extra == "frozen"
|
|
90
|
+
Requires-Dist: aiohttp==3.11.13; extra == "frozen"
|
|
91
|
+
Requires-Dist: aiosignal==1.3.2; extra == "frozen"
|
|
92
|
+
Requires-Dist: aiosqlite==0.21.0; extra == "frozen"
|
|
93
|
+
Requires-Dist: alembic==1.15.1; extra == "frozen"
|
|
94
|
+
Requires-Dist: amqp==5.3.1; extra == "frozen"
|
|
95
|
+
Requires-Dist: annotated-types==0.7.0; extra == "frozen"
|
|
96
|
+
Requires-Dist: anyio==4.8.0; extra == "frozen"
|
|
97
|
+
Requires-Dist: apache-airflow==2.10.5; extra == "frozen"
|
|
98
|
+
Requires-Dist: apache-airflow-providers-celery==3.10.0; extra == "frozen"
|
|
99
|
+
Requires-Dist: apache-airflow-providers-common-compat==1.5.0; extra == "frozen"
|
|
100
|
+
Requires-Dist: apache-airflow-providers-common-io==1.5.0; extra == "frozen"
|
|
101
|
+
Requires-Dist: apache-airflow-providers-common-sql==1.23.0; extra == "frozen"
|
|
102
|
+
Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
|
|
103
|
+
Requires-Dist: apache-airflow-providers-ftp==3.12.2; extra == "frozen"
|
|
104
|
+
Requires-Dist: apache-airflow-providers-http==5.2.0; extra == "frozen"
|
|
105
|
+
Requires-Dist: apache-airflow-providers-imap==3.8.2; extra == "frozen"
|
|
106
|
+
Requires-Dist: apache-airflow-providers-postgres==6.1.0; extra == "frozen"
|
|
107
|
+
Requires-Dist: apache-airflow-providers-smtp==2.0.0; extra == "frozen"
|
|
108
|
+
Requires-Dist: apache-airflow-providers-sqlite==4.0.0; extra == "frozen"
|
|
109
|
+
Requires-Dist: apispec==6.8.1; extra == "frozen"
|
|
110
|
+
Requires-Dist: argcomplete==3.5.3; extra == "frozen"
|
|
111
|
+
Requires-Dist: asdf==3.5.0; extra == "frozen"
|
|
112
|
+
Requires-Dist: asdf_standard==1.1.1; extra == "frozen"
|
|
113
|
+
Requires-Dist: asdf_transform_schemas==0.5.0; extra == "frozen"
|
|
114
|
+
Requires-Dist: asgiref==3.8.1; extra == "frozen"
|
|
115
|
+
Requires-Dist: asteval==1.0.6; extra == "frozen"
|
|
116
|
+
Requires-Dist: astropy==6.1.7; extra == "frozen"
|
|
117
|
+
Requires-Dist: astropy-iers-data==0.2025.3.3.0.34.45; extra == "frozen"
|
|
118
|
+
Requires-Dist: asyncpg==0.30.0; extra == "frozen"
|
|
119
|
+
Requires-Dist: attrs==25.1.0; extra == "frozen"
|
|
120
|
+
Requires-Dist: babel==2.17.0; extra == "frozen"
|
|
121
|
+
Requires-Dist: billiard==4.2.1; extra == "frozen"
|
|
122
|
+
Requires-Dist: blinker==1.9.0; extra == "frozen"
|
|
123
|
+
Requires-Dist: boto3==1.37.6; extra == "frozen"
|
|
124
|
+
Requires-Dist: botocore==1.37.6; extra == "frozen"
|
|
125
|
+
Requires-Dist: cachelib==0.13.0; extra == "frozen"
|
|
126
|
+
Requires-Dist: celery==5.4.0; extra == "frozen"
|
|
127
|
+
Requires-Dist: certifi==2025.1.31; extra == "frozen"
|
|
128
|
+
Requires-Dist: cffi==1.17.1; extra == "frozen"
|
|
129
|
+
Requires-Dist: charset-normalizer==3.4.1; extra == "frozen"
|
|
130
|
+
Requires-Dist: click==8.1.8; extra == "frozen"
|
|
131
|
+
Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
|
|
132
|
+
Requires-Dist: click-plugins==1.1.1; extra == "frozen"
|
|
133
|
+
Requires-Dist: click-repl==0.3.0; extra == "frozen"
|
|
134
|
+
Requires-Dist: clickclick==20.10.2; extra == "frozen"
|
|
135
|
+
Requires-Dist: colorama==0.4.6; extra == "frozen"
|
|
136
|
+
Requires-Dist: colorlog==6.9.0; extra == "frozen"
|
|
137
|
+
Requires-Dist: connexion==2.14.2; extra == "frozen"
|
|
138
|
+
Requires-Dist: contourpy==1.3.1; extra == "frozen"
|
|
139
|
+
Requires-Dist: cron-descriptor==1.4.5; extra == "frozen"
|
|
140
|
+
Requires-Dist: croniter==6.0.0; extra == "frozen"
|
|
141
|
+
Requires-Dist: cryptography==44.0.2; extra == "frozen"
|
|
142
|
+
Requires-Dist: cycler==0.12.1; extra == "frozen"
|
|
143
|
+
Requires-Dist: dacite==1.9.2; extra == "frozen"
|
|
144
|
+
Requires-Dist: decorator==5.2.1; extra == "frozen"
|
|
145
|
+
Requires-Dist: dill==0.3.9; extra == "frozen"
|
|
146
|
+
Requires-Dist: dkist-header-validator==5.1.1; extra == "frozen"
|
|
147
|
+
Requires-Dist: dkist-processing-common==10.6.1rc2; extra == "frozen"
|
|
148
|
+
Requires-Dist: dkist-processing-core==5.1.0; extra == "frozen"
|
|
149
|
+
Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
|
|
150
|
+
Requires-Dist: dkist-service-configuration==2.3.0; extra == "frozen"
|
|
151
|
+
Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
|
|
152
|
+
Requires-Dist: dkist_fits_specifications==4.11.0; extra == "frozen"
|
|
153
|
+
Requires-Dist: dnspython==2.7.0; extra == "frozen"
|
|
154
|
+
Requires-Dist: ecs-logging==2.2.0; extra == "frozen"
|
|
155
|
+
Requires-Dist: elastic-apm==6.23.0; extra == "frozen"
|
|
156
|
+
Requires-Dist: email_validator==2.2.0; extra == "frozen"
|
|
157
|
+
Requires-Dist: fastjsonschema==2.21.1; extra == "frozen"
|
|
158
|
+
Requires-Dist: flower==2.0.1; extra == "frozen"
|
|
159
|
+
Requires-Dist: fonttools==4.56.0; extra == "frozen"
|
|
160
|
+
Requires-Dist: frozenlist==1.5.0; extra == "frozen"
|
|
161
|
+
Requires-Dist: fsspec==2025.2.0; extra == "frozen"
|
|
162
|
+
Requires-Dist: globus-sdk==3.50.0; extra == "frozen"
|
|
163
|
+
Requires-Dist: google-re2==1.1.20240702; extra == "frozen"
|
|
164
|
+
Requires-Dist: googleapis-common-protos==1.69.0; extra == "frozen"
|
|
165
|
+
Requires-Dist: gqlclient==1.2.3; extra == "frozen"
|
|
166
|
+
Requires-Dist: greenlet==3.1.1; extra == "frozen"
|
|
167
|
+
Requires-Dist: grpcio==1.70.0; extra == "frozen"
|
|
168
|
+
Requires-Dist: gunicorn==23.0.0; extra == "frozen"
|
|
169
|
+
Requires-Dist: h11==0.14.0; extra == "frozen"
|
|
170
|
+
Requires-Dist: httpcore==1.0.7; extra == "frozen"
|
|
171
|
+
Requires-Dist: httpx==0.28.1; extra == "frozen"
|
|
172
|
+
Requires-Dist: humanize==4.12.1; extra == "frozen"
|
|
173
|
+
Requires-Dist: idna==3.10; extra == "frozen"
|
|
174
|
+
Requires-Dist: imageio==2.37.0; extra == "frozen"
|
|
175
|
+
Requires-Dist: imageio-ffmpeg==0.6.0; extra == "frozen"
|
|
176
|
+
Requires-Dist: importlib_metadata==8.5.0; extra == "frozen"
|
|
177
|
+
Requires-Dist: inflection==0.5.1; extra == "frozen"
|
|
178
|
+
Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
|
|
179
|
+
Requires-Dist: jmespath==1.0.1; extra == "frozen"
|
|
180
|
+
Requires-Dist: jsonschema==4.23.0; extra == "frozen"
|
|
181
|
+
Requires-Dist: jsonschema-specifications==2024.10.1; extra == "frozen"
|
|
182
|
+
Requires-Dist: jupyter_core==5.7.2; extra == "frozen"
|
|
183
|
+
Requires-Dist: kiwisolver==1.4.8; extra == "frozen"
|
|
184
|
+
Requires-Dist: kombu==5.4.2; extra == "frozen"
|
|
185
|
+
Requires-Dist: lazy-object-proxy==1.10.0; extra == "frozen"
|
|
186
|
+
Requires-Dist: limits==4.0.1; extra == "frozen"
|
|
187
|
+
Requires-Dist: linkify-it-py==2.0.3; extra == "frozen"
|
|
188
|
+
Requires-Dist: lmfit==1.3.2; extra == "frozen"
|
|
189
|
+
Requires-Dist: lockfile==0.12.2; extra == "frozen"
|
|
190
|
+
Requires-Dist: loguru==0.7.3; extra == "frozen"
|
|
191
|
+
Requires-Dist: markdown-it-py==3.0.0; extra == "frozen"
|
|
192
|
+
Requires-Dist: marshmallow==3.26.1; extra == "frozen"
|
|
193
|
+
Requires-Dist: marshmallow-oneofschema==3.1.1; extra == "frozen"
|
|
194
|
+
Requires-Dist: marshmallow-sqlalchemy==0.28.2; extra == "frozen"
|
|
195
|
+
Requires-Dist: matplotlib==3.10.1; extra == "frozen"
|
|
196
|
+
Requires-Dist: mdit-py-plugins==0.4.2; extra == "frozen"
|
|
197
|
+
Requires-Dist: mdurl==0.1.2; extra == "frozen"
|
|
198
|
+
Requires-Dist: methodtools==0.4.7; extra == "frozen"
|
|
199
|
+
Requires-Dist: more-itertools==10.6.0; extra == "frozen"
|
|
200
|
+
Requires-Dist: moviepy==2.1.2; extra == "frozen"
|
|
201
|
+
Requires-Dist: multidict==6.1.0; extra == "frozen"
|
|
202
|
+
Requires-Dist: nbformat==5.10.4; extra == "frozen"
|
|
203
|
+
Requires-Dist: numpy==2.2.3; extra == "frozen"
|
|
204
|
+
Requires-Dist: object-clerk==0.1.1; extra == "frozen"
|
|
205
|
+
Requires-Dist: opentelemetry-api==1.30.0; extra == "frozen"
|
|
206
|
+
Requires-Dist: opentelemetry-exporter-otlp==1.30.0; extra == "frozen"
|
|
207
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.30.0; extra == "frozen"
|
|
208
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.30.0; extra == "frozen"
|
|
209
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.30.0; extra == "frozen"
|
|
210
|
+
Requires-Dist: opentelemetry-proto==1.30.0; extra == "frozen"
|
|
211
|
+
Requires-Dist: opentelemetry-sdk==1.30.0; extra == "frozen"
|
|
212
|
+
Requires-Dist: opentelemetry-semantic-conventions==0.51b0; extra == "frozen"
|
|
213
|
+
Requires-Dist: ordered-set==4.1.0; extra == "frozen"
|
|
214
|
+
Requires-Dist: packaging==24.2; extra == "frozen"
|
|
215
|
+
Requires-Dist: pandas==2.2.3; extra == "frozen"
|
|
216
|
+
Requires-Dist: parfive==2.1.0; extra == "frozen"
|
|
217
|
+
Requires-Dist: pathspec==0.12.1; extra == "frozen"
|
|
218
|
+
Requires-Dist: pendulum==3.0.0; extra == "frozen"
|
|
219
|
+
Requires-Dist: pika==1.3.2; extra == "frozen"
|
|
220
|
+
Requires-Dist: pillow==10.4.0; extra == "frozen"
|
|
221
|
+
Requires-Dist: pip==25.0.1; extra == "frozen"
|
|
222
|
+
Requires-Dist: platformdirs==4.3.6; extra == "frozen"
|
|
223
|
+
Requires-Dist: pluggy==1.5.0; extra == "frozen"
|
|
224
|
+
Requires-Dist: prison==0.2.1; extra == "frozen"
|
|
225
|
+
Requires-Dist: proglog==0.1.10; extra == "frozen"
|
|
226
|
+
Requires-Dist: prometheus_client==0.21.1; extra == "frozen"
|
|
227
|
+
Requires-Dist: prompt_toolkit==3.0.50; extra == "frozen"
|
|
228
|
+
Requires-Dist: propcache==0.3.0; extra == "frozen"
|
|
229
|
+
Requires-Dist: protobuf==5.29.3; extra == "frozen"
|
|
230
|
+
Requires-Dist: psutil==7.0.0; extra == "frozen"
|
|
231
|
+
Requires-Dist: psycopg2-binary==2.9.10; extra == "frozen"
|
|
232
|
+
Requires-Dist: py==1.11.0; extra == "frozen"
|
|
233
|
+
Requires-Dist: pycparser==2.22; extra == "frozen"
|
|
234
|
+
Requires-Dist: pydantic==2.10.6; extra == "frozen"
|
|
235
|
+
Requires-Dist: pydantic-settings==2.8.1; extra == "frozen"
|
|
236
|
+
Requires-Dist: pydantic_core==2.27.2; extra == "frozen"
|
|
237
|
+
Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
|
|
238
|
+
Requires-Dist: pyparsing==3.2.1; extra == "frozen"
|
|
239
|
+
Requires-Dist: python-daemon==3.1.2; extra == "frozen"
|
|
240
|
+
Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
|
|
241
|
+
Requires-Dist: python-dotenv==1.0.1; extra == "frozen"
|
|
242
|
+
Requires-Dist: python-nvd3==0.16.0; extra == "frozen"
|
|
243
|
+
Requires-Dist: python-slugify==8.0.4; extra == "frozen"
|
|
244
|
+
Requires-Dist: pytz==2025.1; extra == "frozen"
|
|
245
|
+
Requires-Dist: redis==4.6.0; extra == "frozen"
|
|
246
|
+
Requires-Dist: referencing==0.36.2; extra == "frozen"
|
|
247
|
+
Requires-Dist: requests==2.32.3; extra == "frozen"
|
|
248
|
+
Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
|
|
249
|
+
Requires-Dist: retry==0.9.2; extra == "frozen"
|
|
250
|
+
Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
|
|
251
|
+
Requires-Dist: rich==13.9.4; extra == "frozen"
|
|
252
|
+
Requires-Dist: rich-argparse==1.7.0; extra == "frozen"
|
|
253
|
+
Requires-Dist: rpds-py==0.23.1; extra == "frozen"
|
|
254
|
+
Requires-Dist: s3transfer==0.11.4; extra == "frozen"
|
|
255
|
+
Requires-Dist: scipy==1.15.2; extra == "frozen"
|
|
256
|
+
Requires-Dist: semantic-version==2.10.0; extra == "frozen"
|
|
257
|
+
Requires-Dist: setproctitle==1.3.5; extra == "frozen"
|
|
258
|
+
Requires-Dist: setuptools==65.5.0; extra == "frozen"
|
|
259
|
+
Requires-Dist: six==1.17.0; extra == "frozen"
|
|
260
|
+
Requires-Dist: sniffio==1.3.1; extra == "frozen"
|
|
261
|
+
Requires-Dist: sqids==0.5.1; extra == "frozen"
|
|
262
|
+
Requires-Dist: sqlparse==0.5.3; extra == "frozen"
|
|
263
|
+
Requires-Dist: sunpy==6.1.1; extra == "frozen"
|
|
264
|
+
Requires-Dist: tabulate==0.9.0; extra == "frozen"
|
|
265
|
+
Requires-Dist: talus==1.1.0; extra == "frozen"
|
|
266
|
+
Requires-Dist: tenacity==9.0.0; extra == "frozen"
|
|
267
|
+
Requires-Dist: termcolor==2.5.0; extra == "frozen"
|
|
268
|
+
Requires-Dist: text-unidecode==1.3; extra == "frozen"
|
|
269
|
+
Requires-Dist: time-machine==2.16.0; extra == "frozen"
|
|
270
|
+
Requires-Dist: tornado==6.4.2; extra == "frozen"
|
|
271
|
+
Requires-Dist: tqdm==4.67.1; extra == "frozen"
|
|
272
|
+
Requires-Dist: traitlets==5.14.3; extra == "frozen"
|
|
273
|
+
Requires-Dist: typing_extensions==4.12.2; extra == "frozen"
|
|
274
|
+
Requires-Dist: tzdata==2025.1; extra == "frozen"
|
|
275
|
+
Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
|
|
276
|
+
Requires-Dist: uncertainties==3.2.2; extra == "frozen"
|
|
277
|
+
Requires-Dist: universal_pathlib==0.2.6; extra == "frozen"
|
|
278
|
+
Requires-Dist: urllib3==2.3.0; extra == "frozen"
|
|
279
|
+
Requires-Dist: vine==5.1.0; extra == "frozen"
|
|
280
|
+
Requires-Dist: voluptuous==0.15.2; extra == "frozen"
|
|
281
|
+
Requires-Dist: wcwidth==0.2.13; extra == "frozen"
|
|
282
|
+
Requires-Dist: wirerope==1.0.0; extra == "frozen"
|
|
283
|
+
Requires-Dist: wrapt==1.17.2; extra == "frozen"
|
|
284
|
+
Requires-Dist: yamale==6.0.0; extra == "frozen"
|
|
285
|
+
Requires-Dist: yarl==1.18.3; extra == "frozen"
|
|
286
|
+
Requires-Dist: zipp==3.21.0; extra == "frozen"
|
|
287
|
+
|
|
288
|
+
dkist-processing-common
|
|
289
|
+
=======================
|
|
290
|
+
|
|
291
|
+
This repository works in concert with `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_ and `dkist-processing-*instrument*` to
|
|
292
|
+
form the DKIST calibration processing stack.
|
|
293
|
+
|
|
294
|
+
Usage
|
|
295
|
+
-----
|
|
296
|
+
|
|
297
|
+
The classes in this repository should be used as the base of any DKIST processing pipeline tasks. Science tasks should subclass `ScienceTaskL0ToL1Base`.
|
|
298
|
+
|
|
299
|
+
Each class is built on an abstract base class with the `run` method left for a developer to fill out with the required steps that the task should take.
|
|
300
|
+
This class is then used as the callable object for the workflow and scheduling engine.
|
|
301
|
+
|
|
302
|
+
Example
|
|
303
|
+
-------
|
|
304
|
+
|
|
305
|
+
.. code-block:: python
|
|
306
|
+
|
|
307
|
+
from dkist_processing_common.tasks.base import ScienceTaskL0ToL1Base
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
class RemoveArtifacts(ScienceTaskL0ToL1Base):
|
|
311
|
+
def run(self):
|
|
312
|
+
# task code here
|
|
313
|
+
total = 2 + 5
|
|
314
|
+
|
|
315
|
+
Deployment
|
|
316
|
+
----------
|
|
317
|
+
|
|
318
|
+
dkist-processing-common is deployed to `PyPI <https://pypi.org/project/dkist-processing-common/>`_
|
|
319
|
+
|
|
320
|
+
Development
|
|
321
|
+
-----------
|
|
322
|
+
|
|
323
|
+
There are two prerequisites for test execution on a local machine:
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
* Redis. A running instance of redis on the local machine is required. The tests will use the default host ip of localhost and port of 6379 to connect to the database.
|
|
327
|
+
|
|
328
|
+
* RabbitMQ. A running instance of rabbitmq on the local machine is required. The tests will use the default host of localhost and a port of 5672 to connect to the interservice bus.
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
To run the tests locally, clone the repository and install the package in editable mode with the test extras.
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
.. code-block:: bash
|
|
335
|
+
|
|
336
|
+
git clone git@bitbucket.org:dkistdc/dkist-processing-common.git
|
|
337
|
+
cd dkist-processing-common
|
|
338
|
+
pre-commit install
|
|
339
|
+
pip install -e .[test]
|
|
340
|
+
# Redis must be running
|
|
341
|
+
pytest -v --cov dkist_processing_common
|
|
342
|
+
|
|
343
|
+
Changelog
|
|
344
|
+
#########
|
|
345
|
+
|
|
346
|
+
When you make **any** change to this repository it **MUST** be accompanied by a changelog file.
|
|
347
|
+
The changelog for this repository uses the `towncrier <https://github.com/twisted/towncrier>`__ package.
|
|
348
|
+
Entries in the changelog for the next release are added as individual files (one per change) to the ``changelog/`` directory.
|
|
349
|
+
|
|
350
|
+
Writing a Changelog Entry
|
|
351
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
352
|
+
|
|
353
|
+
A changelog entry accompanying a change should be added to the ``changelog/`` directory.
|
|
354
|
+
The name of a file in this directory follows a specific template::
|
|
355
|
+
|
|
356
|
+
<PULL REQUEST NUMBER>.<TYPE>[.<COUNTER>].rst
|
|
357
|
+
|
|
358
|
+
The fields have the following meanings:
|
|
359
|
+
|
|
360
|
+
* ``<PULL REQUEST NUMBER>``: This is the number of the pull request, so people can jump from the changelog entry to the diff on BitBucket.
|
|
361
|
+
* ``<TYPE>``: This is the type of the change and must be one of the values described below.
|
|
362
|
+
* ``<COUNTER>``: This is an optional field, if you make more than one change of the same type you can append a counter to the subsequent changes, i.e. ``100.bugfix.rst`` and ``100.bugfix.1.rst`` for two bugfix changes in the same PR.
|
|
363
|
+
|
|
364
|
+
The list of possible types is defined the the towncrier section of ``pyproject.toml``, the types are:
|
|
365
|
+
|
|
366
|
+
* ``feature``: This change is a new code feature.
|
|
367
|
+
* ``bugfix``: This is a change which fixes a bug.
|
|
368
|
+
* ``doc``: A documentation change.
|
|
369
|
+
* ``removal``: A deprecation or removal of public API.
|
|
370
|
+
* ``misc``: Any small change which doesn't fit anywhere else, such as a change to the package infrastructure.
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
Rendering the Changelog at Release Time
|
|
374
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
375
|
+
|
|
376
|
+
When you are about to tag a release first you must run ``towncrier`` to render the changelog.
|
|
377
|
+
The steps for this are as follows:
|
|
378
|
+
|
|
379
|
+
* Run `towncrier build --version vx.y.z` using the version number you want to tag.
|
|
380
|
+
* Agree to have towncrier remove the fragments.
|
|
381
|
+
* Add and commit your changes.
|
|
382
|
+
* Tag the release.
|
|
383
|
+
|
|
384
|
+
**NOTE:** If you forget to add a Changelog entry to a tagged release (either manually or automatically with ``towncrier``)
|
|
385
|
+
then the Bitbucket pipeline will fail. To be able to use the same tag you must delete it locally and on the remote branch:
|
|
386
|
+
|
|
387
|
+
.. code-block:: bash
|
|
388
|
+
|
|
389
|
+
# First, actually update the CHANGELOG and commit the update
|
|
390
|
+
git commit
|
|
391
|
+
|
|
392
|
+
# Delete tags
|
|
393
|
+
git tag -d vWHATEVER.THE.VERSION
|
|
394
|
+
git push --delete origin vWHATEVER.THE.VERSION
|
|
395
|
+
|
|
396
|
+
# Re-tag with the same version
|
|
397
|
+
git tag vWHATEVER.THE.VERSION
|
|
398
|
+
git push --tags origin main
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Change returns from the metadata store queries into Pydantic BaseModel instances. Remove unnecessary parsing and error checking.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Convert dataclasses in the graphql model to Pydantic BaseModels for additional validation. In the RecipeRunResponse class, configuration is now returned as a dictionary. In the InputDatasetPartResponse class, inputDatasetPartDocument is now returned as a list of dictionaries.
|
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
"""GraphQL Data models for the metadata store api."""
|
|
2
|
-
from
|
|
2
|
+
from pydantic import BaseModel
|
|
3
|
+
from pydantic import Json
|
|
3
4
|
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
class RecipeRunMutation:
|
|
6
|
+
class RecipeRunMutation(BaseModel):
|
|
7
7
|
"""Recipe run mutation record."""
|
|
8
8
|
|
|
9
9
|
recipeRunId: int
|
|
10
10
|
recipeRunStatusId: int
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
class RecipeRunStatusQuery:
|
|
13
|
+
class RecipeRunStatusQuery(BaseModel):
|
|
15
14
|
"""Recipe run status query for the recipeRunStatuses endpoint."""
|
|
16
15
|
|
|
17
16
|
recipeRunStatusName: str
|
|
18
17
|
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
class RecipeRunStatusMutation:
|
|
19
|
+
class RecipeRunStatusMutation(BaseModel):
|
|
22
20
|
"""Recipe run status mutation record."""
|
|
23
21
|
|
|
24
22
|
recipeRunStatusName: str
|
|
@@ -26,38 +24,33 @@ class RecipeRunStatusMutation:
|
|
|
26
24
|
recipeRunStatusDescription: str
|
|
27
25
|
|
|
28
26
|
|
|
29
|
-
|
|
30
|
-
class RecipeRunStatusResponse:
|
|
27
|
+
class RecipeRunStatusResponse(BaseModel):
|
|
31
28
|
"""Response to a recipe run status query."""
|
|
32
29
|
|
|
33
30
|
recipeRunStatusId: int
|
|
34
31
|
|
|
35
32
|
|
|
36
|
-
|
|
37
|
-
class InputDatasetPartTypeResponse:
|
|
33
|
+
class InputDatasetPartTypeResponse(BaseModel):
|
|
38
34
|
"""Response class for the input dataset part type entity."""
|
|
39
35
|
|
|
40
36
|
inputDatasetPartTypeName: str
|
|
41
37
|
|
|
42
38
|
|
|
43
|
-
|
|
44
|
-
class InputDatasetPartResponse:
|
|
39
|
+
class InputDatasetPartResponse(BaseModel):
|
|
45
40
|
"""Response class for the input dataset part entity."""
|
|
46
41
|
|
|
47
42
|
inputDatasetPartId: int
|
|
48
|
-
inputDatasetPartDocument:
|
|
43
|
+
inputDatasetPartDocument: Json[list[dict]]
|
|
49
44
|
inputDatasetPartType: InputDatasetPartTypeResponse
|
|
50
45
|
|
|
51
46
|
|
|
52
|
-
|
|
53
|
-
class InputDatasetInputDatasetPartResponse:
|
|
47
|
+
class InputDatasetInputDatasetPartResponse(BaseModel):
|
|
54
48
|
"""Response class for the join entity between input datasets and input dataset parts."""
|
|
55
49
|
|
|
56
50
|
inputDatasetPart: InputDatasetPartResponse
|
|
57
51
|
|
|
58
52
|
|
|
59
|
-
|
|
60
|
-
class InputDatasetResponse:
|
|
53
|
+
class InputDatasetResponse(BaseModel):
|
|
61
54
|
"""Input dataset query response."""
|
|
62
55
|
|
|
63
56
|
inputDatasetId: int
|
|
@@ -65,62 +58,54 @@ class InputDatasetResponse:
|
|
|
65
58
|
inputDatasetInputDatasetParts: list[InputDatasetInputDatasetPartResponse]
|
|
66
59
|
|
|
67
60
|
|
|
68
|
-
|
|
69
|
-
class InputDatasetRecipeInstanceResponse:
|
|
61
|
+
class InputDatasetRecipeInstanceResponse(BaseModel):
|
|
70
62
|
"""Recipe instance query response."""
|
|
71
63
|
|
|
72
64
|
inputDataset: InputDatasetResponse
|
|
73
65
|
|
|
74
66
|
|
|
75
|
-
|
|
76
|
-
class InputDatasetRecipeRunResponse:
|
|
67
|
+
class InputDatasetRecipeRunResponse(BaseModel):
|
|
77
68
|
"""Recipe run query response."""
|
|
78
69
|
|
|
79
70
|
recipeInstance: InputDatasetRecipeInstanceResponse
|
|
80
71
|
|
|
81
72
|
|
|
82
|
-
|
|
83
|
-
class RecipeInstanceResponse:
|
|
73
|
+
class RecipeInstanceResponse(BaseModel):
|
|
84
74
|
"""Recipe instance query response."""
|
|
85
75
|
|
|
86
76
|
recipeId: int
|
|
87
77
|
inputDatasetId: int
|
|
88
78
|
|
|
89
79
|
|
|
90
|
-
|
|
91
|
-
class RecipeRunProvenanceResponse:
|
|
80
|
+
class RecipeRunProvenanceResponse(BaseModel):
|
|
92
81
|
"""Response for the metadata store recipeRunProvenances and mutations endpoints."""
|
|
93
82
|
|
|
94
83
|
recipeRunProvenanceId: int
|
|
95
84
|
isTaskManual: bool
|
|
96
85
|
|
|
97
86
|
|
|
98
|
-
|
|
99
|
-
class RecipeRunResponse:
|
|
87
|
+
class RecipeRunResponse(BaseModel):
|
|
100
88
|
"""Recipe run query response."""
|
|
101
89
|
|
|
102
90
|
recipeInstance: RecipeInstanceResponse
|
|
103
91
|
recipeInstanceId: int
|
|
104
92
|
recipeRunProvenances: list[RecipeRunProvenanceResponse]
|
|
105
|
-
configuration:
|
|
93
|
+
configuration: Json[dict] | None = {}
|
|
106
94
|
|
|
107
95
|
|
|
108
|
-
|
|
109
|
-
class RecipeRunMutationResponse:
|
|
96
|
+
class RecipeRunMutationResponse(BaseModel):
|
|
110
97
|
"""Recipe run mutation response."""
|
|
111
98
|
|
|
112
99
|
recipeRunId: int
|
|
113
100
|
|
|
114
101
|
|
|
115
|
-
|
|
116
|
-
class RecipeRunQuery:
|
|
102
|
+
class RecipeRunQuery(BaseModel):
|
|
117
103
|
"""Query parameters for the metadata store endpoint recipeRuns."""
|
|
118
104
|
|
|
119
105
|
recipeRunId: int
|
|
120
106
|
|
|
121
107
|
|
|
122
|
-
|
|
123
|
-
class DatasetCatalogReceiptAccountMutation:
|
|
108
|
+
class DatasetCatalogReceiptAccountMutation(BaseModel):
|
|
124
109
|
"""
|
|
125
110
|
Dataset catalog receipt account mutation record.
|
|
126
111
|
|
|
@@ -132,15 +117,13 @@ class DatasetCatalogReceiptAccountMutation:
|
|
|
132
117
|
expectedObjectCount: int
|
|
133
118
|
|
|
134
119
|
|
|
135
|
-
|
|
136
|
-
class DatasetCatalogReceiptAccountResponse:
|
|
120
|
+
class DatasetCatalogReceiptAccountResponse(BaseModel):
|
|
137
121
|
"""Dataset catalog receipt account response for query and mutation endpoints."""
|
|
138
122
|
|
|
139
123
|
datasetCatalogReceiptAccountId: int
|
|
140
124
|
|
|
141
125
|
|
|
142
|
-
|
|
143
|
-
class RecipeRunProvenanceMutation:
|
|
126
|
+
class RecipeRunProvenanceMutation(BaseModel):
|
|
144
127
|
"""Recipe run provenance mutation record."""
|
|
145
128
|
|
|
146
129
|
inputDatasetId: int
|
|
@@ -152,8 +135,7 @@ class RecipeRunProvenanceMutation:
|
|
|
152
135
|
codeVersion: str = None
|
|
153
136
|
|
|
154
137
|
|
|
155
|
-
|
|
156
|
-
class QualityCreation:
|
|
138
|
+
class QualityCreation(BaseModel):
|
|
157
139
|
"""Quality data creation record."""
|
|
158
140
|
|
|
159
141
|
datasetId: str
|
|
@@ -173,15 +155,13 @@ class QualityCreation:
|
|
|
173
155
|
efficiencyData: str | None = None
|
|
174
156
|
|
|
175
157
|
|
|
176
|
-
|
|
177
|
-
class QualitiesRequest:
|
|
158
|
+
class QualitiesRequest(BaseModel):
|
|
178
159
|
"""Query parameters for quality data."""
|
|
179
160
|
|
|
180
161
|
datasetId: str
|
|
181
162
|
|
|
182
163
|
|
|
183
|
-
|
|
184
|
-
class QualityResponse:
|
|
164
|
+
class QualityResponse(BaseModel):
|
|
185
165
|
"""Query Response for quality data."""
|
|
186
166
|
|
|
187
167
|
qualityId: int
|