dkist-processing-common 11.2.1rc2__py3-none-any.whl → 11.3.0__py3-none-any.whl

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 (92) hide show
  1. dkist_processing_common/__init__.py +1 -0
  2. dkist_processing_common/_util/constants.py +1 -0
  3. dkist_processing_common/_util/graphql.py +1 -0
  4. dkist_processing_common/_util/scratch.py +1 -1
  5. dkist_processing_common/_util/tags.py +1 -0
  6. dkist_processing_common/codecs/array.py +1 -0
  7. dkist_processing_common/codecs/asdf.py +1 -0
  8. dkist_processing_common/codecs/basemodel.py +1 -0
  9. dkist_processing_common/codecs/bytes.py +1 -0
  10. dkist_processing_common/codecs/fits.py +1 -0
  11. dkist_processing_common/codecs/iobase.py +1 -0
  12. dkist_processing_common/codecs/json.py +1 -0
  13. dkist_processing_common/codecs/path.py +1 -0
  14. dkist_processing_common/codecs/quality.py +1 -1
  15. dkist_processing_common/codecs/str.py +1 -0
  16. dkist_processing_common/config.py +1 -0
  17. dkist_processing_common/manual.py +1 -1
  18. dkist_processing_common/models/constants.py +1 -0
  19. dkist_processing_common/models/dkist_location.py +1 -1
  20. dkist_processing_common/models/fits_access.py +1 -0
  21. dkist_processing_common/models/flower_pot.py +1 -0
  22. dkist_processing_common/models/graphql.py +2 -1
  23. dkist_processing_common/models/input_dataset.py +3 -2
  24. dkist_processing_common/models/message.py +1 -1
  25. dkist_processing_common/models/message_queue_binding.py +1 -1
  26. dkist_processing_common/models/metric_code.py +1 -0
  27. dkist_processing_common/models/parameters.py +1 -1
  28. dkist_processing_common/models/quality.py +1 -0
  29. dkist_processing_common/models/tags.py +1 -0
  30. dkist_processing_common/models/task_name.py +1 -0
  31. dkist_processing_common/models/wavelength.py +2 -1
  32. dkist_processing_common/parsers/cs_step.py +1 -0
  33. dkist_processing_common/parsers/dsps_repeat.py +1 -0
  34. dkist_processing_common/parsers/experiment_id_bud.py +1 -0
  35. dkist_processing_common/parsers/id_bud.py +1 -0
  36. dkist_processing_common/parsers/l0_fits_access.py +1 -0
  37. dkist_processing_common/parsers/l1_fits_access.py +1 -0
  38. dkist_processing_common/parsers/near_bud.py +1 -0
  39. dkist_processing_common/parsers/proposal_id_bud.py +1 -0
  40. dkist_processing_common/parsers/quality.py +1 -0
  41. dkist_processing_common/parsers/retarder.py +1 -0
  42. dkist_processing_common/parsers/single_value_single_key_flower.py +1 -0
  43. dkist_processing_common/parsers/task.py +1 -0
  44. dkist_processing_common/parsers/time.py +1 -0
  45. dkist_processing_common/parsers/unique_bud.py +1 -0
  46. dkist_processing_common/parsers/wavelength.py +1 -0
  47. dkist_processing_common/tasks/__init__.py +3 -2
  48. dkist_processing_common/tasks/assemble_movie.py +1 -0
  49. dkist_processing_common/tasks/base.py +1 -0
  50. dkist_processing_common/tasks/l1_output_data.py +1 -1
  51. dkist_processing_common/tasks/mixin/globus.py +1 -1
  52. dkist_processing_common/tasks/mixin/interservice_bus.py +1 -0
  53. dkist_processing_common/tasks/mixin/metadata_store.py +1 -1
  54. dkist_processing_common/tasks/mixin/object_store.py +1 -0
  55. dkist_processing_common/tasks/mixin/quality/__init__.py +1 -0
  56. dkist_processing_common/tasks/mixin/quality/_base.py +1 -0
  57. dkist_processing_common/tasks/mixin/quality/_metrics.py +6 -4
  58. dkist_processing_common/tasks/output_data_base.py +1 -0
  59. dkist_processing_common/tasks/parse_l0_input_data.py +1 -1
  60. dkist_processing_common/tasks/quality_metrics.py +1 -1
  61. dkist_processing_common/tasks/teardown.py +1 -1
  62. dkist_processing_common/tasks/transfer_input_data.py +1 -1
  63. dkist_processing_common/tasks/trial_catalog.py +3 -2
  64. dkist_processing_common/tasks/trial_output_data.py +1 -0
  65. dkist_processing_common/tasks/write_l1.py +19 -8
  66. dkist_processing_common/tests/conftest.py +1 -0
  67. dkist_processing_common/tests/mock_metadata_store.py +2 -3
  68. dkist_processing_common/tests/test_codecs.py +2 -2
  69. dkist_processing_common/tests/test_interservice_bus.py +1 -0
  70. dkist_processing_common/tests/test_interservice_bus_mixin.py +1 -0
  71. dkist_processing_common/tests/test_manual_processing.py +1 -2
  72. dkist_processing_common/tests/test_output_data_base.py +1 -2
  73. dkist_processing_common/tests/test_parameters.py +1 -1
  74. dkist_processing_common/tests/test_parse_l0_input_data.py +1 -0
  75. dkist_processing_common/tests/test_quality.py +1 -0
  76. dkist_processing_common/tests/test_quality_mixin.py +10 -3
  77. dkist_processing_common/tests/test_scratch.py +2 -1
  78. dkist_processing_common/tests/test_stems.py +1 -1
  79. dkist_processing_common/tests/test_tags.py +1 -0
  80. dkist_processing_common/tests/test_teardown.py +1 -1
  81. dkist_processing_common/tests/test_transfer_input_data.py +2 -3
  82. dkist_processing_common/tests/test_trial_catalog.py +1 -0
  83. dkist_processing_common/tests/test_trial_output_data.py +1 -1
  84. dkist_processing_common/tests/test_workflow_task_base.py +1 -2
  85. dkist_processing_common/tests/test_write_l1.py +8 -10
  86. {dkist_processing_common-11.2.1rc2.dist-info → dkist_processing_common-11.3.0.dist-info}/METADATA +2 -2
  87. dkist_processing_common-11.3.0.dist-info/RECORD +122 -0
  88. docs/conf.py +1 -0
  89. changelog/262.misc.rst +0 -1
  90. dkist_processing_common-11.2.1rc2.dist-info/RECORD +0 -123
  91. {dkist_processing_common-11.2.1rc2.dist-info → dkist_processing_common-11.3.0.dist-info}/WHEEL +0 -0
  92. {dkist_processing_common-11.2.1rc2.dist-info → dkist_processing_common-11.3.0.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,5 @@
1
1
  """Tasks to support transferring an arbitrary collection of files to a customizable post-run location."""
2
+
2
3
  import logging
3
4
  from functools import cached_property
4
5
  from pathlib import Path
@@ -1,4 +1,5 @@
1
1
  """Task(s) for writing level 1 data as 214 compliant fits files."""
2
+
2
3
  import importlib
3
4
  import logging
4
5
  import uuid
@@ -213,11 +214,6 @@ class WriteL1Frame(WorkflowTaskBase, MetadataStoreMixin, ABC):
213
214
  header["OBS_HDU"] = 1
214
215
  header["FILENAME"] = self.l1_filename(header=header, stokes=stokes)
215
216
  header["STOKES"] = stokes
216
- # Cadence keywords
217
- header["CADENCE"] = self.constants.average_cadence
218
- header["CADMIN"] = self.constants.minimum_cadence
219
- header["CADMAX"] = self.constants.maximum_cadence
220
- header["CADVAR"] = self.constants.variance_cadence
221
217
  # Keywords to support reprocessing
222
218
  if parameters := self.metadata_store_input_dataset_parameters:
223
219
  header["IDSPARID"] = parameters.inputDatasetPartId
@@ -232,6 +228,19 @@ class WriteL1Frame(WorkflowTaskBase, MetadataStoreMixin, ABC):
232
228
  header["PRODUCT"] = self.compute_product_id(header["IDSOBSID"], header["PROCTYPE"])
233
229
  return header
234
230
 
231
+ def add_timing_headers(self, header: fits.Header) -> fits.Header:
232
+ """
233
+ Add timing headers to the FITS header.
234
+
235
+ This method adds or updates headers related to frame timings.
236
+ """
237
+ # Cadence keywords
238
+ header["CADENCE"] = self.constants.average_cadence
239
+ header["CADMIN"] = self.constants.minimum_cadence
240
+ header["CADMAX"] = self.constants.maximum_cadence
241
+ header["CADVAR"] = self.constants.variance_cadence
242
+ return header
243
+
235
244
  def add_spectral_line_headers(
236
245
  self,
237
246
  header: fits.Header,
@@ -370,6 +379,8 @@ class WriteL1Frame(WorkflowTaskBase, MetadataStoreMixin, ABC):
370
379
  header = self.add_doc_headers(header=header)
371
380
  # Add the dataset headers (abstract - implement in instrument task)
372
381
  header = self.add_dataset_headers(header=header, stokes=stokes_param)
382
+ # Add the timing headers
383
+ header = self.add_timing_headers(header=header)
373
384
  # Add the spectral line headers
374
385
  header = self.add_spectral_line_headers(header=header)
375
386
  # Remove any headers not contained in spec 214
@@ -414,9 +425,9 @@ class WriteL1Frame(WorkflowTaskBase, MetadataStoreMixin, ABC):
414
425
  inst_name = self.constants.instrument.lower()
415
426
  calvers = self.version_from_module_name()
416
427
  header["CALVERS"] = calvers
417
- header[
418
- "CAL_URL"
419
- ] = f"{self.docs_base_url}/projects/{inst_name}/en/v{calvers}/{self.workflow_name}.html"
428
+ header["CAL_URL"] = (
429
+ f"{self.docs_base_url}/projects/{inst_name}/en/v{calvers}/{self.workflow_name}.html"
430
+ )
420
431
  return header
421
432
 
422
433
  def version_from_module_name(self) -> str:
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Global test fixtures
3
3
  """
4
+
4
5
  import json
5
6
  from collections import defaultdict
6
7
  from copy import deepcopy
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Support functions and constants for customized FakeGQLClient
3
3
  """
4
+
4
5
  import json
5
6
  from abc import ABC
6
7
  from abc import abstractmethod
@@ -22,7 +23,6 @@ from dkist_processing_common.models.graphql import RecipeRunProvenanceResponse
22
23
  from dkist_processing_common.models.graphql import RecipeRunResponse
23
24
  from dkist_processing_common.models.graphql import RecipeRunStatusResponse
24
25
 
25
-
26
26
  TILE_SIZE = 64
27
27
 
28
28
  default_observe_frames_doc = [
@@ -223,8 +223,7 @@ def fake_gql_client_factory(response_mapping_override: ResponseMapping | None =
223
223
  raise ValueError(f"Mocked response not found for {query_base=}, {query_response_cls=}")
224
224
 
225
225
  @staticmethod
226
- def execute_gql_mutation(**kwargs):
227
- ...
226
+ def execute_gql_mutation(**kwargs): ...
228
227
 
229
228
  return FakeGQLClientClass
230
229
 
@@ -20,8 +20,8 @@ from astropy.io.fits import HDUList
20
20
  from astropy.io.fits import Header
21
21
  from astropy.io.fits import PrimaryHDU
22
22
  from pydantic import BaseModel
23
- from pydantic import create_model
24
23
  from pydantic import Field
24
+ from pydantic import create_model
25
25
 
26
26
  from dkist_processing_common.codecs.asdf import asdf_decoder
27
27
  from dkist_processing_common.codecs.asdf import asdf_encoder
@@ -39,10 +39,10 @@ from dkist_processing_common.codecs.iobase import iobase_decoder
39
39
  from dkist_processing_common.codecs.iobase import iobase_encoder
40
40
  from dkist_processing_common.codecs.json import json_decoder
41
41
  from dkist_processing_common.codecs.json import json_encoder
42
+ from dkist_processing_common.codecs.quality import QualityDataEncoder
42
43
  from dkist_processing_common.codecs.quality import quality_data_decoder
43
44
  from dkist_processing_common.codecs.quality import quality_data_encoder
44
45
  from dkist_processing_common.codecs.quality import quality_data_hook
45
- from dkist_processing_common.codecs.quality import QualityDataEncoder
46
46
  from dkist_processing_common.codecs.str import str_decoder
47
47
  from dkist_processing_common.codecs.str import str_encoder
48
48
  from dkist_processing_common.models.fits_access import FitsAccessBase
@@ -1,4 +1,5 @@
1
1
  """Tests for the interservice bus mixin for a WorkflowDataTaskBase subclass"""
2
+
2
3
  from typing import Type
3
4
  from uuid import uuid4
4
5
 
@@ -1,4 +1,5 @@
1
1
  """Tests for the interservice bus mixin for a WorkflowDataTaskBase subclass"""
2
+
2
3
  import logging
3
4
  from typing import Dict
4
5
  from typing import Type
@@ -7,8 +7,7 @@ from dkist_processing_common.tasks import WorkflowTaskBase
7
7
  class ProvenanceTask(WorkflowTaskBase):
8
8
  record_provenance = True
9
9
 
10
- def run(self):
11
- ...
10
+ def run(self): ...
12
11
 
13
12
 
14
13
  @pytest.fixture(scope="function")
@@ -10,8 +10,7 @@ from dkist_processing_common.tasks.output_data_base import TransferDataBase
10
10
 
11
11
 
12
12
  class OutputDataBaseTask(OutputDataBase):
13
- def run(self) -> None:
14
- ...
13
+ def run(self) -> None: ...
15
14
 
16
15
 
17
16
  @pytest.fixture
@@ -7,6 +7,7 @@ HOW TO WRITE TESTS FOR NEW PARAMETER SUBCLASSES :
7
7
  4. Add a `pytest.param` with this helper function to `test_parameters` to make sure none of the default stuff broke
8
8
  5. Write a new test that only uses the helper function to test the new functionality.
9
9
  """
10
+
10
11
  import json
11
12
  from datetime import datetime
12
13
  from datetime import timedelta
@@ -27,7 +28,6 @@ from dkist_processing_common.models.tags import Tag
27
28
  from dkist_processing_common.tasks import WorkflowTaskBase
28
29
  from dkist_processing_common.tests.test_input_dataset import input_dataset_frames_part_factory
29
30
 
30
-
31
31
  FITS_FILE = "fits.dat"
32
32
  NP_FILE = "np.npy"
33
33
 
@@ -1,4 +1,5 @@
1
1
  """Tests for the parse L0 input data task"""
2
+
2
3
  import numpy as np
3
4
  import pytest
4
5
  from astropy.io import fits
@@ -1,4 +1,5 @@
1
1
  """Tests for the quality tasks."""
2
+
2
3
  import json
3
4
  from typing import Iterable
4
5
 
@@ -1339,9 +1339,16 @@ def test_build_wavecal_results(quality_task, wavecal_data_json):
1339
1339
  "Best Fit Atlas": [[1001.5, 1002.6, 1003.7, 1004.8], [1.0, 1.0, 0.4, 1.0]],
1340
1340
  }
1341
1341
  assert fit_plot["plot_kwargs"] == {
1342
- "Input Spectrum": {"ls": "-", "alpha": 0.4, "ms": 0, "color": "#1E317A"},
1343
- "Best Fit Observations": {"ls": "-", "lw": 4, "alpha": 0.8, "ms": 0, "color": "#FAA61C"},
1344
- "Best Fit Atlas": {"color": "k", "ls": "-", "ms": 0},
1342
+ "Input Spectrum": {"ls": "-", "alpha": 0.4, "ms": 0, "color": "#1E317A", "zorder": 2.1},
1343
+ "Best Fit Observations": {
1344
+ "ls": "-",
1345
+ "lw": 4,
1346
+ "alpha": 0.8,
1347
+ "ms": 0,
1348
+ "color": "#FAA61C",
1349
+ "zorder": 2.0,
1350
+ },
1351
+ "Best Fit Atlas": {"color": "k", "ls": "-", "ms": 0, "zorder": 2.2},
1345
1352
  }
1346
1353
 
1347
1354
  residuals_plot = plot_list[1]
@@ -1,14 +1,15 @@
1
1
  """
2
2
  Tests for the workflow file system wrapper
3
3
  """
4
+
4
5
  from pathlib import Path
5
6
  from typing import Callable
6
7
  from uuid import uuid4
7
8
 
8
9
  import pytest
9
10
 
10
- from dkist_processing_common._util.scratch import _flatten_list
11
11
  from dkist_processing_common._util.scratch import WorkflowFileSystem
12
+ from dkist_processing_common._util.scratch import _flatten_list
12
13
 
13
14
 
14
15
  @pytest.fixture(
@@ -21,9 +21,9 @@ from dkist_processing_common.parsers.retarder import RetarderNameBud
21
21
  from dkist_processing_common.parsers.single_value_single_key_flower import (
22
22
  SingleValueSingleKeyFlower,
23
23
  )
24
- from dkist_processing_common.parsers.task import parse_header_ip_task_with_gains
25
24
  from dkist_processing_common.parsers.task import PolcalTaskFlower
26
25
  from dkist_processing_common.parsers.task import TaskTypeFlower
26
+ from dkist_processing_common.parsers.task import parse_header_ip_task_with_gains
27
27
  from dkist_processing_common.parsers.time import AverageCadenceBud
28
28
  from dkist_processing_common.parsers.time import ExposureTimeFlower
29
29
  from dkist_processing_common.parsers.time import MaximumCadenceBud
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Tests for the tag cloud manager
3
3
  """
4
+
4
5
  import random
5
6
  from typing import Callable
6
7
  from uuid import uuid4
@@ -7,9 +7,9 @@ from dkist_processing_common._util.scratch import WorkflowFileSystem
7
7
  from dkist_processing_common.codecs.str import str_encoder
8
8
  from dkist_processing_common.models.tags import Tag
9
9
  from dkist_processing_common.tasks.teardown import Teardown
10
+ from dkist_processing_common.tests.mock_metadata_store import RecipeRunResponseMapping
10
11
  from dkist_processing_common.tests.mock_metadata_store import fake_gql_client_factory
11
12
  from dkist_processing_common.tests.mock_metadata_store import make_default_recipe_run_response
12
- from dkist_processing_common.tests.mock_metadata_store import RecipeRunResponseMapping
13
13
 
14
14
 
15
15
  class TeardownTest(Teardown):
@@ -10,11 +10,11 @@ from dkist_processing_common.models.input_dataset import InputDatasetPartDocumen
10
10
  from dkist_processing_common.models.tags import Tag
11
11
  from dkist_processing_common.tasks import WorkflowTaskBase
12
12
  from dkist_processing_common.tasks.transfer_input_data import TransferL0Data
13
+ from dkist_processing_common.tests.mock_metadata_store import InputDatasetRecipeRunResponseMapping
13
14
  from dkist_processing_common.tests.mock_metadata_store import default_calibration_frames_doc
14
15
  from dkist_processing_common.tests.mock_metadata_store import default_observe_frames_doc
15
16
  from dkist_processing_common.tests.mock_metadata_store import default_parameters_doc
16
17
  from dkist_processing_common.tests.mock_metadata_store import fake_gql_client_factory
17
- from dkist_processing_common.tests.mock_metadata_store import InputDatasetRecipeRunResponseMapping
18
18
  from dkist_processing_common.tests.mock_metadata_store import (
19
19
  make_default_input_dataset_recipe_run_response,
20
20
  )
@@ -60,8 +60,7 @@ def create_input_frames(
60
60
 
61
61
 
62
62
  class TransferL0DataTask(TransferL0Data):
63
- def run(self) -> None:
64
- ...
63
+ def run(self) -> None: ...
65
64
 
66
65
 
67
66
  @pytest.fixture
@@ -1,4 +1,5 @@
1
1
  """Tests for the tasks.trial_catalog module."""
2
+
2
3
  from pathlib import Path
3
4
  from string import ascii_uppercase
4
5
  from uuid import uuid4
@@ -10,9 +10,9 @@ from dkist_processing_common.models.graphql import RecipeRunConfiguration
10
10
  from dkist_processing_common.models.tags import Tag
11
11
  from dkist_processing_common.tasks.mixin.globus import GlobusTransferItem
12
12
  from dkist_processing_common.tasks.trial_output_data import TransferTrialData
13
+ from dkist_processing_common.tests.mock_metadata_store import RecipeRunResponseMapping
13
14
  from dkist_processing_common.tests.mock_metadata_store import fake_gql_client_factory
14
15
  from dkist_processing_common.tests.mock_metadata_store import make_default_recipe_run_response
15
- from dkist_processing_common.tests.mock_metadata_store import RecipeRunResponseMapping
16
16
 
17
17
 
18
18
  @pytest.fixture
@@ -190,8 +190,7 @@ def test_dataset_id(workflow_data_task):
190
190
  class ProvenanceTask(WorkflowTaskBase):
191
191
  record_provenance = True
192
192
 
193
- def run(self):
194
- ...
193
+ def run(self): ...
195
194
 
196
195
  # Because I couldn't figure out how to mock the mixin
197
196
  def metadata_store_record_provenance(self, is_task_manual: bool, library_versions: str):
@@ -21,14 +21,14 @@ from dkist_processing_common.models.graphql import RecipeRunProvenanceResponse
21
21
  from dkist_processing_common.models.tags import Tag
22
22
  from dkist_processing_common.models.wavelength import WavelengthRange
23
23
  from dkist_processing_common.tasks.write_l1 import WriteL1Frame
24
- from dkist_processing_common.tests.mock_metadata_store import fake_gql_client_factory
24
+ from dkist_processing_common.tests.mock_metadata_store import TILE_SIZE
25
25
  from dkist_processing_common.tests.mock_metadata_store import InputDatasetRecipeRunResponseMapping
26
+ from dkist_processing_common.tests.mock_metadata_store import RecipeRunResponseMapping
27
+ from dkist_processing_common.tests.mock_metadata_store import fake_gql_client_factory
26
28
  from dkist_processing_common.tests.mock_metadata_store import (
27
29
  make_default_input_dataset_recipe_run_response,
28
30
  )
29
31
  from dkist_processing_common.tests.mock_metadata_store import make_default_recipe_run_response
30
- from dkist_processing_common.tests.mock_metadata_store import RecipeRunResponseMapping
31
- from dkist_processing_common.tests.mock_metadata_store import TILE_SIZE
32
32
 
33
33
 
34
34
  @pytest.fixture
@@ -273,13 +273,11 @@ def write_l1_task_with_empty_waveband(recipe_run_id, tmp_path, request):
273
273
  ],
274
274
  )
275
275
  def write_l1_task_no_data(request, recipe_run_id, tmp_path, complete_common_header):
276
- with (
277
- CompleteWriteL1Frame(
278
- recipe_run_id=recipe_run_id,
279
- workflow_name="workflow_name",
280
- workflow_version="workflow_version",
281
- ) as task
282
- ):
276
+ with CompleteWriteL1Frame(
277
+ recipe_run_id=recipe_run_id,
278
+ workflow_name="workflow_name",
279
+ workflow_version="workflow_version",
280
+ ) as task:
283
281
  task.scratch = WorkflowFileSystem(recipe_run_id=recipe_run_id, scratch_base_path=tmp_path)
284
282
  header = complete_common_header
285
283
  header.pop("AO_LOCK", None)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-common
3
- Version: 11.2.1rc2
3
+ Version: 11.3.0
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
@@ -61,7 +61,7 @@ Requires-Dist: dkist-inventory<2.0,>=1.6.0; extra == "inventory"
61
61
  Provides-Extra: asdf
62
62
  Requires-Dist: dkist-inventory[asdf]<2.0,>=1.6.0; extra == "asdf"
63
63
  Provides-Extra: quality
64
- Requires-Dist: dkist-quality<3.0,>=2.0.0rc1; extra == "quality"
64
+ Requires-Dist: dkist-quality<3.0,>=2.0.0; extra == "quality"
65
65
 
66
66
  dkist-processing-common
67
67
  =======================
@@ -0,0 +1,122 @@
1
+ changelog/.gitempty,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ dkist_processing_common/__init__.py,sha256=GQ9EBnYhkOnt-qODclAoLS_g5YVhurxfg1tjVtI9rDI,320
3
+ dkist_processing_common/config.py,sha256=OCqMjIV9mDvsWX_nvwS_v1W3chAhfA52wQVVXjCQwe8,4248
4
+ dkist_processing_common/manual.py,sha256=bIVVyLsbXMh-g_2L3kGROL-1TtJe0_XviHsp7Br31x8,7023
5
+ dkist_processing_common/_util/__init__.py,sha256=xf6JNpMKQgbhE2Jivymt-WO0WF6PpGt9rl604YpuTWk,92
6
+ dkist_processing_common/_util/constants.py,sha256=0_bWLsvusHD8GrTx4B6V7AieKAaFbN9crcAALaS8x5Q,3245
7
+ dkist_processing_common/_util/graphql.py,sha256=XDphwUGOLseuipjv33sbj4G2wU3__YDoEf9R0lMGc5Q,3421
8
+ dkist_processing_common/_util/scratch.py,sha256=Te8RR4zbvrpbDK5x9Q3McauUxnKlFudJ505CzyPPk9I,10364
9
+ dkist_processing_common/_util/tags.py,sha256=z5zIVA-FVO5nLfB95fqtiLxIXfe-J-vr_d5dbakJons,6221
10
+ dkist_processing_common/codecs/__init__.py,sha256=du1iitvsudSSOMENSywXmXSLOlvIocJsPbvfEcyqFNc,159
11
+ dkist_processing_common/codecs/array.py,sha256=N5rsBlcyA1tJi1Wl7oBSJOsnjzpQXnr6jkLTup-UJGQ,576
12
+ dkist_processing_common/codecs/asdf.py,sha256=gA0yf524jhbr97TNHoDTq4D6ZSMth7mpFOTh_6IcNuA,1047
13
+ dkist_processing_common/codecs/basemodel.py,sha256=bdhpJXICLEPiNyekQKzNmJsmLtAvg94C-yp-uAiFTW0,815
14
+ dkist_processing_common/codecs/bytes.py,sha256=-nRujIfAqwSkxj-5S8cDVgwLd64FJKapHv8fZBshOVo,496
15
+ dkist_processing_common/codecs/fits.py,sha256=P79li5BbeXqbQBzcKZQPYI4iCgfOYWGob7GzNsLjxH8,2586
16
+ dkist_processing_common/codecs/iobase.py,sha256=ESDUDy5eAPdb0nPRCt041iLbJzV3Ch4nrXkRQJgQCXE,978
17
+ dkist_processing_common/codecs/json.py,sha256=Cbg4fQMZKlYG0sI5Q-XRagheQNSR2ruqe7KjgTsW6wM,940
18
+ dkist_processing_common/codecs/path.py,sha256=znnBvIS529AsryJaARPWpKaX7_zhsb_-CLjUNLDfW-o,198
19
+ dkist_processing_common/codecs/quality.py,sha256=FWoqtsdurmlgx2YtbtLo5C0H3G7e3b8CeUsfCoKnvqQ,3090
20
+ dkist_processing_common/codecs/str.py,sha256=Xqt5k8IhLc95KiiNiFwB1JWcVVc6T8AfcLrpovyZL2U,680
21
+ dkist_processing_common/fonts/Lato-Regular.ttf,sha256=1jbkaDIx-THtoiLViOlE0IK_0726AvkovuRhwPGFslE,656568
22
+ dkist_processing_common/fonts/__init__.py,sha256=hBvZRtkoGRPlNDWCK-ZePXdSIlThCcjwBDfYaamVgAw,101
23
+ dkist_processing_common/models/__init__.py,sha256=6LMqemdzVZ87fRrpAsbEnTtWZ02_Gu_oajsUlwGRH_Q,74
24
+ dkist_processing_common/models/constants.py,sha256=PFTyT1Z2I5RnNlwsYospAJyielRj7YJOCrSwvqaOjTE,5442
25
+ dkist_processing_common/models/dkist_location.py,sha256=6Nk0wvv4R8ptlrV7BXon7abq4YLvmTdUmPsDN5G8nWc,971
26
+ dkist_processing_common/models/fits_access.py,sha256=hCQa1c9C_iFg7MjdvjXf38GBwQ3HiIYoKmxecJaOw5w,4114
27
+ dkist_processing_common/models/flower_pot.py,sha256=_J7DwHM8u5kQfdPCpk5pUmALtLrM1L_h-x8JW5BSjXA,5129
28
+ dkist_processing_common/models/fried_parameter.py,sha256=ro_H2Eo3I88lRf1wJjZfTc_XOjhgLt4whIQR_sjAFbM,1609
29
+ dkist_processing_common/models/graphql.py,sha256=oSEcdVsVRytnIDEORLs4b6r3C2Lr7gqEEMHu82zpOOg,5912
30
+ dkist_processing_common/models/input_dataset.py,sha256=19w_ydrxdzjJgpnhFELqUomr7GixURjzLOaX41ipOKk,4173
31
+ dkist_processing_common/models/message.py,sha256=ZEsPQalo5aKTOHfc5I15mNCe1KQcfJ3ivU7XBf8wnkM,1684
32
+ dkist_processing_common/models/message_queue_binding.py,sha256=Y4otwkkePrLRSjlrya8nlEaBvCCUgfGZAWZF9XqCQ9Y,1012
33
+ dkist_processing_common/models/metric_code.py,sha256=WSLF9yqcVzk9L9u8WBhgtpUYUWYsG4ZFWFRFtezdUCM,848
34
+ dkist_processing_common/models/parameters.py,sha256=9An3SxUEBI-oYHjICQ_q-IIScTfpvVeAFH7jLzBzzWI,9649
35
+ dkist_processing_common/models/quality.py,sha256=TmDVbvPbfl5CIIs1ioD5guLUoEOFTfiJESvDjLTLl5s,3981
36
+ dkist_processing_common/models/tags.py,sha256=A3ryBjkIkU8FaFcuMka8UZFc53rVWWyZ4OzOqouVgD4,12059
37
+ dkist_processing_common/models/task_name.py,sha256=kTYjHdB_xqMr3hKWN6fn3c0T-Lj4LzJdIYnNXcXkkQI,566
38
+ dkist_processing_common/models/wavelength.py,sha256=4UhRVoNvCHZitXo5S1oRdewadbmGfmDK6wetMV06POA,967
39
+ dkist_processing_common/parsers/__init__.py,sha256=XJQzHtPb78F6-qXXKXjyztc0x-aHVlgv1C_l4dR88tI,67
40
+ dkist_processing_common/parsers/cs_step.py,sha256=HQIFq1bVnK-0cOhAziMivmNqxtzQ5SWpTjrLXpJDQdg,6462
41
+ dkist_processing_common/parsers/dsps_repeat.py,sha256=mb-PRK2M8ZJyGqEMdtiiem82iOgxwn0dMBw_yY5gSi8,1573
42
+ dkist_processing_common/parsers/experiment_id_bud.py,sha256=6XlkpmGcHEAK-SKOcux0WuFIsMh_DzX5ANXQhfgPp4Q,707
43
+ dkist_processing_common/parsers/id_bud.py,sha256=sebLspD1t4aQ1Ughz9RHjyCAUidF5YLIDOVyv6J0Zmk,1538
44
+ dkist_processing_common/parsers/l0_fits_access.py,sha256=hA6AHDA4sNSJCBFxWnzjKEQ9xXWk5YY95E3Zmtp36wY,922
45
+ dkist_processing_common/parsers/l1_fits_access.py,sha256=3bQgtugs2TihUhm-72_yLEeXxuSnfTsHLcNBDHt9Yms,2596
46
+ dkist_processing_common/parsers/near_bud.py,sha256=mXJedJxAHmQTpEAkzRrwv5SSZnb_7ssq2PEdkhHGVdE,3866
47
+ dkist_processing_common/parsers/proposal_id_bud.py,sha256=lv8k_wFThtDC5w1dXVROTvfQHDXMpmRAjbsjhT_TjhU,678
48
+ dkist_processing_common/parsers/quality.py,sha256=hhCT-bHODOYSp9jvgsiWfYcLYtQCSWgfuy0xZnkYXwo,1141
49
+ dkist_processing_common/parsers/retarder.py,sha256=YZ1VX9fUerYbyhT-RXSdvPCu-u4_oP4Ob5OpXyRTaiY,1442
50
+ dkist_processing_common/parsers/single_value_single_key_flower.py,sha256=PbiYBcePLHjkF7Hc050PO_qhAsisT_EvVL9npz15AGE,1231
51
+ dkist_processing_common/parsers/task.py,sha256=axjAPAU230KTVHaLx6_qidoPEwDB31_mRG3IZZnTUX0,3939
52
+ dkist_processing_common/parsers/time.py,sha256=M6GQPoEuFaU3ZokyKh1tXrc0yDR_cl0FamEK7BaskCM,8371
53
+ dkist_processing_common/parsers/unique_bud.py,sha256=TMj6RqACgRnMG2Pm36pj1Y-KWkImIBo0F_91b6H6mDo,3174
54
+ dkist_processing_common/parsers/wavelength.py,sha256=_XYJZqxw-sbzVi2NQyG_aqcQ5XOH1uBhckNIPMm0fEg,547
55
+ dkist_processing_common/tasks/__init__.py,sha256=l23ctjNsKJbHbbqaZBMeOPaOtw0hmITEljI_JJ-CVsU,627
56
+ dkist_processing_common/tasks/assemble_movie.py,sha256=m8O1psUBn8bRPj0AwMd1K5wNlcAtlxBQb1PZeSKne6o,12772
57
+ dkist_processing_common/tasks/base.py,sha256=mebbG-VZp9Iu-J7skE9S5qMCUENZy48ySJkaGh8weC0,13144
58
+ dkist_processing_common/tasks/l1_output_data.py,sha256=jjJao1YO88sgsKfl6Lg11yurlM1bcljOZpK1-ykFWw4,10576
59
+ dkist_processing_common/tasks/output_data_base.py,sha256=ZWdxkXKzrQdc1PN97b8cEcFBckraOJkwrBoMOPWii8o,3683
60
+ dkist_processing_common/tasks/parse_l0_input_data.py,sha256=B7ZYzT2jFPlzaSq92LgisZQIjqeFD123qTa8KeyLKSQ,7998
61
+ dkist_processing_common/tasks/quality_metrics.py,sha256=5rLCkGyE6F76bJp71y2lmKbol5FJ_ynbZbkhX8IBPKA,12489
62
+ dkist_processing_common/tasks/teardown.py,sha256=eHyOJbtu8w51wFSTVFSt8iVVOkSODqHLvrcP6W-Szcg,2355
63
+ dkist_processing_common/tasks/transfer_input_data.py,sha256=hjJzgwCVqltF87IMa2Oi9hmKyT0mFqwvPCI8xTV2B44,5787
64
+ dkist_processing_common/tasks/trial_catalog.py,sha256=rGIlckrWYqx7Div5dOTQr_hcKSWQfR_i5DyzoHVhE9A,8749
65
+ dkist_processing_common/tasks/trial_output_data.py,sha256=5WwFuShXNIFO7fSh6nLAkpHS8NbZeW7AYsjRxzqRhNI,6835
66
+ dkist_processing_common/tasks/write_l1.py,sha256=rki0og7B10LooAFHABMz64NtwCo54CSwy3qOcOsve_g,23203
67
+ dkist_processing_common/tasks/mixin/__init__.py,sha256=-g-DQbU7m1bclJYuFe3Yh757V-35GIDTbstardKQ7nU,68
68
+ dkist_processing_common/tasks/mixin/globus.py,sha256=9ey_UCacqCfmxYZSgm6VDefdlm7dkNloC8G5DeVub8s,6592
69
+ dkist_processing_common/tasks/mixin/interservice_bus.py,sha256=M6R922l7gJSmmU_vswUXxy-c5DWNrIRjQu9H9CSgGfU,1081
70
+ dkist_processing_common/tasks/mixin/metadata_store.py,sha256=QeZV3BITUzCErUt7mbkJME5SQWi3UPp_tw3zJ2PWy-M,11715
71
+ dkist_processing_common/tasks/mixin/object_store.py,sha256=zGAyRR1O6EN52p7sFQtDWxa7ASx3HJSsO4d4tJr-beE,3237
72
+ dkist_processing_common/tasks/mixin/quality/__init__.py,sha256=GOI_PBUxTmYp5IIuYFbwpA5Vx0jUwpdBBYYrnZMTh0E,384
73
+ dkist_processing_common/tasks/mixin/quality/_base.py,sha256=qt9TZZ140skFWFmabrjlGdm60OLWEfx_xZAaohr6dLM,8492
74
+ dkist_processing_common/tasks/mixin/quality/_metrics.py,sha256=k0hlthVbW7Jso9q_P0-hWGfp190kQO_oUQyGBRvxgqo,60626
75
+ dkist_processing_common/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ dkist_processing_common/tests/conftest.py,sha256=Tm-Yq956EAafpDtu1d7JjdVY0Unp9e4z9ak-yf4wnH4,22320
77
+ dkist_processing_common/tests/mock_metadata_store.py,sha256=fbCvSk1-s0ojN6l538RWodPW7dx6k4eXqipemnHKO0Y,8248
78
+ dkist_processing_common/tests/test_assemble_movie.py,sha256=RI7Kitd-XNmba-o5pUgqURocXPFi15T-mEvWaSbsN6U,4125
79
+ dkist_processing_common/tests/test_assemble_quality.py,sha256=-F22jMY6mPy65VZ1TZY2r1vsxMXOPmZHArGx70OD3BA,17832
80
+ dkist_processing_common/tests/test_base.py,sha256=EQsIkeWoOtjk0yxr_oPkhW3Uc0p8cMsknSMwKgrJI9E,7078
81
+ dkist_processing_common/tests/test_codecs.py,sha256=XuvG1sG8DECMPmxtDEi98TxlvTSAy0vrtUUFLrwnHlA,22173
82
+ dkist_processing_common/tests/test_constants.py,sha256=Kc9k5TdYy5QkRRlGav6kfI2dy5HHKqtpf9qOuaAfDZU,5903
83
+ dkist_processing_common/tests/test_cs_step.py,sha256=RA0QD3D8eaL3YSOL_gIJ9wkngy14RQ2jbD-05KAziW4,2408
84
+ dkist_processing_common/tests/test_dkist_location.py,sha256=-_OoSw4SZDLFyIuOltHvM6PQjxm5hTiJQsiTGZ8Sadc,456
85
+ dkist_processing_common/tests/test_fits_access.py,sha256=tyUPNbUqoTPhQgzua_doWP9l9ee4ir_LLV-I9rHktcs,11393
86
+ dkist_processing_common/tests/test_flower_pot.py,sha256=X9_UI3maa3ZQncV3jYHgovWnawDsdEkEB5vw6EAB96o,3151
87
+ dkist_processing_common/tests/test_fried_parameter.py,sha256=iXtlQIifZ6cDOkEi-YDgP3oAlss2loq08Uohgvy1byQ,1295
88
+ dkist_processing_common/tests/test_input_dataset.py,sha256=pQ01rWAkQ2XQojyHWzAqeOdrMXshNcgEVL5I_9bBTdo,9610
89
+ dkist_processing_common/tests/test_interservice_bus.py,sha256=QrBeZ8dh497h6nxA8-aVUIGDcSj8y9DIXIk9I_HkXr0,3001
90
+ dkist_processing_common/tests/test_interservice_bus_mixin.py,sha256=IptJkW7Qeu2Y742NKXEgkok2VdS600keLgCD3Y9iw3A,4131
91
+ dkist_processing_common/tests/test_manual_processing.py,sha256=iHF7yQPlar9niYAGXtFv28Gw3Undlds38yMfszk4ccY,1037
92
+ dkist_processing_common/tests/test_output_data_base.py,sha256=D8b1XKvbE3C5cGOiHq58yJ2pzQL3iL0wLZy_AkDdB9Y,3085
93
+ dkist_processing_common/tests/test_parameters.py,sha256=CUEUIGBPMCUXPll0G0UxFDbMXi8lmnjRwXBarGX1PAQ,14033
94
+ dkist_processing_common/tests/test_parse_l0_input_data.py,sha256=ufhn-wXk9gAag6a99f7bXUvqFdlgOKmT2Dm5qlCU9Ag,10630
95
+ dkist_processing_common/tests/test_publish_catalog_messages.py,sha256=l6Wga1s2wNBIf4wGZ78ZIO_rtqjdidmtvlN9nMnQUAs,3222
96
+ dkist_processing_common/tests/test_quality.py,sha256=IPz7liXcmoqWIsY78oX07Ui0nWHxoUH2FbKGEmMle7E,10258
97
+ dkist_processing_common/tests/test_quality_mixin.py,sha256=qanm3SXEiLb0OJDawbh8ixVAG9uRglFMzwxTeYxkDsM,55369
98
+ dkist_processing_common/tests/test_scratch.py,sha256=WO8C1VJlkcC5IzST9Hj08CyyrINwYcN8pyteD9x38xs,16482
99
+ dkist_processing_common/tests/test_stems.py,sha256=4BWY5lMfCdDOiSvK7EobmhX6gHJupO6B1ci6dqyyWcQ,32649
100
+ dkist_processing_common/tests/test_submit_dataset_metadata.py,sha256=LHEyjoIxJHXXssqKkr8Qn1NzzHD1FLJiD3lP8yaLiXU,3764
101
+ dkist_processing_common/tests/test_tags.py,sha256=w5gmVfp3Ck92KNV80lJQRMz0OYgTYzWtwVUFWv1b5i8,5024
102
+ dkist_processing_common/tests/test_task_name.py,sha256=kqFr59XX2K87xzfTlClzDV4-Je1dx72LvdaJ22UE8UU,1233
103
+ dkist_processing_common/tests/test_task_parsing.py,sha256=QXt1X6DTO3_liBD2c-t84DToLeEn7B3J-eteIyN4HEM,4027
104
+ dkist_processing_common/tests/test_teardown.py,sha256=DaliHSGsiQBZaFkf5wb3XBo6rHNPmx2bmQtVymYeBN4,5601
105
+ dkist_processing_common/tests/test_transfer_input_data.py,sha256=eyAAWXpTHQ8aew87-MncWpYBn4DAZrTSOL3LvlQfR5Q,12611
106
+ dkist_processing_common/tests/test_transfer_l1_output_data.py,sha256=PVGDJBEUk4kAeu8ivrhlCE7yd29R18t9kZLFx-mpBwY,2063
107
+ dkist_processing_common/tests/test_trial_catalog.py,sha256=Efq4yP1_0jccCFTi0_inyf4utC-oJVpGoAZ13fBP7I0,6778
108
+ dkist_processing_common/tests/test_trial_output_data.py,sha256=YwmSfhNsSG-kdnvNlq7Ku0PNi_onTvU6uxn_nLiAKZw,12008
109
+ dkist_processing_common/tests/test_workflow_task_base.py,sha256=LTVusltNrsGUOvw9G323am4CXebgE4tJhP6gZCcS0CQ,10457
110
+ dkist_processing_common/tests/test_write_l1.py,sha256=alN-lozKEm6vKNdhtvzjnuPqv-NjHyUg16Op7SkMH-c,27964
111
+ docs/Makefile,sha256=qnlVz6PuBqE39NfHWuUnHhNEA-EFgT2-WJNNNy9ttfk,4598
112
+ docs/changelog.rst,sha256=S2jPASsWlQxSlAPqdvNrYvhk9k3FcFWNXFNDYXBSjl4,120
113
+ docs/conf.py,sha256=7W2iHKs3J5RhAz0JZafC_UnfMvcpZN7j4LLUmQtk2D0,1891
114
+ docs/index.rst,sha256=MiOh8Sdi2q5Gej4Cfuw-HXbp0zrJotakprq-GDvhlrQ,116
115
+ docs/landing_page.rst,sha256=aPAuXFhBx73lEZ59B6E6JXxkK0LlxzD0n-HXqHrfumQ,746
116
+ docs/make.bat,sha256=mBAhtURwhQ7yc95pqwJzlhqBSvRknr1aqZ5s8NKvdKs,4513
117
+ docs/requirements.txt,sha256=Kbl_X4c7RQZw035YTeNB63We6I7pvXFU4T0Uflp2yDY,29
118
+ licenses/LICENSE.rst,sha256=piZaQplkzOMmH1NXg6QIdo9wwo9pPCoHkvm2-DmH76E,1462
119
+ dkist_processing_common-11.3.0.dist-info/METADATA,sha256=cpuRYCEX3j9oCb-nl7XhcKuX2iYJmN0_DvNUMD_KOv4,7201
120
+ dkist_processing_common-11.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
121
+ dkist_processing_common-11.3.0.dist-info/top_level.txt,sha256=LJhd1W-Vn90K8HnQDIE4r52YDpUjjMWDnllAWHBByW0,48
122
+ dkist_processing_common-11.3.0.dist-info/RECORD,,
docs/conf.py CHANGED
@@ -1,4 +1,5 @@
1
1
  """Configuration file for the Sphinx documentation builder."""
2
+
2
3
  # -- stdlib imports ------------------------------------------------------------
3
4
  import importlib
4
5
  import sys
changelog/262.misc.rst DELETED
@@ -1 +0,0 @@
1
- Update database name for vertical multi-pane plot metric data. It's now called "multi_plot_data".