dkist-processing-common 13.0.3rc3__tar.gz → 13.0.4__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-13.0.3rc3 → dkist_processing_common-13.0.4}/.readthedocs.yml +1 -1
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/CHANGELOG.rst +30 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/PKG-INFO +2 -2
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/assemble_movie.py +1 -1
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/trial_catalog.py +1 -1
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/conftest.py +2 -2
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_codecs.py +8 -11
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_fits_access.py +0 -1
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_quality_mixin.py +2 -2
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_write_l1.py +78 -64
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common.egg-info/PKG-INFO +2 -2
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common.egg-info/SOURCES.txt +0 -2
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common.egg-info/requires.txt +1 -1
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/pyproject.toml +11 -1
- dkist_processing_common-13.0.3rc3/changelog/322.misc.rst +0 -1
- dkist_processing_common-13.0.3rc3/changelog/326.feature.rst +0 -1
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/.gitignore +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/.pre-commit-config.yaml +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/.snyk +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/README.rst +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/bitbucket-pipelines.yml +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/changelog/.gitempty +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/__init__.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/_util/__init__.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/_util/constants.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/_util/graphql.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/_util/scratch.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/_util/tags.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/__init__.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/array.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/asdf.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/basemodel.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/bytes.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/fits.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/iobase.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/json.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/path.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/quality.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/codecs/str.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/config.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/fonts/Lato-Regular.ttf +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/fonts/__init__.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/manual.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/__init__.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/constants.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/dkist_location.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/extras.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/fits_access.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/flower_pot.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/fried_parameter.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/graphql.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/input_dataset.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/message.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/message_queue_binding.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/metric_code.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/parameters.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/quality.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/tags.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/task_name.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/telemetry.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/models/wavelength.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/__init__.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/average_bud.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/cs_step.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/dsps_repeat.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/experiment_id_bud.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/id_bud.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/l0_fits_access.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/l1_fits_access.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/lookup_bud.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/near_bud.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/observing_program_id_bud.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/proposal_id_bud.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/quality.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/retarder.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/single_value_single_key_flower.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/task.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/time.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/unique_bud.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/parsers/wavelength.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/__init__.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/base.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/l1_output_data.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/__init__.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/globus.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/interservice_bus.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/metadata_store.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/object_store.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/quality/__init__.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/quality/_base.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/mixin/quality/_metrics.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/output_data_base.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/parse_l0_input_data.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/quality_metrics.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/teardown.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/transfer_input_data.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/trial_output_data.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/write_extra.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/write_l1.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tasks/write_l1_base.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/__init__.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/mock_metadata_store.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_assemble_movie.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_assemble_quality.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_base.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_constants.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_construct_dataset_extras.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_cs_step.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_dkist_location.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_flower_pot.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_fried_parameter.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_input_dataset.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_interservice_bus.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_interservice_bus_mixin.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_manual_processing.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_output_data_base.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_parameters.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_parse_l0_input_data.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_publish_catalog_messages.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_quality.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_scratch.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_stems.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_submit_dataset_metadata.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_tags.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_task_name.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_task_parsing.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_teardown.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_transfer_input_data.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_transfer_l1_output_data.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_trial_catalog.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_trial_output_data.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common/tests/test_workflow_task_base.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common.egg-info/dependency_links.txt +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/dkist_processing_common.egg-info/top_level.txt +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/Makefile +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/changelog.rst +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/conf.py +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/index.rst +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/landing_page.rst +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/make.bat +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/docs/requirements.txt +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/licenses/LICENSE.rst +0 -0
- {dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/setup.cfg +0 -0
|
@@ -1,3 +1,33 @@
|
|
|
1
|
+
v13.0.4 (2026-04-16)
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
Misc
|
|
5
|
+
----
|
|
6
|
+
|
|
7
|
+
- Convert fits.open usage in tests to context managers. (`#289 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/289>`__)
|
|
8
|
+
- Remove deprecated Astropy usage (e.g., CompImageHeader) and updated tests accordingly. (`#289 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/289>`__)
|
|
9
|
+
- Configure pyproject.toml to turn warnings raised during testing into errors.
|
|
10
|
+
Ignore certain testing warnings that we know are okay. (`#289 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/289>`__)
|
|
11
|
+
- Modernize code to address Python 3.13 deprecations (e.g., datetime.utcnow, Pillow image mode handling). (`#289 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/289>`__)
|
|
12
|
+
- Update dkist-processing-core to v7.2.1, which includes better warning handling and an RTD build OS update. (`#298 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/298>`__)
|
|
13
|
+
- Upgrade Read the Docs LTS build image to Ubuntu 24.04. (`#328 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/328>`__)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
v13.0.3 (2026-04-14)
|
|
17
|
+
====================
|
|
18
|
+
|
|
19
|
+
Features
|
|
20
|
+
--------
|
|
21
|
+
|
|
22
|
+
- Simplify the production of L1 quality metrics. (`#326 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/326>`__)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
Misc
|
|
26
|
+
----
|
|
27
|
+
|
|
28
|
+
- Make isb username and password configurable for local unit tests. (`#322 <https://bitbucket.org/dkistdc/dkist-processing-common/pull-requests/322>`__)
|
|
29
|
+
|
|
30
|
+
|
|
1
31
|
v13.0.1 (2026-04-07)
|
|
2
32
|
====================
|
|
3
33
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-common
|
|
3
|
-
Version: 13.0.
|
|
3
|
+
Version: 13.0.4
|
|
4
4
|
Summary: Common task classes used by the DKIST science data processing pipelines
|
|
5
5
|
Author-email: NSO / AURA <dkistdc@nso.edu>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -17,7 +17,7 @@ Requires-Dist: asdf<4.0.0,>=3.5.0
|
|
|
17
17
|
Requires-Dist: astropy>=7.0.0
|
|
18
18
|
Requires-Dist: dkist-fits-specifications<5.0,>=4.24.0
|
|
19
19
|
Requires-Dist: dkist-header-validator<6.0,>=5.3.0
|
|
20
|
-
Requires-Dist: dkist-processing-core==7.1
|
|
20
|
+
Requires-Dist: dkist-processing-core==7.2.1
|
|
21
21
|
Requires-Dist: dkist-processing-pac<4.0,>=3.1
|
|
22
22
|
Requires-Dist: dkist-service-configuration<5.0,>=4.3.0
|
|
23
23
|
Requires-Dist: dkist-spectral-lines<4.0,>=3.0.0
|
|
@@ -225,7 +225,7 @@ class AssembleMovie(WorkflowTaskBase, ABC):
|
|
|
225
225
|
)
|
|
226
226
|
|
|
227
227
|
background = Image.new("RGB", self.MOVIE_FRAME_SHAPE, (0, 0, 0))
|
|
228
|
-
frame_im = Image.fromarray(colored_image
|
|
228
|
+
frame_im = Image.fromarray(colored_image)
|
|
229
229
|
frame_im = frame_im.resize(self.MOVIE_FRAME_SHAPE, resample=Image.NEAREST)
|
|
230
230
|
background.paste(frame_im)
|
|
231
231
|
draw = ImageDraw.Draw(background)
|
|
@@ -93,7 +93,7 @@ class CreateTrialDatasetInventory(OutputDataBase):
|
|
|
93
93
|
frame_inventory["_id"] = uuid4().hex
|
|
94
94
|
frame_inventory["bucket"] = self.destination_bucket
|
|
95
95
|
frame_inventory["frameStatus"] = "AVAILABLE"
|
|
96
|
-
frame_inventory["createDate"] = datetime.
|
|
96
|
+
frame_inventory["createDate"] = datetime.now().isoformat("T")
|
|
97
97
|
frame_inventory["updateDate"] = None
|
|
98
98
|
frame_inventory["lostDate"] = None
|
|
99
99
|
frame_inventory["headerHDU"] = 1
|
|
@@ -617,7 +617,7 @@ def visp_modulation_matrix() -> np.ndarray:
|
|
|
617
617
|
|
|
618
618
|
@pytest.fixture(scope="session")
|
|
619
619
|
def fully_realistic_local_cs(
|
|
620
|
-
cs_with_correct_geometry, visp_modulation_matrix, pac_fit_mode, pac_init_set
|
|
620
|
+
cs_with_correct_geometry, visp_modulation_matrix, pac_fit_mode, pac_init_set, cs_data_shape
|
|
621
621
|
):
|
|
622
622
|
|
|
623
623
|
cs_dict = cs_with_correct_geometry
|
|
@@ -643,7 +643,7 @@ def fully_realistic_local_cs(
|
|
|
643
643
|
# Now set the "observed" value for each of the input objects
|
|
644
644
|
for m in range(dresser.nummod):
|
|
645
645
|
for n in range(dresser.numsteps):
|
|
646
|
-
cs_dict[n][m].data
|
|
646
|
+
cs_dict[n][m].data = np.ones(cs_data_shape) * observed[m, n]
|
|
647
647
|
|
|
648
648
|
return cs_dict
|
|
649
649
|
|
|
@@ -454,11 +454,10 @@ def test_fits_array_encoder_header_preserved(ndarray_object, header_func: Callab
|
|
|
454
454
|
header = header_func(raw_header)
|
|
455
455
|
encoded_data = fits_array_encoder(data=ndarray_object, header=header)
|
|
456
456
|
bytes_reader = BytesIO(encoded_data)
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
assert hdul[0].header["KEY1"] == "VALUE1"
|
|
457
|
+
with fits.open(bytes_reader) as hdul:
|
|
458
|
+
assert len(hdul) == 1
|
|
459
|
+
np.testing.assert_equal(hdul[0].data, ndarray_object)
|
|
460
|
+
assert hdul[0].header["KEY1"] == "VALUE1"
|
|
462
461
|
|
|
463
462
|
|
|
464
463
|
@pytest.mark.parametrize(
|
|
@@ -584,13 +583,11 @@ def test_fits_header_decoder(path_fixture_name, request):
|
|
|
584
583
|
if init_num_fd is not None:
|
|
585
584
|
assert init_num_fd == post_num_fd
|
|
586
585
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
expected_header = hdul[
|
|
590
|
-
else:
|
|
591
|
-
expected_header = hdul[0].header
|
|
586
|
+
with fits.open(file_path, disable_image_compression=True) as hdul:
|
|
587
|
+
index = 1 if "compressed" in path_fixture_name else 0
|
|
588
|
+
expected_header = hdul[index].header
|
|
592
589
|
|
|
593
|
-
|
|
590
|
+
assert header == expected_header
|
|
594
591
|
|
|
595
592
|
|
|
596
593
|
@pytest.mark.parametrize(
|
|
@@ -342,7 +342,6 @@ def test_header_dict(hdu_with_special_keys):
|
|
|
342
342
|
[
|
|
343
343
|
pytest.param(dict, id="Dict"),
|
|
344
344
|
pytest.param(fits.header.Header, id="Header"),
|
|
345
|
-
pytest.param(fits.hdu.compressed.CompImageHeader, id="CompHeader"),
|
|
346
345
|
],
|
|
347
346
|
)
|
|
348
347
|
def test_from_header_naxis_preserved(header_type):
|
|
@@ -1074,8 +1074,8 @@ def test_validate_vertical_multi_pane_plot_model():
|
|
|
1074
1074
|
# Test invalid case
|
|
1075
1075
|
with pytest.raises(
|
|
1076
1076
|
ValidationError,
|
|
1077
|
-
match="The number of items in `top_to_bottom_height_ratios` list \(3\) is not "
|
|
1078
|
-
"the same as the number of plots \(2\)",
|
|
1077
|
+
match=r"The number of items in `top_to_bottom_height_ratios` list \(3\) is not "
|
|
1078
|
+
r"the same as the number of plots \(2\)",
|
|
1079
1079
|
):
|
|
1080
1080
|
_ = VerticalMultiPanePlot2D(
|
|
1081
1081
|
top_to_bottom_plot_list=[plot2d, plot2d], top_to_bottom_height_ratios=[1.0, 2.0, 3.0]
|
|
@@ -445,17 +445,18 @@ def test_solarnet_keys(write_l1_task, mocker, fake_gql_client):
|
|
|
445
445
|
task()
|
|
446
446
|
files = list(task.read(tags=[Tag.frame(), Tag.output()]))
|
|
447
447
|
for file in files:
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
448
|
+
with fits.open(file) as hdu:
|
|
449
|
+
header = hdu[1].header
|
|
450
|
+
assert header["DATEREF"] == header["DATE-BEG"]
|
|
451
|
+
assert round(header["OBSGEO-X"]) == -5466045
|
|
452
|
+
assert round(header["OBSGEO-Y"]) == -2404389
|
|
453
|
+
assert round(header["OBSGEO-Z"]) == 2242134
|
|
454
|
+
assert header["SOLARRAD"] == 975.58
|
|
455
|
+
assert header["SPECSYS"] == "TOPOCENT"
|
|
456
|
+
assert header["VELOSYS"] == 0.0
|
|
457
|
+
assert header["WAVEBAND"] == "Fe XIII (1079.8 nm)"
|
|
458
|
+
assert header["WAVEMIN"] == 1075.0
|
|
459
|
+
assert header["WAVEMAX"] == 1085.0
|
|
459
460
|
|
|
460
461
|
|
|
461
462
|
def test_documentation_keys(write_l1_task, mocker, fake_gql_client):
|
|
@@ -477,18 +478,20 @@ def test_documentation_keys(write_l1_task, mocker, fake_gql_client):
|
|
|
477
478
|
task()
|
|
478
479
|
files = list(task.read(tags=[Tag.frame(), Tag.output()]))
|
|
479
480
|
for file in files:
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
header["
|
|
490
|
-
|
|
491
|
-
|
|
481
|
+
with fits.open(file) as hdu:
|
|
482
|
+
header = hdu[1].header
|
|
483
|
+
assert header["INFO_URL"] == task.docs_base_url
|
|
484
|
+
assert header["HEADVERS"] == spec_version
|
|
485
|
+
assert (
|
|
486
|
+
header["HEAD_URL"]
|
|
487
|
+
== f"{task.docs_base_url}/projects/data-products/en/v{spec_version}"
|
|
488
|
+
)
|
|
489
|
+
calvers = task.version_from_module_name()
|
|
490
|
+
assert header["CALVERS"] == calvers
|
|
491
|
+
assert (
|
|
492
|
+
header["CAL_URL"]
|
|
493
|
+
== f"{task.docs_base_url}/projects/{task.constants.instrument.lower()}/en/v{calvers}/{task.workflow_name}.html"
|
|
494
|
+
)
|
|
492
495
|
|
|
493
496
|
|
|
494
497
|
def test_get_version_from_module(write_l1_task):
|
|
@@ -519,13 +522,13 @@ def test_rice_compression_with_specified_tile_size(write_l1_task, mocker, fake_g
|
|
|
519
522
|
task()
|
|
520
523
|
files = list(task.read(tags=[Tag.frame(), Tag.output()]))
|
|
521
524
|
for file in files:
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
525
|
+
with fits.open(file) as hdul:
|
|
526
|
+
bintable = hdul[1]._get_bintable_without_data()
|
|
527
|
+
comp_header = bintable.header
|
|
528
|
+
data_shape = list(hdul[1].data.shape)
|
|
529
|
+
data_shape.reverse()
|
|
530
|
+
for i, dim in enumerate(data_shape):
|
|
531
|
+
assert comp_header["ZTILE" + str(i + 1)] == min(dim, TILE_SIZE)
|
|
529
532
|
|
|
530
533
|
|
|
531
534
|
def test_rice_compression_with_default_tile_size(
|
|
@@ -547,14 +550,14 @@ def test_rice_compression_with_default_tile_size(
|
|
|
547
550
|
assert task.tile_size_param == None
|
|
548
551
|
files = list(task.read(tags=[Tag.frame(), Tag.output()]))
|
|
549
552
|
for file in files:
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
553
|
+
with fits.open(file) as hdul:
|
|
554
|
+
bintable = hdul[1]._get_bintable_without_data()
|
|
555
|
+
comp_header = bintable.header
|
|
556
|
+
data_shape = list(hdul[1].data.shape)
|
|
557
|
+
data_shape.reverse()
|
|
558
|
+
assert comp_header["ZTILE1"] == data_shape[0]
|
|
559
|
+
assert comp_header["ZTILE2"] == 128
|
|
560
|
+
assert comp_header["ZTILE3"] == 1
|
|
558
561
|
|
|
559
562
|
|
|
560
563
|
def test_reprocessing_keys(write_l1_task, mocker, fake_gql_client):
|
|
@@ -571,20 +574,26 @@ def test_reprocessing_keys(write_l1_task, mocker, fake_gql_client):
|
|
|
571
574
|
task()
|
|
572
575
|
files = list(task.read(tags=[Tag.frame(), Tag.output()]))
|
|
573
576
|
for file in files:
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
577
|
+
with fits.open(file) as hdu:
|
|
578
|
+
header = hdu[1].header
|
|
579
|
+
assert (
|
|
580
|
+
header["IDSPARID"]
|
|
581
|
+
== task.metadata_store_input_dataset_parameters.inputDatasetPartId
|
|
582
|
+
)
|
|
583
|
+
assert (
|
|
584
|
+
header["IDSOBSID"]
|
|
585
|
+
== task.metadata_store_input_dataset_observe_frames.inputDatasetPartId
|
|
586
|
+
)
|
|
587
|
+
assert (
|
|
588
|
+
header["IDSCALID"]
|
|
589
|
+
== task.metadata_store_input_dataset_calibration_frames.inputDatasetPartId
|
|
590
|
+
)
|
|
591
|
+
assert header["WKFLNAME"] == task.workflow_name
|
|
592
|
+
assert header["WKFLVERS"] == task.workflow_version
|
|
593
|
+
assert header["PROCTYPE"] == "L1"
|
|
594
|
+
assert header["PRODUCT"] == task.compute_product_id(
|
|
595
|
+
header["IDSOBSID"], header["PROCTYPE"]
|
|
596
|
+
)
|
|
588
597
|
|
|
589
598
|
|
|
590
599
|
def test_missing_input_dataset_part(
|
|
@@ -603,13 +612,17 @@ def test_missing_input_dataset_part(
|
|
|
603
612
|
task()
|
|
604
613
|
files = list(task.read(tags=[Tag.frame(), Tag.output()]))
|
|
605
614
|
for file in files:
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
615
|
+
with fits.open(file) as hdu:
|
|
616
|
+
header = hdu[1].header
|
|
617
|
+
assert (
|
|
618
|
+
header["IDSPARID"]
|
|
619
|
+
== task.metadata_store_input_dataset_parameters.inputDatasetPartId
|
|
620
|
+
)
|
|
621
|
+
assert (
|
|
622
|
+
header["IDSOBSID"]
|
|
623
|
+
== task.metadata_store_input_dataset_observe_frames.inputDatasetPartId
|
|
624
|
+
)
|
|
625
|
+
assert "IDSCALID" not in header
|
|
613
626
|
|
|
614
627
|
|
|
615
628
|
@pytest.mark.parametrize(
|
|
@@ -757,8 +770,9 @@ def test_empty_waveband(write_l1_task_with_empty_waveband, mocker, fake_gql_clie
|
|
|
757
770
|
task()
|
|
758
771
|
files = list(task.read(tags=[Tag.frame(), Tag.output()]))
|
|
759
772
|
for file in files:
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
773
|
+
with fits.open(file) as hdu:
|
|
774
|
+
header = hdu[1].header
|
|
775
|
+
assert header["WAVEMIN"] == 10000
|
|
776
|
+
assert header["WAVEMAX"] == 10050
|
|
777
|
+
with pytest.raises(KeyError):
|
|
778
|
+
header["WAVEBAND"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dkist-processing-common
|
|
3
|
-
Version: 13.0.
|
|
3
|
+
Version: 13.0.4
|
|
4
4
|
Summary: Common task classes used by the DKIST science data processing pipelines
|
|
5
5
|
Author-email: NSO / AURA <dkistdc@nso.edu>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -17,7 +17,7 @@ Requires-Dist: asdf<4.0.0,>=3.5.0
|
|
|
17
17
|
Requires-Dist: astropy>=7.0.0
|
|
18
18
|
Requires-Dist: dkist-fits-specifications<5.0,>=4.24.0
|
|
19
19
|
Requires-Dist: dkist-header-validator<6.0,>=5.3.0
|
|
20
|
-
Requires-Dist: dkist-processing-core==7.1
|
|
20
|
+
Requires-Dist: dkist-processing-core==7.2.1
|
|
21
21
|
Requires-Dist: dkist-processing-pac<4.0,>=3.1
|
|
22
22
|
Requires-Dist: dkist-service-configuration<5.0,>=4.3.0
|
|
23
23
|
Requires-Dist: dkist-spectral-lines<4.0,>=3.0.0
|
|
@@ -2,7 +2,7 @@ asdf<4.0.0,>=3.5.0
|
|
|
2
2
|
astropy>=7.0.0
|
|
3
3
|
dkist-fits-specifications<5.0,>=4.24.0
|
|
4
4
|
dkist-header-validator<6.0,>=5.3.0
|
|
5
|
-
dkist-processing-core==7.1
|
|
5
|
+
dkist-processing-core==7.2.1
|
|
6
6
|
dkist-processing-pac<4.0,>=3.1
|
|
7
7
|
dkist-service-configuration<5.0,>=4.3.0
|
|
8
8
|
dkist-spectral-lines<4.0,>=3.0.0
|
|
@@ -25,7 +25,7 @@ dependencies = [
|
|
|
25
25
|
"astropy >= 7.0.0",
|
|
26
26
|
"dkist-fits-specifications >= 4.24.0, <5.0",
|
|
27
27
|
"dkist-header-validator >= 5.3.0, <6.0",
|
|
28
|
-
"dkist-processing-core == 7.1
|
|
28
|
+
"dkist-processing-core == 7.2.1",
|
|
29
29
|
"dkist-processing-pac >= 3.1, <4.0",
|
|
30
30
|
"dkist-service-configuration >= 4.3.0, <5.0",
|
|
31
31
|
"dkist-spectral-lines >= 3.0.0, <4.0",
|
|
@@ -89,6 +89,16 @@ markers = [
|
|
|
89
89
|
"development: For tests that can only be run while developing with a sidecar proxy (as opposed to in bitbucket pipelines)",
|
|
90
90
|
"flaky: For tests that sporadically fail",
|
|
91
91
|
]
|
|
92
|
+
filterwarnings = [
|
|
93
|
+
# Turn all warnings into errors so they do not pass silently.
|
|
94
|
+
"error",
|
|
95
|
+
# Ignore pytest's funnybusiness
|
|
96
|
+
"ignore::pytest.PytestUnraisableExceptionWarning",
|
|
97
|
+
# A few cards are too long (> 80 char) only in testing, not in production. Ignore it here
|
|
98
|
+
"ignore:Card is too long, comment will be truncated:astropy.io.fits.verify.VerifyWarning",
|
|
99
|
+
# We don't care about this 'invalid value' during testing
|
|
100
|
+
"ignore:invalid value encountered in scalar divide:RuntimeWarning"
|
|
101
|
+
]
|
|
92
102
|
|
|
93
103
|
[tool.coverage.run]
|
|
94
104
|
omit = [
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Make isb username and password configurable for local unit tests.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Simplify the production of L1 quality metrics.
|
|
File without changes
|
{dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/.pre-commit-config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dkist_processing_common-13.0.3rc3 → dkist_processing_common-13.0.4}/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
|