dkist-processing-test 1.41.3rc1__tar.gz → 1.41.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.
Files changed (45) hide show
  1. {dkist_processing_test-1.41.3rc1/dkist_processing_test.egg-info → dkist_processing_test-1.41.4}/PKG-INFO +12 -12
  2. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/models/constants.py +1 -1
  3. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/models/parameters.py +2 -2
  4. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/parsers/test_l0_fits_access.py +1 -1
  5. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/construct_dataset_extras.py +1 -1
  6. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/fake_science.py +2 -2
  7. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/parse.py +4 -4
  8. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/quality.py +2 -2
  9. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tests/test_tasks.py +13 -13
  10. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/workflows/common_tasks.py +4 -4
  11. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/workflows/end_to_end.py +14 -7
  12. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/workflows/trial_end_to_end.py +6 -6
  13. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4/dkist_processing_test.egg-info}/PKG-INFO +12 -12
  14. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test.egg-info/requires.txt +11 -11
  15. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/pyproject.toml +21 -13
  16. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/.gitignore +0 -0
  17. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/.pre-commit-config.yaml +0 -0
  18. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/.snyk +0 -0
  19. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/README.rst +0 -0
  20. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/bitbucket-pipelines.yml +0 -0
  21. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/__init__.py +0 -0
  22. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/config.py +0 -0
  23. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/models/__init__.py +0 -0
  24. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/parsers/__init__.py +0 -0
  25. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/parsers/time.py +0 -0
  26. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/__init__.py +0 -0
  27. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/exercise_numba.py +0 -0
  28. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/fail.py +0 -0
  29. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/high_memory.py +0 -0
  30. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/manual.py +0 -0
  31. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/movie.py +0 -0
  32. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/noop.py +0 -0
  33. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tasks/write_l1.py +0 -0
  34. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tests/__init__.py +0 -0
  35. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tests/conftest.py +0 -0
  36. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/tests/test_workflows.py +0 -0
  37. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/workflows/__init__.py +0 -0
  38. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/workflows/exercise_numba.py +0 -0
  39. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/workflows/fail.py +0 -0
  40. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/workflows/noop.py +0 -0
  41. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test/workflows/resource_queue.py +0 -0
  42. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test.egg-info/SOURCES.txt +0 -0
  43. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test.egg-info/dependency_links.txt +0 -0
  44. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/dkist_processing_test.egg-info/top_level.txt +0 -0
  45. {dkist_processing_test-1.41.3rc1 → dkist_processing_test-1.41.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-test
3
- Version: 1.41.3rc1
3
+ Version: 1.41.4
4
4
  Summary: Example instrument code used by the DKIST science data processing pipelines to test processing infrastructure
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3.13
13
13
  Requires-Python: >=3.13
14
14
  Description-Content-Type: text/x-rst
15
- Requires-Dist: dkist-processing-common==13.0.3rc3
15
+ Requires-Dist: dkist-processing-common==13.0.4
16
16
  Requires-Dist: dkist-header-validator==5.3.0
17
17
  Requires-Dist: dkist-service-configuration==4.3.0
18
18
  Requires-Dist: dkist-fits-specifications==4.24.0
@@ -41,7 +41,7 @@ Provides-Extra: frozen
41
41
  Requires-Dist: Deprecated==1.3.1; extra == "frozen"
42
42
  Requires-Dist: ImageIO==2.37.3; extra == "frozen"
43
43
  Requires-Dist: Jinja2==3.1.6; extra == "frozen"
44
- Requires-Dist: Mako==1.3.10; extra == "frozen"
44
+ Requires-Dist: Mako==1.3.11; extra == "frozen"
45
45
  Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
46
46
  Requires-Dist: PyJWT==2.12.1; extra == "frozen"
47
47
  Requires-Dist: PyYAML==6.0.3; extra == "frozen"
@@ -84,8 +84,8 @@ Requires-Dist: asyncpg==0.31.0; extra == "frozen"
84
84
  Requires-Dist: attrs==26.1.0; extra == "frozen"
85
85
  Requires-Dist: babel==2.18.0; extra == "frozen"
86
86
  Requires-Dist: billiard==4.2.4; extra == "frozen"
87
- Requires-Dist: boto3==1.42.89; extra == "frozen"
88
- Requires-Dist: botocore==1.42.89; extra == "frozen"
87
+ Requires-Dist: boto3==1.42.90; extra == "frozen"
88
+ Requires-Dist: botocore==1.42.90; extra == "frozen"
89
89
  Requires-Dist: cadwyn==5.4.6; extra == "frozen"
90
90
  Requires-Dist: celery==5.6.3; extra == "frozen"
91
91
  Requires-Dist: certifi==2026.2.25; extra == "frozen"
@@ -105,10 +105,10 @@ Requires-Dist: dacite==1.9.2; extra == "frozen"
105
105
  Requires-Dist: decorator==5.2.1; extra == "frozen"
106
106
  Requires-Dist: dill==0.4.1; extra == "frozen"
107
107
  Requires-Dist: dkist-header-validator==5.3.0; extra == "frozen"
108
- Requires-Dist: dkist-processing-common==13.0.3rc3; extra == "frozen"
109
- Requires-Dist: dkist-processing-core==7.1.0; extra == "frozen"
108
+ Requires-Dist: dkist-processing-common==13.0.4; extra == "frozen"
109
+ Requires-Dist: dkist-processing-core==7.2.1; extra == "frozen"
110
110
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
111
- Requires-Dist: dkist-processing-test==1.41.3rc1; extra == "frozen"
111
+ Requires-Dist: dkist-processing-test==1.41.4; extra == "frozen"
112
112
  Requires-Dist: dkist-service-configuration==4.3.0; extra == "frozen"
113
113
  Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
114
114
  Requires-Dist: dkist_fits_specifications==4.24.0; extra == "frozen"
@@ -187,7 +187,7 @@ Requires-Dist: opentelemetry-sdk==1.41.0; extra == "frozen"
187
187
  Requires-Dist: opentelemetry-semantic-conventions==0.62b0; extra == "frozen"
188
188
  Requires-Dist: opentelemetry-util-http==0.62b0; extra == "frozen"
189
189
  Requires-Dist: outcome==1.3.0.post0; extra == "frozen"
190
- Requires-Dist: packaging==26.0; extra == "frozen"
190
+ Requires-Dist: packaging==26.1; extra == "frozen"
191
191
  Requires-Dist: pandas==3.0.2; extra == "frozen"
192
192
  Requires-Dist: parfive==2.3.1; extra == "frozen"
193
193
  Requires-Dist: pathspec==1.0.4; extra == "frozen"
@@ -206,9 +206,9 @@ Requires-Dist: protobuf==6.33.6; extra == "frozen"
206
206
  Requires-Dist: psutil==7.2.2; extra == "frozen"
207
207
  Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
208
208
  Requires-Dist: pycparser==3.0; extra == "frozen"
209
- Requires-Dist: pydantic==2.13.0; extra == "frozen"
209
+ Requires-Dist: pydantic==2.13.1; extra == "frozen"
210
210
  Requires-Dist: pydantic-settings==2.13.1; extra == "frozen"
211
- Requires-Dist: pydantic_core==2.46.0; extra == "frozen"
211
+ Requires-Dist: pydantic_core==2.46.1; extra == "frozen"
212
212
  Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
213
213
  Requires-Dist: pygtrie==2.5.0; extra == "frozen"
214
214
  Requires-Dist: pyparsing==3.3.2; extra == "frozen"
@@ -232,7 +232,7 @@ Requires-Dist: setproctitle==1.3.7; extra == "frozen"
232
232
  Requires-Dist: shellingham==1.5.4; extra == "frozen"
233
233
  Requires-Dist: six==1.17.0; extra == "frozen"
234
234
  Requires-Dist: sniffio==1.3.1; extra == "frozen"
235
- Requires-Dist: solar-wavelength-calibration==2.0.1; extra == "frozen"
235
+ Requires-Dist: solar-wavelength-calibration==2.0.3; extra == "frozen"
236
236
  Requires-Dist: sqids==0.5.1; extra == "frozen"
237
237
  Requires-Dist: sqlparse==0.5.5; extra == "frozen"
238
238
  Requires-Dist: starlette==0.48.0; extra == "frozen"
@@ -6,7 +6,7 @@ class TestConstants(ConstantsBase):
6
6
  """
7
7
  Constants for the test instrument.
8
8
 
9
- This class is only used on the `TestQualityL0Metrics` task to allow us to check for `num_modstates`.
9
+ This class is only used on the `ExampleQualityL0Metrics` task to allow us to check for `num_modstates`.
10
10
  """
11
11
 
12
12
  @property
@@ -8,8 +8,8 @@ from dkist_processing_common.models.parameters import ParameterBase
8
8
  from dkist_processing_common.models.parameters import ParameterWavelengthMixin
9
9
 
10
10
 
11
- class TestParameters(ParameterBase, ParameterWavelengthMixin):
12
- """Class to test loading parameters from a file."""
11
+ class ExampleParameters(ParameterBase, ParameterWavelengthMixin):
12
+ """Class to test loading example parameters from a file."""
13
13
 
14
14
  def _load_param_value_from_json_file(self, param_obj: InputDatasetFilePointer) -> np.ndarray:
15
15
  """Return the data associated with a tagged parameter file saved with a string message."""
@@ -4,7 +4,7 @@ from astropy.io import fits
4
4
  from dkist_processing_common.parsers.l0_fits_access import L0FitsAccess
5
5
 
6
6
 
7
- class TestL0FitsAccess(L0FitsAccess):
7
+ class ExampleL0FitsAccess(L0FitsAccess):
8
8
  """
9
9
  Class to provide easy access to L0 headers.
10
10
 
@@ -7,7 +7,7 @@ from dkist_processing_common.models.task_name import TaskName
7
7
  from dkist_processing_common.tasks.write_extra import WriteL1DatasetExtras
8
8
 
9
9
 
10
- class TestWriteL1DatasetExtras(WriteL1DatasetExtras):
10
+ class ExampleWriteL1DatasetExtras(WriteL1DatasetExtras):
11
11
  def dataset_extra_headers(
12
12
  self,
13
13
  header_data: DatasetExtraHeaderData,
@@ -13,7 +13,7 @@ from dkist_processing_common.models.tags import Tag
13
13
  from dkist_processing_common.tasks import WorkflowTaskBase
14
14
  from dkist_service_configuration.logging import logger
15
15
 
16
- from dkist_processing_test.models.parameters import TestParameters
16
+ from dkist_processing_test.models.parameters import ExampleParameters
17
17
 
18
18
  __all__ = ["GenerateCalibratedData"]
19
19
 
@@ -33,7 +33,7 @@ class GenerateCalibratedData(WorkflowTaskBase):
33
33
  workflow_name=workflow_name,
34
34
  workflow_version=workflow_version,
35
35
  )
36
- self.parameters = TestParameters(
36
+ self.parameters = ExampleParameters(
37
37
  scratch=self.scratch,
38
38
  obs_ip_start_time=self.constants.obs_ip_start_time,
39
39
  wavelength=2.0,
@@ -19,7 +19,7 @@ from dkist_processing_common.tasks import ParseL0InputDataBase
19
19
 
20
20
  __all__ = ["ParseL0TestInputData"]
21
21
 
22
- from dkist_processing_test.parsers.test_l0_fits_access import TestL0FitsAccess
22
+ from dkist_processing_test.parsers.test_l0_fits_access import ExampleL0FitsAccess
23
23
  from dkist_processing_test.parsers.time import TaskDateEndBud
24
24
 
25
25
  S = TypeVar("S", bound=Stem)
@@ -31,7 +31,7 @@ class DspsRepeatNumberFlower(SingleValueSingleKeyFlower):
31
31
  tag_stem_name=StemName.dsps_repeat, metadata_key=MetadataKey.current_dsps_repeat
32
32
  )
33
33
 
34
- def setter(self, fits_obj: TestL0FitsAccess):
34
+ def setter(self, fits_obj: ExampleL0FitsAccess):
35
35
  if fits_obj.ip_task_type != "observe":
36
36
  return SpilledDirt
37
37
  return super().setter(fits_obj)
@@ -40,7 +40,7 @@ class DspsRepeatNumberFlower(SingleValueSingleKeyFlower):
40
40
  class PickyDummyBud(Stem):
41
41
  """Exists to do literally nothing"""
42
42
 
43
- def setter(self, fits_obj: TestL0FitsAccess):
43
+ def setter(self, fits_obj: ExampleL0FitsAccess):
44
44
  if fits_obj.ip_task_type == "bad value":
45
45
  raise ValueError("This task type is bad!")
46
46
 
@@ -51,7 +51,7 @@ class PickyDummyBud(Stem):
51
51
  class ParseL0TestInputData(ParseL0InputDataBase):
52
52
  @property
53
53
  def fits_parsing_class(self):
54
- return TestL0FitsAccess
54
+ return ExampleL0FitsAccess
55
55
 
56
56
  @property
57
57
  def tag_flowers(self) -> list[S]:
@@ -7,12 +7,12 @@ from dkist_processing_common.models.constants import ConstantsBase
7
7
  from dkist_processing_common.tasks import AssembleQualityData
8
8
  from dkist_processing_common.tasks import QualityL0Metrics
9
9
 
10
- __all__ = ["TestQualityL0Metrics", "TestAssembleQualityData"]
10
+ __all__ = ["ExampleQualityL0Metrics", "TestAssembleQualityData"]
11
11
 
12
12
  from dkist_processing_test.models.constants import TestConstants
13
13
 
14
14
 
15
- class TestQualityL0Metrics(QualityL0Metrics):
15
+ class ExampleQualityL0Metrics(QualityL0Metrics):
16
16
  @property
17
17
  def constants_model_class(self) -> Type[ConstantsBase]:
18
18
  return TestConstants
@@ -44,10 +44,10 @@ from dkist_processing_common.tasks import TransferTrialData
44
44
  from dkist_processing_common.tests.mock_metadata_store import fake_gql_client
45
45
  from dkist_service_configuration.logging import logger
46
46
 
47
- from dkist_processing_test.models.parameters import TestParameters
47
+ from dkist_processing_test.models.parameters import ExampleParameters
48
+ from dkist_processing_test.tasks import ExampleQualityL0Metrics
48
49
  from dkist_processing_test.tasks import ParseL0TestInputData
49
- from dkist_processing_test.tasks import TestQualityL0Metrics
50
- from dkist_processing_test.tasks.construct_dataset_extras import TestWriteL1DatasetExtras
50
+ from dkist_processing_test.tasks.construct_dataset_extras import ExampleWriteL1DatasetExtras
51
51
  from dkist_processing_test.tasks.exercise_numba import ExerciseNumba
52
52
  from dkist_processing_test.tasks.fail import FailTask
53
53
  from dkist_processing_test.tasks.fake_science import GenerateCalibratedData
@@ -383,7 +383,7 @@ def assign_input_dataset_doc_to_task(
383
383
  tags=Tag.input_dataset_parameters(),
384
384
  encoder=basemodel_encoder,
385
385
  )
386
- task.parameters = TestParameters(
386
+ task.parameters = ExampleParameters(
387
387
  scratch=task.scratch, wavelength=2.0, obs_ip_start_time=obs_ip_start_time
388
388
  )
389
389
 
@@ -717,7 +717,7 @@ def test_write_l1_task(write_l1_task, mocker, fake_gql_client):
717
717
 
718
718
  @pytest.fixture
719
719
  def write_dataset_extras_task(tmp_path, recipe_run_id):
720
- with TestWriteL1DatasetExtras(
720
+ with ExampleWriteL1DatasetExtras(
721
721
  recipe_run_id=recipe_run_id,
722
722
  workflow_name="workflow_name",
723
723
  workflow_version="workflow_version",
@@ -759,7 +759,7 @@ def test_write_dataset_extras_task(write_dataset_extras_task, mocker, fake_gql_c
759
759
  assert file.exists
760
760
  h = fits.getheader(file, ext=1)
761
761
  assert h["ATLASURL"] == "example URL for testing"
762
- # See `TestWriteL1DatasetExtras.run` for why these values
762
+ # See `ExampleWriteL1DatasetExtras.run` for why these values
763
763
  assert h["NUMCSSTP"] == 999
764
764
  assert h["CSSTEP"] == 99
765
765
  assert h["NFRMPCSS"] == 666
@@ -785,7 +785,7 @@ class BaseSpec214l0Dataset(Spec122Dataset):
785
785
  @pytest.fixture()
786
786
  def test_l0_quality_metrics_task_class(quality_l0_task_types):
787
787
  # Just to override `quality_task_types` to make testing more precise
788
- class TestingL0QualityMetrics(TestQualityL0Metrics):
788
+ class TestingL0QualityMetrics(ExampleQualityL0Metrics):
789
789
  @property
790
790
  def quality_task_types(self) -> list[str]:
791
791
  return quality_l0_task_types
@@ -914,13 +914,13 @@ def test_quality_l0_metrics(quality_l0_task, quality_l0_task_types, num_modstate
914
914
 
915
915
  def test_quality_l0_metrics_task_integration_run(recipe_run_id):
916
916
  """
917
- Given: A base `TestQualityL0Metrics` task with no constants or data
917
+ Given: A base `ExampleQualityL0Metrics` task with no constants or data
918
918
  When: Running the task
919
919
  Then: No error is raised
920
920
  """
921
921
  # I.e., this tests that the fixturization needed to get good testing on the quality L0 task aren't hiding
922
922
  # an inability to run in integration tests where the setup is much more minimal
923
- task = TestQualityL0Metrics(
923
+ task = ExampleQualityL0Metrics(
924
924
  recipe_run_id=recipe_run_id, workflow_name="integration-style", workflow_version="vX.Y"
925
925
  )
926
926
  task()
@@ -977,8 +977,8 @@ def test_make_movie_frames_task(make_movie_frames_task, mocker, fake_gql_client)
977
977
  assert len(movie_frames) == task.testing_num_dsps_repeats
978
978
  for frame in movie_frames:
979
979
  assert frame.exists()
980
- hdul = fits.open(frame)
981
- assert len(hdul[0].data.shape) == 2
980
+ with fits.open(frame) as hdul:
981
+ assert len(hdul[0].data.shape) == 2
982
982
 
983
983
 
984
984
  @pytest.fixture()
@@ -1001,8 +1001,8 @@ def assemble_test_movie_task(tmp_path, recipe_run_id):
1001
1001
  )
1002
1002
  header_generator = (d.header() for d in ds)
1003
1003
  for d, header in enumerate(header_generator):
1004
- data = np.ones((10, 10))
1005
- data[: d * 10, :] = 0.0
1004
+ data = np.ones((10, 10)) * 20.0
1005
+ data[: d * 10, :] = 10.0
1006
1006
  hdl = generate_214_l0_fits_frame(data=data, s122_header=header)
1007
1007
  task.write(
1008
1008
  data=hdl,
@@ -16,13 +16,13 @@ from dkist_processing_common.tasks import TrialTeardown
16
16
  from dkist_processing_core import Workflow
17
17
 
18
18
  from dkist_processing_test.tasks import AssembleTestMovie
19
+ from dkist_processing_test.tasks import ExampleQualityL0Metrics
19
20
  from dkist_processing_test.tasks import GenerateCalibratedData
20
21
  from dkist_processing_test.tasks import MakeTestMovieFrames
21
22
  from dkist_processing_test.tasks import ParseL0TestInputData
22
23
  from dkist_processing_test.tasks import TestAssembleQualityData
23
- from dkist_processing_test.tasks import TestQualityL0Metrics
24
24
  from dkist_processing_test.tasks import WriteL1Data
25
- from dkist_processing_test.tasks.construct_dataset_extras import TestWriteL1DatasetExtras
25
+ from dkist_processing_test.tasks.construct_dataset_extras import ExampleWriteL1DatasetExtras
26
26
  from dkist_processing_test.tasks.manual import ManualWithoutProvenance
27
27
  from dkist_processing_test.tasks.manual import ManualWithProvenance
28
28
 
@@ -54,7 +54,7 @@ quality_l0_metrics = Workflow(
54
54
  detail="quality-l0-metrics",
55
55
  workflow_package=__package__,
56
56
  )
57
- quality_l0_metrics.add_node(task=TestQualityL0Metrics, upstreams=None)
57
+ quality_l0_metrics.add_node(task=ExampleQualityL0Metrics, upstreams=None)
58
58
 
59
59
  # L1Quality Task
60
60
  quality_l1_metrics = Workflow(
@@ -241,4 +241,4 @@ construct_dataset_extras = Workflow(
241
241
  detail="writel1-dataset-extras",
242
242
  workflow_package=__package__,
243
243
  )
244
- construct_dataset_extras.add_node(task=TestWriteL1DatasetExtras, upstreams=None)
244
+ construct_dataset_extras.add_node(task=ExampleWriteL1DatasetExtras, upstreams=None)
@@ -12,13 +12,13 @@ from dkist_processing_core import ResourceQueue
12
12
  from dkist_processing_core import Workflow
13
13
 
14
14
  from dkist_processing_test.tasks import AssembleTestMovie
15
+ from dkist_processing_test.tasks import ExampleQualityL0Metrics
15
16
  from dkist_processing_test.tasks import GenerateCalibratedData
16
17
  from dkist_processing_test.tasks import MakeTestMovieFrames
17
18
  from dkist_processing_test.tasks import ParseL0TestInputData
18
19
  from dkist_processing_test.tasks import TestAssembleQualityData
19
- from dkist_processing_test.tasks import TestQualityL0Metrics
20
20
  from dkist_processing_test.tasks import WriteL1Data
21
- from dkist_processing_test.tasks.construct_dataset_extras import TestWriteL1DatasetExtras
21
+ from dkist_processing_test.tasks.construct_dataset_extras import ExampleWriteL1DatasetExtras
22
22
 
23
23
  end_to_end = Workflow(
24
24
  input_data="input",
@@ -37,24 +37,31 @@ end_to_end.add_node(
37
37
  upstreams=ParseL0TestInputData,
38
38
  )
39
39
  end_to_end.add_node(task=WriteL1Data, upstreams=GenerateCalibratedData)
40
- end_to_end.add_node(task=TestWriteL1DatasetExtras, upstreams=GenerateCalibratedData)
40
+ end_to_end.add_node(task=ExampleWriteL1DatasetExtras, upstreams=GenerateCalibratedData)
41
41
 
42
42
  # Movie flow
43
43
  end_to_end.add_node(task=MakeTestMovieFrames, upstreams=GenerateCalibratedData)
44
44
  end_to_end.add_node(task=AssembleTestMovie, upstreams=MakeTestMovieFrames)
45
45
 
46
46
  # Quality flow
47
- end_to_end.add_node(task=TestQualityL0Metrics, upstreams=ParseL0TestInputData)
47
+ end_to_end.add_node(task=ExampleQualityL0Metrics, upstreams=ParseL0TestInputData)
48
48
  end_to_end.add_node(task=QualityL1Metrics, upstreams=GenerateCalibratedData)
49
49
  end_to_end.add_node(
50
- task=TestAssembleQualityData, upstreams=[TestQualityL0Metrics, QualityL1Metrics]
50
+ task=TestAssembleQualityData, upstreams=[ExampleQualityL0Metrics, QualityL1Metrics]
51
51
  )
52
52
 
53
53
  # Output flow
54
- end_to_end.add_node(task=SubmitDatasetMetadata, upstreams=[WriteL1Data, TestWriteL1DatasetExtras])
54
+ end_to_end.add_node(
55
+ task=SubmitDatasetMetadata, upstreams=[WriteL1Data, ExampleWriteL1DatasetExtras]
56
+ )
55
57
  end_to_end.add_node(
56
58
  task=TransferL1Data,
57
- upstreams=[WriteL1Data, AssembleTestMovie, TestAssembleQualityData, TestWriteL1DatasetExtras],
59
+ upstreams=[
60
+ WriteL1Data,
61
+ AssembleTestMovie,
62
+ TestAssembleQualityData,
63
+ ExampleWriteL1DatasetExtras,
64
+ ],
58
65
  )
59
66
  end_to_end.add_node(
60
67
  task=PublishCatalogAndQualityMessages, upstreams=[TransferL1Data, SubmitDatasetMetadata]
@@ -12,13 +12,13 @@ from dkist_processing_common.tasks import TrialTeardown
12
12
  from dkist_processing_core import Workflow
13
13
 
14
14
  from dkist_processing_test.tasks import AssembleTestMovie
15
+ from dkist_processing_test.tasks import ExampleQualityL0Metrics
15
16
  from dkist_processing_test.tasks import GenerateCalibratedData
16
17
  from dkist_processing_test.tasks import MakeTestMovieFrames
17
18
  from dkist_processing_test.tasks import ParseL0TestInputData
18
19
  from dkist_processing_test.tasks import TestAssembleQualityData
19
- from dkist_processing_test.tasks import TestQualityL0Metrics
20
20
  from dkist_processing_test.tasks import WriteL1Data
21
- from dkist_processing_test.tasks.construct_dataset_extras import TestWriteL1DatasetExtras
21
+ from dkist_processing_test.tasks.construct_dataset_extras import ExampleWriteL1DatasetExtras
22
22
 
23
23
  trial = Workflow(
24
24
  input_data="input",
@@ -33,7 +33,7 @@ trial.add_node(task=TransferL0Data, upstreams=None)
33
33
  # Science flow
34
34
  trial.add_node(task=ParseL0TestInputData, upstreams=TransferL0Data)
35
35
  trial.add_node(task=GenerateCalibratedData, upstreams=ParseL0TestInputData)
36
- trial.add_node(task=TestWriteL1DatasetExtras, upstreams=GenerateCalibratedData)
36
+ trial.add_node(task=ExampleWriteL1DatasetExtras, upstreams=GenerateCalibratedData)
37
37
  trial.add_node(task=WriteL1Data, upstreams=GenerateCalibratedData)
38
38
 
39
39
  # Movie flow
@@ -41,9 +41,9 @@ trial.add_node(task=MakeTestMovieFrames, upstreams=GenerateCalibratedData)
41
41
  trial.add_node(task=AssembleTestMovie, upstreams=MakeTestMovieFrames)
42
42
 
43
43
  # Quality flow
44
- trial.add_node(task=TestQualityL0Metrics, upstreams=ParseL0TestInputData)
44
+ trial.add_node(task=ExampleQualityL0Metrics, upstreams=ParseL0TestInputData)
45
45
  trial.add_node(task=QualityL1Metrics, upstreams=GenerateCalibratedData)
46
- trial.add_node(task=TestAssembleQualityData, upstreams=[TestQualityL0Metrics, QualityL1Metrics])
46
+ trial.add_node(task=TestAssembleQualityData, upstreams=[ExampleQualityL0Metrics, QualityL1Metrics])
47
47
 
48
48
  # Trial data generation
49
49
  trial.add_node(task=CreateTrialDatasetInventory, upstreams=WriteL1Data, pip_extras=["inventory"])
@@ -62,7 +62,7 @@ trial.add_node(
62
62
  CreateTrialAsdf,
63
63
  CreateTrialQualityReport,
64
64
  AssembleTestMovie,
65
- TestWriteL1DatasetExtras,
65
+ ExampleWriteL1DatasetExtras,
66
66
  ],
67
67
  )
68
68
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-test
3
- Version: 1.41.3rc1
3
+ Version: 1.41.4
4
4
  Summary: Example instrument code used by the DKIST science data processing pipelines to test processing infrastructure
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3.13
13
13
  Requires-Python: >=3.13
14
14
  Description-Content-Type: text/x-rst
15
- Requires-Dist: dkist-processing-common==13.0.3rc3
15
+ Requires-Dist: dkist-processing-common==13.0.4
16
16
  Requires-Dist: dkist-header-validator==5.3.0
17
17
  Requires-Dist: dkist-service-configuration==4.3.0
18
18
  Requires-Dist: dkist-fits-specifications==4.24.0
@@ -41,7 +41,7 @@ Provides-Extra: frozen
41
41
  Requires-Dist: Deprecated==1.3.1; extra == "frozen"
42
42
  Requires-Dist: ImageIO==2.37.3; extra == "frozen"
43
43
  Requires-Dist: Jinja2==3.1.6; extra == "frozen"
44
- Requires-Dist: Mako==1.3.10; extra == "frozen"
44
+ Requires-Dist: Mako==1.3.11; extra == "frozen"
45
45
  Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
46
46
  Requires-Dist: PyJWT==2.12.1; extra == "frozen"
47
47
  Requires-Dist: PyYAML==6.0.3; extra == "frozen"
@@ -84,8 +84,8 @@ Requires-Dist: asyncpg==0.31.0; extra == "frozen"
84
84
  Requires-Dist: attrs==26.1.0; extra == "frozen"
85
85
  Requires-Dist: babel==2.18.0; extra == "frozen"
86
86
  Requires-Dist: billiard==4.2.4; extra == "frozen"
87
- Requires-Dist: boto3==1.42.89; extra == "frozen"
88
- Requires-Dist: botocore==1.42.89; extra == "frozen"
87
+ Requires-Dist: boto3==1.42.90; extra == "frozen"
88
+ Requires-Dist: botocore==1.42.90; extra == "frozen"
89
89
  Requires-Dist: cadwyn==5.4.6; extra == "frozen"
90
90
  Requires-Dist: celery==5.6.3; extra == "frozen"
91
91
  Requires-Dist: certifi==2026.2.25; extra == "frozen"
@@ -105,10 +105,10 @@ Requires-Dist: dacite==1.9.2; extra == "frozen"
105
105
  Requires-Dist: decorator==5.2.1; extra == "frozen"
106
106
  Requires-Dist: dill==0.4.1; extra == "frozen"
107
107
  Requires-Dist: dkist-header-validator==5.3.0; extra == "frozen"
108
- Requires-Dist: dkist-processing-common==13.0.3rc3; extra == "frozen"
109
- Requires-Dist: dkist-processing-core==7.1.0; extra == "frozen"
108
+ Requires-Dist: dkist-processing-common==13.0.4; extra == "frozen"
109
+ Requires-Dist: dkist-processing-core==7.2.1; extra == "frozen"
110
110
  Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
111
- Requires-Dist: dkist-processing-test==1.41.3rc1; extra == "frozen"
111
+ Requires-Dist: dkist-processing-test==1.41.4; extra == "frozen"
112
112
  Requires-Dist: dkist-service-configuration==4.3.0; extra == "frozen"
113
113
  Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
114
114
  Requires-Dist: dkist_fits_specifications==4.24.0; extra == "frozen"
@@ -187,7 +187,7 @@ Requires-Dist: opentelemetry-sdk==1.41.0; extra == "frozen"
187
187
  Requires-Dist: opentelemetry-semantic-conventions==0.62b0; extra == "frozen"
188
188
  Requires-Dist: opentelemetry-util-http==0.62b0; extra == "frozen"
189
189
  Requires-Dist: outcome==1.3.0.post0; extra == "frozen"
190
- Requires-Dist: packaging==26.0; extra == "frozen"
190
+ Requires-Dist: packaging==26.1; extra == "frozen"
191
191
  Requires-Dist: pandas==3.0.2; extra == "frozen"
192
192
  Requires-Dist: parfive==2.3.1; extra == "frozen"
193
193
  Requires-Dist: pathspec==1.0.4; extra == "frozen"
@@ -206,9 +206,9 @@ Requires-Dist: protobuf==6.33.6; extra == "frozen"
206
206
  Requires-Dist: psutil==7.2.2; extra == "frozen"
207
207
  Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
208
208
  Requires-Dist: pycparser==3.0; extra == "frozen"
209
- Requires-Dist: pydantic==2.13.0; extra == "frozen"
209
+ Requires-Dist: pydantic==2.13.1; extra == "frozen"
210
210
  Requires-Dist: pydantic-settings==2.13.1; extra == "frozen"
211
- Requires-Dist: pydantic_core==2.46.0; extra == "frozen"
211
+ Requires-Dist: pydantic_core==2.46.1; extra == "frozen"
212
212
  Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
213
213
  Requires-Dist: pygtrie==2.5.0; extra == "frozen"
214
214
  Requires-Dist: pyparsing==3.3.2; extra == "frozen"
@@ -232,7 +232,7 @@ Requires-Dist: setproctitle==1.3.7; extra == "frozen"
232
232
  Requires-Dist: shellingham==1.5.4; extra == "frozen"
233
233
  Requires-Dist: six==1.17.0; extra == "frozen"
234
234
  Requires-Dist: sniffio==1.3.1; extra == "frozen"
235
- Requires-Dist: solar-wavelength-calibration==2.0.1; extra == "frozen"
235
+ Requires-Dist: solar-wavelength-calibration==2.0.3; extra == "frozen"
236
236
  Requires-Dist: sqids==0.5.1; extra == "frozen"
237
237
  Requires-Dist: sqlparse==0.5.5; extra == "frozen"
238
238
  Requires-Dist: starlette==0.48.0; extra == "frozen"
@@ -1,4 +1,4 @@
1
- dkist-processing-common==13.0.3rc3
1
+ dkist-processing-common==13.0.4
2
2
  dkist-header-validator==5.3.0
3
3
  dkist-service-configuration==4.3.0
4
4
  dkist-fits-specifications==4.24.0
@@ -15,7 +15,7 @@ dkist-inventory[asdf]==1.11.5
15
15
  Deprecated==1.3.1
16
16
  ImageIO==2.37.3
17
17
  Jinja2==3.1.6
18
- Mako==1.3.10
18
+ Mako==1.3.11
19
19
  MarkupSafe==3.0.3
20
20
  PyJWT==2.12.1
21
21
  PyYAML==6.0.3
@@ -58,8 +58,8 @@ asyncpg==0.31.0
58
58
  attrs==26.1.0
59
59
  babel==2.18.0
60
60
  billiard==4.2.4
61
- boto3==1.42.89
62
- botocore==1.42.89
61
+ boto3==1.42.90
62
+ botocore==1.42.90
63
63
  cadwyn==5.4.6
64
64
  celery==5.6.3
65
65
  certifi==2026.2.25
@@ -79,10 +79,10 @@ dacite==1.9.2
79
79
  decorator==5.2.1
80
80
  dill==0.4.1
81
81
  dkist-header-validator==5.3.0
82
- dkist-processing-common==13.0.3rc3
83
- dkist-processing-core==7.1.0
82
+ dkist-processing-common==13.0.4
83
+ dkist-processing-core==7.2.1
84
84
  dkist-processing-pac==3.1.1
85
- dkist-processing-test==1.41.3rc1
85
+ dkist-processing-test==1.41.4
86
86
  dkist-service-configuration==4.3.0
87
87
  dkist-spectral-lines==3.0.0
88
88
  dkist_fits_specifications==4.24.0
@@ -161,7 +161,7 @@ opentelemetry-sdk==1.41.0
161
161
  opentelemetry-semantic-conventions==0.62b0
162
162
  opentelemetry-util-http==0.62b0
163
163
  outcome==1.3.0.post0
164
- packaging==26.0
164
+ packaging==26.1
165
165
  pandas==3.0.2
166
166
  parfive==2.3.1
167
167
  pathspec==1.0.4
@@ -180,9 +180,9 @@ protobuf==6.33.6
180
180
  psutil==7.2.2
181
181
  psycopg2-binary==2.9.11
182
182
  pycparser==3.0
183
- pydantic==2.13.0
183
+ pydantic==2.13.1
184
184
  pydantic-settings==2.13.1
185
- pydantic_core==2.46.0
185
+ pydantic_core==2.46.1
186
186
  pyerfa==2.0.1.5
187
187
  pygtrie==2.5.0
188
188
  pyparsing==3.3.2
@@ -206,7 +206,7 @@ setproctitle==1.3.7
206
206
  shellingham==1.5.4
207
207
  six==1.17.0
208
208
  sniffio==1.3.1
209
- solar-wavelength-calibration==2.0.1
209
+ solar-wavelength-calibration==2.0.3
210
210
  sqids==0.5.1
211
211
  sqlparse==0.5.5
212
212
  starlette==0.48.0
@@ -9,8 +9,8 @@ exclude = ["build*"]
9
9
 
10
10
  [tool.dkist-dev-tools]
11
11
  # Most recently frozen version by dkist-dev-tools
12
- version = "1.41.3rc1"
13
- date = 2026-04-14T11:49:03.361094
12
+ version = "1.41.4"
13
+ date = 2026-04-16T15:00:00.478031
14
14
 
15
15
  [project]
16
16
  dynamic = ["version"]
@@ -26,7 +26,7 @@ classifiers = [
26
26
  "Programming Language :: Python :: 3.13",
27
27
  ]
28
28
  dependencies = [
29
- "dkist-processing-common == 13.0.3rc3",
29
+ "dkist-processing-common == 13.0.4",
30
30
  "dkist-header-validator == 5.3.0",
31
31
  "dkist-service-configuration == 4.3.0",
32
32
  "dkist-fits-specifications == 4.24.0",
@@ -67,7 +67,7 @@ frozen = [
67
67
  "Deprecated == 1.3.1",
68
68
  "ImageIO == 2.37.3",
69
69
  "Jinja2 == 3.1.6",
70
- "Mako == 1.3.10",
70
+ "Mako == 1.3.11",
71
71
  "MarkupSafe == 3.0.3",
72
72
  "PyJWT == 2.12.1",
73
73
  "PyYAML == 6.0.3",
@@ -110,8 +110,8 @@ frozen = [
110
110
  "attrs == 26.1.0",
111
111
  "babel == 2.18.0",
112
112
  "billiard == 4.2.4",
113
- "boto3 == 1.42.89",
114
- "botocore == 1.42.89",
113
+ "boto3 == 1.42.90",
114
+ "botocore == 1.42.90",
115
115
  "cadwyn == 5.4.6",
116
116
  "celery == 5.6.3",
117
117
  "certifi == 2026.2.25",
@@ -131,10 +131,10 @@ frozen = [
131
131
  "decorator == 5.2.1",
132
132
  "dill == 0.4.1",
133
133
  "dkist-header-validator == 5.3.0",
134
- "dkist-processing-common == 13.0.3rc3",
135
- "dkist-processing-core == 7.1.0",
134
+ "dkist-processing-common == 13.0.4",
135
+ "dkist-processing-core == 7.2.1",
136
136
  "dkist-processing-pac == 3.1.1",
137
- "dkist-processing-test == 1.41.3rc1",
137
+ "dkist-processing-test == 1.41.4",
138
138
  "dkist-service-configuration == 4.3.0",
139
139
  "dkist-spectral-lines == 3.0.0",
140
140
  "dkist_fits_specifications == 4.24.0",
@@ -213,7 +213,7 @@ frozen = [
213
213
  "opentelemetry-semantic-conventions == 0.62b0",
214
214
  "opentelemetry-util-http == 0.62b0",
215
215
  "outcome == 1.3.0.post0",
216
- "packaging == 26.0",
216
+ "packaging == 26.1",
217
217
  "pandas == 3.0.2",
218
218
  "parfive == 2.3.1",
219
219
  "pathspec == 1.0.4",
@@ -232,9 +232,9 @@ frozen = [
232
232
  "psutil == 7.2.2",
233
233
  "psycopg2-binary == 2.9.11",
234
234
  "pycparser == 3.0",
235
- "pydantic == 2.13.0",
235
+ "pydantic == 2.13.1",
236
236
  "pydantic-settings == 2.13.1",
237
- "pydantic_core == 2.46.0",
237
+ "pydantic_core == 2.46.1",
238
238
  "pyerfa == 2.0.1.5",
239
239
  "pygtrie == 2.5.0",
240
240
  "pyparsing == 3.3.2",
@@ -258,7 +258,7 @@ frozen = [
258
258
  "shellingham == 1.5.4",
259
259
  "six == 1.17.0",
260
260
  "sniffio == 1.3.1",
261
- "solar-wavelength-calibration == 2.0.1",
261
+ "solar-wavelength-calibration == 2.0.3",
262
262
  "sqids == 0.5.1",
263
263
  "sqlparse == 0.5.5",
264
264
  "starlette == 0.48.0",
@@ -301,6 +301,14 @@ frozen = [
301
301
  markers = [
302
302
  "development: For tests that can only be run while developing with a sidecar proxy (as opposed to in bitbucket pipelines)"
303
303
  ]
304
+ filterwarnings = [
305
+ # Turn all warnings into errors so they do not pass silently.
306
+ "error",
307
+ # Ignore pytest's funnybusiness
308
+ "ignore::pytest.PytestUnraisableExceptionWarning",
309
+ # A few cards are too long (> 80 char) only in testing, not in production. Ignore it here
310
+ "ignore:Card is too long, comment will be truncated:astropy.io.fits.verify.VerifyWarning",
311
+ ]
304
312
 
305
313
  [tool.coverage.run]
306
314
  omit = [