dkist-processing-core 5.1.1__tar.gz → 5.2.0__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 (52) hide show
  1. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/.pre-commit-config.yaml +6 -6
  2. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/CHANGELOG.rst +10 -0
  3. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/PKG-INFO +4 -4
  4. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/bitbucket-pipelines.yml +1 -1
  5. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/__init__.py +1 -0
  6. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/build_utils.py +2 -2
  7. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/config.py +1 -0
  8. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/failure_callback.py +1 -0
  9. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/node.py +3 -2
  10. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/resource_queue.py +1 -0
  11. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/conftest.py +1 -0
  12. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/invalid_workflow_for_docker_multi_category/workflow.py +2 -2
  13. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/task_example.py +1 -0
  14. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/test_build_utils.py +1 -0
  15. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/test_export.py +1 -0
  16. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/test_failure_callback.py +2 -1
  17. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/test_node.py +1 -0
  18. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/test_task.py +1 -0
  19. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/test_workflow.py +1 -0
  20. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/valid_workflow_package/workflow.py +1 -0
  21. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/zero_node_workflow_package/workflow.py +1 -0
  22. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/workflow.py +1 -0
  23. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core.egg-info/PKG-INFO +4 -4
  24. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core.egg-info/requires.txt +1 -1
  25. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/docs/conf.py +1 -0
  26. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/pyproject.toml +12 -3
  27. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/.gitignore +0 -0
  28. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/.readthedocs.yml +0 -0
  29. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/.snyk +0 -0
  30. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/README.rst +0 -0
  31. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/changelog/.gitempty +0 -0
  32. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/task.py +1 -1
  33. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/__init__.py +0 -0
  34. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/invalid_workflow_cyclic/__init__.py +0 -0
  35. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/invalid_workflow_cyclic/workflow.py +1 -1
  36. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/invalid_workflow_for_docker_multi_category/__init__.py +0 -0
  37. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/valid_workflow_package/__init__.py +0 -0
  38. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core/tests/zero_node_workflow_package/__init__.py +0 -0
  39. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core.egg-info/SOURCES.txt +0 -0
  40. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core.egg-info/dependency_links.txt +0 -0
  41. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/dkist_processing_core.egg-info/top_level.txt +0 -0
  42. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/docs/Makefile +0 -0
  43. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/docs/auto-proc-concept-model.png +0 -0
  44. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/docs/auto_proc_brick.png +0 -0
  45. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/docs/automated-processing-deployed.png +0 -0
  46. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/docs/changelog.rst +0 -0
  47. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/docs/index.rst +0 -0
  48. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/docs/landing_page.rst +0 -0
  49. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/docs/make.bat +0 -0
  50. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/docs/requirements.txt +0 -0
  51. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/licenses/LICENSE.rst +0 -0
  52. {dkist_processing_core-5.1.1 → dkist_processing_core-5.2.0}/setup.cfg +0 -0
@@ -2,7 +2,7 @@
2
2
  # See https://pre-commit.com/hooks.html for more hooks
3
3
  repos:
4
4
  - repo: https://github.com/pre-commit/pre-commit-hooks
5
- rev: v2.4.0
5
+ rev: v5.0.0
6
6
  hooks:
7
7
  - id: trailing-whitespace
8
8
  - id: end-of-file-fixer
@@ -10,14 +10,14 @@ repos:
10
10
  - id: check-added-large-files
11
11
  - id: debug-statements
12
12
  - repo: https://github.com/psf/black
13
- rev: 22.3.0
13
+ rev: 25.1.0
14
14
  hooks:
15
15
  - id: black
16
- args: [ "-l 100" ]
17
- - repo: https://github.com/asottile/reorder_python_imports
18
- rev: v2.3.5
16
+ - repo: https://github.com/pycqa/isort
17
+ rev: 5.12.0
19
18
  hooks:
20
- - id: reorder-python-imports
19
+ - id: isort
20
+ name: isort (python)
21
21
  - repo: https://github.com/pycqa/pydocstyle
22
22
  rev: 6.1.1 # pick a git hash / tag to point to
23
23
  hooks:
@@ -1,3 +1,13 @@
1
+ v5.2.0 (2025-09-08)
2
+ ===================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Update pre-commit hook versions and replace python-reorder-imports with isort. (`#54 <https://bitbucket.org/dkistdc/dkist-processing-core/pull-requests/54>`__)
8
+ - Update dependencies to airflow 2.11.0 and limit to python >=3.12. (`#55 <https://bitbucket.org/dkistdc/dkist-processing-core/pull-requests/55>`__)
9
+
10
+
1
11
  v5.1.1 (2025-05-22)
2
12
  ===================
3
13
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-core
3
- Version: 5.1.1
3
+ Version: 5.2.0
4
4
  Summary: Abstraction layer used by the DKIST science data processing pipelines with Apache Airflow
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -10,10 +10,10 @@ Project-URL: Documentation, https://docs.dkist.nso.edu/projects/core
10
10
  Project-URL: Help, https://nso.atlassian.net/servicedesk/customer/portal/5
11
11
  Classifier: Programming Language :: Python
12
12
  Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.11
14
- Requires-Python: >=3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Requires-Python: >=3.12
15
15
  Description-Content-Type: text/x-rst
16
- Requires-Dist: apache-airflow[celery,postgres]==2.10.5
16
+ Requires-Dist: apache-airflow[celery,postgres]==2.11.0
17
17
  Requires-Dist: elastic-apm<7.0.0
18
18
  Requires-Dist: requests>=2.23
19
19
  Requires-Dist: talus<2.0,>=1.1.0
@@ -1,4 +1,4 @@
1
- image: python:3.11
1
+ image: python:3.12
2
2
  definitions:
3
3
  services:
4
4
  broker:
@@ -1,4 +1,5 @@
1
1
  """Package-level setup information."""
2
+
2
3
  from importlib.metadata import PackageNotFoundError
3
4
  from importlib.metadata import version
4
5
 
@@ -1,4 +1,5 @@
1
1
  """Utilities for the build pipeline."""
2
+
2
3
  import importlib
3
4
  from pathlib import Path
4
5
  from shutil import rmtree
@@ -6,7 +7,6 @@ from types import ModuleType
6
7
 
7
8
  from dkist_processing_core import Workflow
8
9
 
9
-
10
10
  __all__ = ["validate_workflows", "export_dags", "export_notebook_dockerfile", "export_notebooks"]
11
11
 
12
12
 
@@ -109,7 +109,7 @@ class NotebookDockerfile:
109
109
  @property
110
110
  def preamble(self) -> list[str]:
111
111
  """Dockerfile preamble lines."""
112
- return ["FROM python:3.11", "ENV LANG=C.UTF-8"]
112
+ return ["FROM python:3.12", "ENV LANG=C.UTF-8"]
113
113
 
114
114
  @property
115
115
  def setup(self) -> list[str]:
@@ -1,4 +1,5 @@
1
1
  """Environment controlled configurations for dkist_processing_core."""
2
+
2
3
  from dkist_service_configuration import MeshServiceConfigurationBase
3
4
  from dkist_service_configuration.settings import MeshService
4
5
  from pydantic import Field
@@ -1,4 +1,5 @@
1
1
  """Define the failure callback functionality."""
2
+
2
3
  import logging
3
4
  from contextlib import contextmanager
4
5
  from typing import Callable
@@ -1,4 +1,5 @@
1
1
  """Abstraction layer to construct a workflow node using and airflow operator."""
2
+
2
3
  from collections.abc import Iterable
3
4
  from typing import Type
4
5
 
@@ -7,7 +8,6 @@ from airflow.operators.bash import BashOperator
7
8
  from dkist_processing_core.resource_queue import ResourceQueue
8
9
  from dkist_processing_core.task import TaskBase
9
10
 
10
-
11
11
  task_type_hint = Type[TaskBase]
12
12
  upstreams_type_hint = list[task_type_hint] | task_type_hint | None
13
13
 
@@ -50,9 +50,10 @@ class Node:
50
50
  def operator(self) -> BashOperator:
51
51
  """Native engine node."""
52
52
  from datetime import timedelta
53
- from dkist_processing_core.failure_callback import chat_ops_notification
54
53
  from functools import partial
55
54
 
55
+ from dkist_processing_core.failure_callback import chat_ops_notification
56
+
56
57
  return eval(self.operator_definition)
57
58
 
58
59
  @property
@@ -1,4 +1,5 @@
1
1
  """Resource queue names for Workflow Node specification which specify different resource needs."""
2
+
2
3
  from enum import StrEnum
3
4
 
4
5
 
@@ -1,4 +1,5 @@
1
1
  """Global test fixtures."""
2
+
2
3
  from contextlib import contextmanager
3
4
  from pathlib import Path
4
5
  from shutil import rmtree
@@ -1,8 +1,8 @@
1
- """Example invalid workflow for """
1
+ """Example invalid workflow for"""
2
+
2
3
  from dkist_processing_core import Workflow
3
4
  from dkist_processing_core.tests.task_example import Task
4
5
 
5
-
6
6
  category_a = Workflow(
7
7
  input_data="test-data",
8
8
  output_data="invalid",
@@ -1,4 +1,5 @@
1
1
  """Example task subclass used in the tests."""
2
+
2
3
  from dkist_processing_core import TaskBase
3
4
 
4
5
 
@@ -1,4 +1,5 @@
1
1
  """Tests for the build utils."""
2
+
2
3
  import os
3
4
  import subprocess
4
5
  from pathlib import Path
@@ -1,4 +1,5 @@
1
1
  """Test minimal dependency dag export (used for scheduler deployments)."""
2
+
2
3
  import nbformat
3
4
  import pytest
4
5
  from nbconvert import PythonExporter
@@ -1,12 +1,13 @@
1
1
  """Test for the failure callback function."""
2
+
2
3
  import pytest
3
4
  from talus import DurableProducer
4
5
 
6
+ from dkist_processing_core.failure_callback import RecipeRunFailureMessage
5
7
  from dkist_processing_core.failure_callback import chat_ops_notification
6
8
  from dkist_processing_core.failure_callback import parse_dag_run_id_from_context
7
9
  from dkist_processing_core.failure_callback import parse_log_url_from_context
8
10
  from dkist_processing_core.failure_callback import recipe_run_failure_message_producer_factory
9
- from dkist_processing_core.failure_callback import RecipeRunFailureMessage
10
11
 
11
12
 
12
13
  @pytest.fixture()
@@ -1,4 +1,5 @@
1
1
  """Tests of the node.py module."""
2
+
2
3
  import subprocess
3
4
  from subprocess import CalledProcessError
4
5
  from typing import Callable
@@ -1,4 +1,5 @@
1
1
  """Tests for the TaskBase functionality."""
2
+
2
3
  import pytest
3
4
 
4
5
  from dkist_processing_core.config import core_configurations
@@ -1,4 +1,5 @@
1
1
  """Tests for the Workflow abstraction."""
2
+
2
3
  import json
3
4
  from typing import Callable
4
5
 
@@ -1,4 +1,5 @@
1
1
  """Example valid workflow."""
2
+
2
3
  from dkist_processing_core import Workflow
3
4
  from dkist_processing_core.tests.task_example import Task
4
5
  from dkist_processing_core.tests.task_example import Task2
@@ -1,4 +1,5 @@
1
1
  """Workflow containing zero nodes."""
2
+
2
3
  from dkist_processing_core import Workflow
3
4
 
4
5
  zero_node_workflow = Workflow(
@@ -1,4 +1,5 @@
1
1
  """Abstraction layer to construct a workflow as an airflow DAG."""
2
+
2
3
  import json
3
4
  import string
4
5
  from graphlib import TopologicalSorter
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dkist-processing-core
3
- Version: 5.1.1
3
+ Version: 5.2.0
4
4
  Summary: Abstraction layer used by the DKIST science data processing pipelines with Apache Airflow
5
5
  Author-email: NSO / AURA <dkistdc@nso.edu>
6
6
  License: BSD-3-Clause
@@ -10,10 +10,10 @@ Project-URL: Documentation, https://docs.dkist.nso.edu/projects/core
10
10
  Project-URL: Help, https://nso.atlassian.net/servicedesk/customer/portal/5
11
11
  Classifier: Programming Language :: Python
12
12
  Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.11
14
- Requires-Python: >=3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Requires-Python: >=3.12
15
15
  Description-Content-Type: text/x-rst
16
- Requires-Dist: apache-airflow[celery,postgres]==2.10.5
16
+ Requires-Dist: apache-airflow[celery,postgres]==2.11.0
17
17
  Requires-Dist: elastic-apm<7.0.0
18
18
  Requires-Dist: requests>=2.23
19
19
  Requires-Dist: talus<2.0,>=1.1.0
@@ -1,4 +1,4 @@
1
- apache-airflow[celery,postgres]==2.10.5
1
+ apache-airflow[celery,postgres]==2.11.0
2
2
  elastic-apm<7.0.0
3
3
  requests>=2.23
4
4
  talus<2.0,>=1.1.0
@@ -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
@@ -10,7 +10,7 @@ find = {}
10
10
  [project]
11
11
  dynamic = ["version"]
12
12
  name = "dkist-processing-core"
13
- requires-python = ">=3.11"
13
+ requires-python = ">=3.12"
14
14
  description = "Abstraction layer used by the DKIST science data processing pipelines with Apache Airflow"
15
15
  readme = "README.rst"
16
16
  authors = [ {name = "NSO / AURA", email = "dkistdc@nso.edu"} ]
@@ -18,10 +18,10 @@ license = {text = "BSD-3-Clause"}
18
18
  classifiers = [
19
19
  "Programming Language :: Python",
20
20
  "Programming Language :: Python :: 3",
21
- "Programming Language :: Python :: 3.11",
21
+ "Programming Language :: Python :: 3.12",
22
22
  ]
23
23
  dependencies = [
24
- "apache-airflow[postgres, celery] == 2.10.5",
24
+ "apache-airflow[postgres, celery] == 2.11.0",
25
25
  "elastic-apm < 7.0.0",
26
26
  "requests >= 2.23",
27
27
  "talus >= 1.1.0, <2.0",
@@ -107,3 +107,12 @@ show_missing = true
107
107
  directory = "doc"
108
108
  name = "Documentation"
109
109
  showcontent = true
110
+
111
+ [tool.black]
112
+ line-length = 100
113
+
114
+ [tool.isort]
115
+ profile = "black"
116
+ force_single_line = true
117
+ combine_as_imports = false
118
+ line_length = 100
@@ -4,6 +4,7 @@ Base class that is used to wrap the various DAG task methods.
4
4
  It provides support for user-defined setup and cleanup, task monitoring using Elastic APM,
5
5
  standardized logging and exception handling.
6
6
  """
7
+
7
8
  import logging
8
9
  from abc import ABC
9
10
  from abc import abstractmethod
@@ -13,7 +14,6 @@ import elasticapm
13
14
 
14
15
  from dkist_processing_core.config import core_configurations
15
16
 
16
-
17
17
  __all__ = ["TaskBase"]
18
18
 
19
19
  logger = logging.getLogger(__name__)
@@ -1,10 +1,10 @@
1
1
  """Example invalid workflow."""
2
+
2
3
  from dkist_processing_core import Workflow
3
4
  from dkist_processing_core.tests.task_example import Task
4
5
  from dkist_processing_core.tests.task_example import Task2
5
6
  from dkist_processing_core.tests.task_example import Task3
6
7
 
7
-
8
8
  # |<--------------------|
9
9
  # |-->Task -> Task2 --> |
10
10