dkist-processing-ops 1.6.53__tar.gz → 1.8.4rc1__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.

Potentially problematic release.


This version of dkist-processing-ops might be problematic. Click here for more details.

Files changed (33) hide show
  1. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/.pre-commit-config.yaml +6 -6
  2. dkist_processing_ops-1.8.4rc1/PKG-INFO +396 -0
  3. dkist_processing_ops-1.8.4rc1/README.rst +137 -0
  4. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/bitbucket-pipelines.yml +1 -1
  5. dkist_processing_ops-1.8.4rc1/dkist_processing_ops/_version.py +34 -0
  6. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops/dags/scale.py +1 -0
  7. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops/tasks/__init__.py +1 -0
  8. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops/tests/test_workflows.py +1 -0
  9. dkist_processing_ops-1.8.4rc1/dkist_processing_ops.egg-info/PKG-INFO +396 -0
  10. dkist_processing_ops-1.8.4rc1/dkist_processing_ops.egg-info/requires.txt +246 -0
  11. dkist_processing_ops-1.8.4rc1/pyproject.toml +317 -0
  12. dkist_processing_ops-1.6.53/PKG-INFO +0 -301
  13. dkist_processing_ops-1.6.53/README.rst +0 -55
  14. dkist_processing_ops-1.6.53/dkist_processing_ops/_version.py +0 -21
  15. dkist_processing_ops-1.6.53/dkist_processing_ops.egg-info/PKG-INFO +0 -301
  16. dkist_processing_ops-1.6.53/dkist_processing_ops.egg-info/requires.txt +0 -233
  17. dkist_processing_ops-1.6.53/pyproject.toml +0 -295
  18. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/.gitignore +0 -0
  19. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/.snyk +0 -0
  20. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/LICENSE.rst +0 -0
  21. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/MANIFEST.in +0 -0
  22. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops/__init__.py +0 -0
  23. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops/tasks/read_memory_leak.py +0 -0
  24. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops/tasks/wait.py +1 -1
  25. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops/tests/__init__.py +0 -0
  26. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops/workflows/__init__.py +0 -0
  27. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops/workflows/memory_leak.py +0 -0
  28. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops/workflows/smoke.py +1 -1
  29. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops.egg-info/SOURCES.txt +0 -0
  30. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops.egg-info/dependency_links.txt +0 -0
  31. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops.egg-info/not-zip-safe +0 -0
  32. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/dkist_processing_ops.egg-info/top_level.txt +0 -0
  33. {dkist_processing_ops-1.6.53 → dkist_processing_ops-1.8.4rc1}/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,11 +10,11 @@ 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)
@@ -0,0 +1,396 @@
1
+ Metadata-Version: 2.4
2
+ Name: dkist-processing-ops
3
+ Version: 1.8.4rc1
4
+ Summary: Automated Processing smoke test and operations workflows
5
+ Author-email: NSO / AURA <dkistdc@nso.edu>
6
+ License: BSD 3-Clause
7
+ Project-URL: repository, https://bitbucket.org/dkistdc/dkist-processing-ops
8
+ Classifier: License :: OSI Approved :: BSD License
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Requires-Python: >=3.12
12
+ Description-Content-Type: text/x-rst
13
+ License-File: LICENSE.rst
14
+ Requires-Dist: dkist-processing-common==11.9.0rc1
15
+ Requires-Dist: dkist-service-configuration==4.1.13
16
+ Provides-Extra: test
17
+ Requires-Dist: pytest; extra == "test"
18
+ Requires-Dist: pytest-cov; extra == "test"
19
+ Requires-Dist: pytest-xdist; extra == "test"
20
+ Provides-Extra: frozen
21
+ Requires-Dist: ConfigUpdater==3.2; extra == "frozen"
22
+ Requires-Dist: Deprecated==1.3.1; extra == "frozen"
23
+ Requires-Dist: Flask==2.2.5; extra == "frozen"
24
+ Requires-Dist: Flask-AppBuilder==4.5.3; extra == "frozen"
25
+ Requires-Dist: Flask-Babel==2.0.0; extra == "frozen"
26
+ Requires-Dist: Flask-Caching==2.3.1; extra == "frozen"
27
+ Requires-Dist: Flask-JWT-Extended==4.7.1; extra == "frozen"
28
+ Requires-Dist: Flask-Limiter==3.12; extra == "frozen"
29
+ Requires-Dist: Flask-Login==0.6.3; extra == "frozen"
30
+ Requires-Dist: Flask-SQLAlchemy==2.5.1; extra == "frozen"
31
+ Requires-Dist: Flask-Session==0.5.0; extra == "frozen"
32
+ Requires-Dist: Flask-WTF==1.2.2; extra == "frozen"
33
+ Requires-Dist: ImageIO==2.37.2; extra == "frozen"
34
+ Requires-Dist: Jinja2==3.1.6; extra == "frozen"
35
+ Requires-Dist: Mako==1.3.10; extra == "frozen"
36
+ Requires-Dist: MarkupSafe==3.0.3; extra == "frozen"
37
+ Requires-Dist: PyJWT==2.10.1; extra == "frozen"
38
+ Requires-Dist: PyYAML==6.0.3; extra == "frozen"
39
+ Requires-Dist: Pygments==2.19.2; extra == "frozen"
40
+ Requires-Dist: SQLAlchemy==1.4.54; extra == "frozen"
41
+ Requires-Dist: SQLAlchemy-JSONField==1.0.2; extra == "frozen"
42
+ Requires-Dist: SQLAlchemy-Utils==0.42.0; extra == "frozen"
43
+ Requires-Dist: WTForms==3.2.1; extra == "frozen"
44
+ Requires-Dist: Werkzeug==2.2.3; extra == "frozen"
45
+ Requires-Dist: aioftp==0.27.2; extra == "frozen"
46
+ Requires-Dist: aiohappyeyeballs==2.6.1; extra == "frozen"
47
+ Requires-Dist: aiohttp==3.13.2; extra == "frozen"
48
+ Requires-Dist: aiosignal==1.4.0; extra == "frozen"
49
+ Requires-Dist: aiosmtplib==5.0.0; extra == "frozen"
50
+ Requires-Dist: alembic==1.17.2; extra == "frozen"
51
+ Requires-Dist: amqp==5.3.1; extra == "frozen"
52
+ Requires-Dist: annotated-types==0.7.0; extra == "frozen"
53
+ Requires-Dist: anyio==4.12.0; extra == "frozen"
54
+ Requires-Dist: apache-airflow==2.11.0; extra == "frozen"
55
+ Requires-Dist: apache-airflow-providers-celery==3.14.0; extra == "frozen"
56
+ Requires-Dist: apache-airflow-providers-common-compat==1.10.0; extra == "frozen"
57
+ Requires-Dist: apache-airflow-providers-common-io==1.7.0; extra == "frozen"
58
+ Requires-Dist: apache-airflow-providers-common-sql==1.30.0; extra == "frozen"
59
+ Requires-Dist: apache-airflow-providers-fab==1.5.3; extra == "frozen"
60
+ Requires-Dist: apache-airflow-providers-ftp==3.14.0; extra == "frozen"
61
+ Requires-Dist: apache-airflow-providers-http==5.6.0; extra == "frozen"
62
+ Requires-Dist: apache-airflow-providers-imap==3.10.0; extra == "frozen"
63
+ Requires-Dist: apache-airflow-providers-postgres==6.5.0; extra == "frozen"
64
+ Requires-Dist: apache-airflow-providers-smtp==2.4.0; extra == "frozen"
65
+ Requires-Dist: apache-airflow-providers-sqlite==4.2.0; extra == "frozen"
66
+ Requires-Dist: apispec==6.9.0; extra == "frozen"
67
+ Requires-Dist: argcomplete==3.6.3; extra == "frozen"
68
+ Requires-Dist: asdf==3.5.0; extra == "frozen"
69
+ Requires-Dist: asdf_standard==1.4.0; extra == "frozen"
70
+ Requires-Dist: asdf_transform_schemas==0.6.0; extra == "frozen"
71
+ Requires-Dist: asgiref==3.11.0; extra == "frozen"
72
+ Requires-Dist: asteval==1.0.7; extra == "frozen"
73
+ Requires-Dist: astropy==7.2.0; extra == "frozen"
74
+ Requires-Dist: astropy-iers-data==0.2025.12.1.0.45.12; extra == "frozen"
75
+ Requires-Dist: asyncpg==0.31.0; extra == "frozen"
76
+ Requires-Dist: attrs==25.4.0; extra == "frozen"
77
+ Requires-Dist: babel==2.17.0; extra == "frozen"
78
+ Requires-Dist: billiard==4.2.4; extra == "frozen"
79
+ Requires-Dist: blinker==1.9.0; extra == "frozen"
80
+ Requires-Dist: boto3==1.42.2; extra == "frozen"
81
+ Requires-Dist: botocore==1.42.2; extra == "frozen"
82
+ Requires-Dist: cachelib==0.13.0; extra == "frozen"
83
+ Requires-Dist: celery==5.6.0; extra == "frozen"
84
+ Requires-Dist: certifi==2025.11.12; extra == "frozen"
85
+ Requires-Dist: cffi==2.0.0; extra == "frozen"
86
+ Requires-Dist: charset-normalizer==3.4.4; extra == "frozen"
87
+ Requires-Dist: click==8.3.1; extra == "frozen"
88
+ Requires-Dist: click-didyoumean==0.3.1; extra == "frozen"
89
+ Requires-Dist: click-plugins==1.1.1.2; extra == "frozen"
90
+ Requires-Dist: click-repl==0.3.0; extra == "frozen"
91
+ Requires-Dist: clickclick==20.10.2; extra == "frozen"
92
+ Requires-Dist: colorama==0.4.6; extra == "frozen"
93
+ Requires-Dist: colorlog==6.10.1; extra == "frozen"
94
+ Requires-Dist: connexion==2.14.2; extra == "frozen"
95
+ Requires-Dist: contourpy==1.3.3; extra == "frozen"
96
+ Requires-Dist: cron_descriptor==2.0.6; extra == "frozen"
97
+ Requires-Dist: croniter==6.0.0; extra == "frozen"
98
+ Requires-Dist: cryptography==46.0.3; extra == "frozen"
99
+ Requires-Dist: cycler==0.12.1; extra == "frozen"
100
+ Requires-Dist: dacite==1.9.2; extra == "frozen"
101
+ Requires-Dist: decorator==5.2.1; extra == "frozen"
102
+ Requires-Dist: dill==0.4.0; extra == "frozen"
103
+ Requires-Dist: dkist-header-validator==5.2.1; extra == "frozen"
104
+ Requires-Dist: dkist-processing-common==11.9.0rc1; extra == "frozen"
105
+ Requires-Dist: dkist-processing-core==6.0.1; extra == "frozen"
106
+ Requires-Dist: dkist-processing-ops==1.8.4rc1; extra == "frozen"
107
+ Requires-Dist: dkist-processing-pac==3.1.1; extra == "frozen"
108
+ Requires-Dist: dkist-service-configuration==4.1.13; extra == "frozen"
109
+ Requires-Dist: dkist-spectral-lines==3.0.0; extra == "frozen"
110
+ Requires-Dist: dkist_fits_specifications==4.17.0; extra == "frozen"
111
+ Requires-Dist: dnspython==2.8.0; extra == "frozen"
112
+ Requires-Dist: email-validator==2.3.0; extra == "frozen"
113
+ Requires-Dist: exceptiongroup==1.3.1; extra == "frozen"
114
+ Requires-Dist: fastjsonschema==2.21.2; extra == "frozen"
115
+ Requires-Dist: flower==2.0.1; extra == "frozen"
116
+ Requires-Dist: fonttools==4.61.0; extra == "frozen"
117
+ Requires-Dist: frozenlist==1.8.0; extra == "frozen"
118
+ Requires-Dist: fsspec==2025.12.0; extra == "frozen"
119
+ Requires-Dist: globus-sdk==4.1.0; extra == "frozen"
120
+ Requires-Dist: google-re2==1.1.20251105; extra == "frozen"
121
+ Requires-Dist: googleapis-common-protos==1.72.0; extra == "frozen"
122
+ Requires-Dist: gqlclient==1.2.3; extra == "frozen"
123
+ Requires-Dist: grpcio==1.76.0; extra == "frozen"
124
+ Requires-Dist: gunicorn==23.0.0; extra == "frozen"
125
+ Requires-Dist: h11==0.16.0; extra == "frozen"
126
+ Requires-Dist: httpcore==1.0.9; extra == "frozen"
127
+ Requires-Dist: httpx==0.28.1; extra == "frozen"
128
+ Requires-Dist: humanize==4.14.0; extra == "frozen"
129
+ Requires-Dist: idna==3.11; extra == "frozen"
130
+ Requires-Dist: imageio-ffmpeg==0.6.0; extra == "frozen"
131
+ Requires-Dist: importlib_metadata==8.7.0; extra == "frozen"
132
+ Requires-Dist: inflection==0.5.1; extra == "frozen"
133
+ Requires-Dist: itsdangerous==2.2.0; extra == "frozen"
134
+ Requires-Dist: jmespath==1.0.1; extra == "frozen"
135
+ Requires-Dist: jsonschema==4.25.1; extra == "frozen"
136
+ Requires-Dist: jsonschema-specifications==2025.9.1; extra == "frozen"
137
+ Requires-Dist: jupyter_core==5.9.1; extra == "frozen"
138
+ Requires-Dist: kiwisolver==1.4.9; extra == "frozen"
139
+ Requires-Dist: kombu==5.6.1; extra == "frozen"
140
+ Requires-Dist: lazy-object-proxy==1.12.0; extra == "frozen"
141
+ Requires-Dist: limits==5.6.0; extra == "frozen"
142
+ Requires-Dist: linkify-it-py==2.0.3; extra == "frozen"
143
+ Requires-Dist: lmfit==1.3.4; extra == "frozen"
144
+ Requires-Dist: lockfile==0.12.2; extra == "frozen"
145
+ Requires-Dist: loguru==0.7.3; extra == "frozen"
146
+ Requires-Dist: markdown-it-py==4.0.0; extra == "frozen"
147
+ Requires-Dist: marshmallow==3.26.1; extra == "frozen"
148
+ Requires-Dist: marshmallow-oneofschema==3.2.0; extra == "frozen"
149
+ Requires-Dist: marshmallow-sqlalchemy==0.28.2; extra == "frozen"
150
+ Requires-Dist: matplotlib==3.10.7; extra == "frozen"
151
+ Requires-Dist: mdit-py-plugins==0.5.0; extra == "frozen"
152
+ Requires-Dist: mdurl==0.1.2; extra == "frozen"
153
+ Requires-Dist: methodtools==0.4.7; extra == "frozen"
154
+ Requires-Dist: more-itertools==10.8.0; extra == "frozen"
155
+ Requires-Dist: moviepy==2.2.1; extra == "frozen"
156
+ Requires-Dist: multidict==6.7.0; extra == "frozen"
157
+ Requires-Dist: nbformat==5.10.4; extra == "frozen"
158
+ Requires-Dist: numpy==2.3.5; extra == "frozen"
159
+ Requires-Dist: object-clerk==1.0.0; extra == "frozen"
160
+ Requires-Dist: opentelemetry-api==1.39.0; extra == "frozen"
161
+ Requires-Dist: opentelemetry-exporter-otlp==1.39.0; extra == "frozen"
162
+ Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.39.0; extra == "frozen"
163
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.39.0; extra == "frozen"
164
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.39.0; extra == "frozen"
165
+ Requires-Dist: opentelemetry-instrumentation==0.60b0; extra == "frozen"
166
+ Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.60b0; extra == "frozen"
167
+ Requires-Dist: opentelemetry-instrumentation-asgi==0.60b0; extra == "frozen"
168
+ Requires-Dist: opentelemetry-instrumentation-botocore==0.60b0; extra == "frozen"
169
+ Requires-Dist: opentelemetry-instrumentation-celery==0.60b0; extra == "frozen"
170
+ Requires-Dist: opentelemetry-instrumentation-dbapi==0.60b0; extra == "frozen"
171
+ Requires-Dist: opentelemetry-instrumentation-fastapi==0.60b0; extra == "frozen"
172
+ Requires-Dist: opentelemetry-instrumentation-pika==0.60b0; extra == "frozen"
173
+ Requires-Dist: opentelemetry-instrumentation-psycopg2==0.60b0; extra == "frozen"
174
+ Requires-Dist: opentelemetry-instrumentation-pymongo==0.60b0; extra == "frozen"
175
+ Requires-Dist: opentelemetry-instrumentation-redis==0.60b0; extra == "frozen"
176
+ Requires-Dist: opentelemetry-instrumentation-requests==0.60b0; extra == "frozen"
177
+ Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.60b0; extra == "frozen"
178
+ Requires-Dist: opentelemetry-instrumentation-system-metrics==0.60b0; extra == "frozen"
179
+ Requires-Dist: opentelemetry-propagator-aws-xray==1.0.2; extra == "frozen"
180
+ Requires-Dist: opentelemetry-proto==1.39.0; extra == "frozen"
181
+ Requires-Dist: opentelemetry-sdk==1.39.0; extra == "frozen"
182
+ Requires-Dist: opentelemetry-semantic-conventions==0.60b0; extra == "frozen"
183
+ Requires-Dist: opentelemetry-util-http==0.60b0; extra == "frozen"
184
+ Requires-Dist: ordered-set==4.1.0; extra == "frozen"
185
+ Requires-Dist: packaging==25.0; extra == "frozen"
186
+ Requires-Dist: pandas==2.3.3; extra == "frozen"
187
+ Requires-Dist: parfive==2.2.0; extra == "frozen"
188
+ Requires-Dist: pathlib_abc==0.5.2; extra == "frozen"
189
+ Requires-Dist: pathspec==0.12.1; extra == "frozen"
190
+ Requires-Dist: pendulum==3.1.0; extra == "frozen"
191
+ Requires-Dist: pika==1.3.2; extra == "frozen"
192
+ Requires-Dist: pillow==11.3.0; extra == "frozen"
193
+ Requires-Dist: pip==25.3; extra == "frozen"
194
+ Requires-Dist: platformdirs==4.5.0; extra == "frozen"
195
+ Requires-Dist: pluggy==1.6.0; extra == "frozen"
196
+ Requires-Dist: pooch==1.8.2; extra == "frozen"
197
+ Requires-Dist: prison==0.2.1; extra == "frozen"
198
+ Requires-Dist: proglog==0.1.12; extra == "frozen"
199
+ Requires-Dist: prometheus_client==0.23.1; extra == "frozen"
200
+ Requires-Dist: prompt_toolkit==3.0.52; extra == "frozen"
201
+ Requires-Dist: propcache==0.4.1; extra == "frozen"
202
+ Requires-Dist: protobuf==6.33.1; extra == "frozen"
203
+ Requires-Dist: psutil==7.1.3; extra == "frozen"
204
+ Requires-Dist: psycopg2-binary==2.9.11; extra == "frozen"
205
+ Requires-Dist: pycparser==2.23; extra == "frozen"
206
+ Requires-Dist: pydantic==2.12.5; extra == "frozen"
207
+ Requires-Dist: pydantic-settings==2.12.0; extra == "frozen"
208
+ Requires-Dist: pydantic_core==2.41.5; extra == "frozen"
209
+ Requires-Dist: pyerfa==2.0.1.5; extra == "frozen"
210
+ Requires-Dist: pyparsing==3.2.5; extra == "frozen"
211
+ Requires-Dist: python-daemon==3.1.2; extra == "frozen"
212
+ Requires-Dist: python-dateutil==2.9.0.post0; extra == "frozen"
213
+ Requires-Dist: python-dotenv==1.2.1; extra == "frozen"
214
+ Requires-Dist: python-nvd3==0.16.0; extra == "frozen"
215
+ Requires-Dist: python-slugify==8.0.4; extra == "frozen"
216
+ Requires-Dist: pytz==2025.2; extra == "frozen"
217
+ Requires-Dist: redis==6.4.0; extra == "frozen"
218
+ Requires-Dist: referencing==0.37.0; extra == "frozen"
219
+ Requires-Dist: requests==2.32.5; extra == "frozen"
220
+ Requires-Dist: requests-toolbelt==1.0.0; extra == "frozen"
221
+ Requires-Dist: rfc3339-validator==0.1.4; extra == "frozen"
222
+ Requires-Dist: rich==13.9.4; extra == "frozen"
223
+ Requires-Dist: rich-argparse==1.7.2; extra == "frozen"
224
+ Requires-Dist: rpds-py==0.30.0; extra == "frozen"
225
+ Requires-Dist: s3transfer==0.16.0; extra == "frozen"
226
+ Requires-Dist: scipy==1.16.3; extra == "frozen"
227
+ Requires-Dist: semantic-version==2.10.0; extra == "frozen"
228
+ Requires-Dist: setproctitle==1.3.7; extra == "frozen"
229
+ Requires-Dist: six==1.17.0; extra == "frozen"
230
+ Requires-Dist: solar-wavelength-calibration==2.0.0; extra == "frozen"
231
+ Requires-Dist: sqids==0.5.1; extra == "frozen"
232
+ Requires-Dist: sqlparse==0.5.4; extra == "frozen"
233
+ Requires-Dist: sunpy==7.0.3; extra == "frozen"
234
+ Requires-Dist: tabulate==0.9.0; extra == "frozen"
235
+ Requires-Dist: talus==1.3.4; extra == "frozen"
236
+ Requires-Dist: tenacity==8.5.0; extra == "frozen"
237
+ Requires-Dist: termcolor==3.2.0; extra == "frozen"
238
+ Requires-Dist: text-unidecode==1.3; extra == "frozen"
239
+ Requires-Dist: tornado==6.5.2; extra == "frozen"
240
+ Requires-Dist: tqdm==4.67.1; extra == "frozen"
241
+ Requires-Dist: traitlets==5.14.3; extra == "frozen"
242
+ Requires-Dist: typing-inspection==0.4.2; extra == "frozen"
243
+ Requires-Dist: typing_extensions==4.15.0; extra == "frozen"
244
+ Requires-Dist: tzdata==2025.2; extra == "frozen"
245
+ Requires-Dist: tzlocal==5.3.1; extra == "frozen"
246
+ Requires-Dist: uc-micro-py==1.0.3; extra == "frozen"
247
+ Requires-Dist: uncertainties==3.2.3; extra == "frozen"
248
+ Requires-Dist: universal_pathlib==0.3.7; extra == "frozen"
249
+ Requires-Dist: urllib3==2.5.0; extra == "frozen"
250
+ Requires-Dist: vine==5.1.0; extra == "frozen"
251
+ Requires-Dist: voluptuous==0.15.2; extra == "frozen"
252
+ Requires-Dist: wcwidth==0.2.14; extra == "frozen"
253
+ Requires-Dist: wirerope==1.0.0; extra == "frozen"
254
+ Requires-Dist: wrapt==1.17.3; extra == "frozen"
255
+ Requires-Dist: yamale==6.1.0; extra == "frozen"
256
+ Requires-Dist: yarl==1.22.0; extra == "frozen"
257
+ Requires-Dist: zipp==3.23.0; extra == "frozen"
258
+ Dynamic: license-file
259
+
260
+ dkist-processing-ops
261
+ ====================
262
+
263
+ |codecov|
264
+
265
+ This repository works in concert with `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_ and
266
+ `dkist-processing-common <https://pypi.org/project/dkist-processing-common/>`_ to provide workflows for the
267
+ operational management and smoke testing of the `Automated Processing <https://nso.atlassian.net/wiki/spaces/DPD/pages/3671451/04+-+Automated+Processing>`_ stack.
268
+
269
+
270
+ Developer Setup
271
+ ---------------
272
+
273
+ .. code-block:: bash
274
+
275
+ pip install -e .[test]
276
+ pip install pre-commit
277
+ pre-commit install
278
+
279
+ Environment Variables
280
+ ---------------------
281
+
282
+ .. list-table::
283
+ :widths: 10 90
284
+ :header-rows: 1
285
+
286
+ * - Variable
287
+ - Field Info
288
+ * - LOGURU_LEVEL
289
+ - annotation=str required=False default='INFO' alias_priority=2 validation_alias='LOGURU_LEVEL' description='Log level for the application'
290
+ * - MESH_CONFIG
291
+ - annotation=dict[str, MeshService] required=False default_factory=dict alias_priority=2 validation_alias='MESH_CONFIG' description='Service mesh configuration' examples=[{'upstream_service_name': {'mesh_address': 'localhost', 'mesh_port': 6742}}]
292
+ * - RETRY_CONFIG
293
+ - annotation=RetryConfig required=False default_factory=RetryConfig description='Retry configuration for the service'
294
+ * - OTEL_SERVICE_NAME
295
+ - annotation=str required=False default='unknown-service-name' alias_priority=2 validation_alias='OTEL_SERVICE_NAME' description='Service name for OpenTelemetry'
296
+ * - DKIST_SERVICE_VERSION
297
+ - annotation=str required=False default='unknown-service-version' alias_priority=2 validation_alias='DKIST_SERVICE_VERSION' description='Service version for OpenTelemetry'
298
+ * - NOMAD_ALLOC_ID
299
+ - annotation=str required=False default='unknown-allocation-id' alias_priority=2 validation_alias='NOMAD_ALLOC_ID' description='Nomad allocation ID for OpenTelemetry'
300
+ * - NOMAD_ALLOC_NAME
301
+ - annotation=str required=False default='unknown-allocation-name' alias='NOMAD_ALLOC_NAME' alias_priority=2 description='Allocation name for the deployed container the task is running on.'
302
+ * - NOMAD_GROUP_NAME
303
+ - annotation=str required=False default='unknown-allocation-group' alias='NOMAD_GROUP_NAME' alias_priority=2 description='Allocation group for the deployed container the task is running on'
304
+ * - OTEL_EXPORTER_OTLP_TRACES_INSECURE
305
+ - annotation=bool required=False default=True description='Use insecure connection for OTLP traces'
306
+ * - OTEL_EXPORTER_OTLP_METRICS_INSECURE
307
+ - annotation=bool required=False default=True description='Use insecure connection for OTLP metrics'
308
+ * - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
309
+ - annotation=Union[str, NoneType] required=False default=None description='OTLP traces endpoint. Overrides mesh configuration' examples=['localhost:4317']
310
+ * - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
311
+ - annotation=Union[str, NoneType] required=False default=None description='OTLP metrics endpoint. Overrides mesh configuration' examples=['localhost:4317']
312
+ * - OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
313
+ - annotation=list[str] required=False default_factory=list description='List of instrumentations to disable. https://opentelemetry.io/docs/zero-code/python/configuration/' examples=[['pika', 'requests']]
314
+ * - OTEL_PYTHON_FASTAPI_EXCLUDED_URLS
315
+ - annotation=str required=False default='health' description='Comma separated list of URLs to exclude from OpenTelemetry instrumentation in FastAPI.' examples=['client/.*/info,healthcheck']
316
+ * - SYSTEM_METRIC_INSTRUMENTATION_CONFIG
317
+ - annotation=Union[dict[str, bool], NoneType] required=False default=None description='Configuration for system metric instrumentation. https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/system_metrics/system_metrics.html' examples=[{'system.memory.usage': ['used', 'free', 'cached'], 'system.cpu.time': ['idle', 'user', 'system', 'irq'], 'system.network.io': ['transmit', 'receive'], 'process.runtime.memory': ['rss', 'vms'], 'process.runtime.cpu.time': ['user', 'system'], 'process.runtime.context_switches': ['involuntary', 'voluntary']}]
318
+ * - ISB_USERNAME
319
+ - annotation=str required=False default='guest' description='Username for the interservice-bus.'
320
+ * - ISB_PASSWORD
321
+ - annotation=str required=False default='guest' description='Password for the interservice-bus.'
322
+ * - ISB_EXCHANGE
323
+ - annotation=str required=False default='master.direct.x' description='Exchange for the interservice-bus.'
324
+ * - ISB_QUEUE_TYPE
325
+ - annotation=str required=False default='classic' description='Queue type for the interservice-bus.' examples=['quorum', 'classic']
326
+ * - BUILD_VERSION
327
+ - annotation=str required=False default='dev' description='Fallback build version for workflow tasks.'
328
+ * - GQL_AUTH_TOKEN
329
+ - annotation=Union[str, NoneType] required=False default='dev' description='The auth token for the metadata-store-api.'
330
+ * - OBJECT_STORE_ACCESS_KEY
331
+ - annotation=Union[str, NoneType] required=False default=None description='The access key for the object store.'
332
+ * - OBJECT_STORE_SECRET_KEY
333
+ - annotation=Union[str, NoneType] required=False default=None description='The secret key for the object store.'
334
+ * - OBJECT_STORE_USE_SSL
335
+ - annotation=bool required=False default=False description='Whether to use SSL for the object store connection.'
336
+ * - MULTIPART_THRESHOLD
337
+ - annotation=Union[int, NoneType] required=False default=None description='Multipart threshold for the object store.'
338
+ * - S3_CLIENT_CONFIG
339
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 client configuration for the object store.'
340
+ * - S3_UPLOAD_CONFIG
341
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 upload configuration for the object store.'
342
+ * - S3_DOWNLOAD_CONFIG
343
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 download configuration for the object store.'
344
+ * - GLOBUS_MAX_RETRIES
345
+ - annotation=int required=False default=5 description='Max retries for transient errors on calls to the globus api.'
346
+ * - GLOBUS_INBOUND_CLIENT_CREDENTIALS
347
+ - annotation=list[GlobusClientCredential] required=False default_factory=list description='Globus client credentials for inbound transfers.' examples=[[{'client_id': 'id1', 'client_secret': 'secret1'}, {'client_id': 'id2', 'client_secret': 'secret2'}]]
348
+ * - GLOBUS_OUTBOUND_CLIENT_CREDENTIALS
349
+ - annotation=list[GlobusClientCredential] required=False default_factory=list description='Globus client credentials for outbound transfers.' examples=[[{'client_id': 'id3', 'client_secret': 'secret3'}, {'client_id': 'id4', 'client_secret': 'secret4'}]]
350
+ * - OBJECT_STORE_ENDPOINT
351
+ - annotation=Union[str, NoneType] required=False default=None description='Object store Globus Endpoint ID.'
352
+ * - SCRATCH_ENDPOINT
353
+ - annotation=Union[str, NoneType] required=False default=None description='Scratch Globus Endpoint ID.'
354
+ * - SCRATCH_BASE_PATH
355
+ - annotation=str required=False default='scratch/' description='Base path for scratch storage.'
356
+ * - SCRATCH_INVENTORY_DB_COUNT
357
+ - annotation=int required=False default=16 description='Number of databases in the scratch inventory (redis).'
358
+ * - DOCS_BASE_URL
359
+ - annotation=str required=False default='my_test_url' description='Base URL for the documentation site.'
360
+
361
+ Deployment
362
+ ----------
363
+
364
+ Deployment is done with `turtlebot <https://bitbucket.org/dkistdc/turtlebot/src/main/>`_ and follows
365
+ the process detailed in `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_
366
+
367
+ Additionally, when a new release is ready to be built the following steps need to be taken:
368
+
369
+ 1. Freezing Dependencies
370
+ #########################
371
+
372
+ A new "frozen" extra is generated by the `dkist-dev-tools <https://bitbucket.org/dkistdc/dkist-dev-tools/src/main/>`_
373
+ package. If you don't have `dkist-dev-tools` installed please follow the directions from that repo.
374
+
375
+ To freeze dependencies run
376
+
377
+ .. code-block:: bash
378
+
379
+ ddt freeze vX.Y.Z[rcK]
380
+
381
+ Where "vX.Y.Z[rcK]" is the version about to be released.
382
+
383
+ 2. Tag and Push
384
+ ###############
385
+
386
+ Once all commits are in place add a git tag that will define the released version, then push the tags up to Bitbucket:
387
+
388
+ .. code-block:: bash
389
+
390
+ git tag vX.Y.Z[rcK]
391
+ git push --tags origin BRANCH
392
+
393
+ In the case of an rc, BRANCH will likely be your development branch. For full releases BRANCH should be "main".
394
+
395
+ .. |codecov| image:: https://codecov.io/bb/dkistdc/dkist-processing-ops/graph/badge.svg?token=6ZDODS2GHT
396
+ :target: https://codecov.io/bb/dkistdc/dkist-processing-ops
@@ -0,0 +1,137 @@
1
+ dkist-processing-ops
2
+ ====================
3
+
4
+ |codecov|
5
+
6
+ This repository works in concert with `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_ and
7
+ `dkist-processing-common <https://pypi.org/project/dkist-processing-common/>`_ to provide workflows for the
8
+ operational management and smoke testing of the `Automated Processing <https://nso.atlassian.net/wiki/spaces/DPD/pages/3671451/04+-+Automated+Processing>`_ stack.
9
+
10
+
11
+ Developer Setup
12
+ ---------------
13
+
14
+ .. code-block:: bash
15
+
16
+ pip install -e .[test]
17
+ pip install pre-commit
18
+ pre-commit install
19
+
20
+ Environment Variables
21
+ ---------------------
22
+
23
+ .. list-table::
24
+ :widths: 10 90
25
+ :header-rows: 1
26
+
27
+ * - Variable
28
+ - Field Info
29
+ * - LOGURU_LEVEL
30
+ - annotation=str required=False default='INFO' alias_priority=2 validation_alias='LOGURU_LEVEL' description='Log level for the application'
31
+ * - MESH_CONFIG
32
+ - annotation=dict[str, MeshService] required=False default_factory=dict alias_priority=2 validation_alias='MESH_CONFIG' description='Service mesh configuration' examples=[{'upstream_service_name': {'mesh_address': 'localhost', 'mesh_port': 6742}}]
33
+ * - RETRY_CONFIG
34
+ - annotation=RetryConfig required=False default_factory=RetryConfig description='Retry configuration for the service'
35
+ * - OTEL_SERVICE_NAME
36
+ - annotation=str required=False default='unknown-service-name' alias_priority=2 validation_alias='OTEL_SERVICE_NAME' description='Service name for OpenTelemetry'
37
+ * - DKIST_SERVICE_VERSION
38
+ - annotation=str required=False default='unknown-service-version' alias_priority=2 validation_alias='DKIST_SERVICE_VERSION' description='Service version for OpenTelemetry'
39
+ * - NOMAD_ALLOC_ID
40
+ - annotation=str required=False default='unknown-allocation-id' alias_priority=2 validation_alias='NOMAD_ALLOC_ID' description='Nomad allocation ID for OpenTelemetry'
41
+ * - NOMAD_ALLOC_NAME
42
+ - annotation=str required=False default='unknown-allocation-name' alias='NOMAD_ALLOC_NAME' alias_priority=2 description='Allocation name for the deployed container the task is running on.'
43
+ * - NOMAD_GROUP_NAME
44
+ - annotation=str required=False default='unknown-allocation-group' alias='NOMAD_GROUP_NAME' alias_priority=2 description='Allocation group for the deployed container the task is running on'
45
+ * - OTEL_EXPORTER_OTLP_TRACES_INSECURE
46
+ - annotation=bool required=False default=True description='Use insecure connection for OTLP traces'
47
+ * - OTEL_EXPORTER_OTLP_METRICS_INSECURE
48
+ - annotation=bool required=False default=True description='Use insecure connection for OTLP metrics'
49
+ * - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
50
+ - annotation=Union[str, NoneType] required=False default=None description='OTLP traces endpoint. Overrides mesh configuration' examples=['localhost:4317']
51
+ * - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
52
+ - annotation=Union[str, NoneType] required=False default=None description='OTLP metrics endpoint. Overrides mesh configuration' examples=['localhost:4317']
53
+ * - OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
54
+ - annotation=list[str] required=False default_factory=list description='List of instrumentations to disable. https://opentelemetry.io/docs/zero-code/python/configuration/' examples=[['pika', 'requests']]
55
+ * - OTEL_PYTHON_FASTAPI_EXCLUDED_URLS
56
+ - annotation=str required=False default='health' description='Comma separated list of URLs to exclude from OpenTelemetry instrumentation in FastAPI.' examples=['client/.*/info,healthcheck']
57
+ * - SYSTEM_METRIC_INSTRUMENTATION_CONFIG
58
+ - annotation=Union[dict[str, bool], NoneType] required=False default=None description='Configuration for system metric instrumentation. https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/system_metrics/system_metrics.html' examples=[{'system.memory.usage': ['used', 'free', 'cached'], 'system.cpu.time': ['idle', 'user', 'system', 'irq'], 'system.network.io': ['transmit', 'receive'], 'process.runtime.memory': ['rss', 'vms'], 'process.runtime.cpu.time': ['user', 'system'], 'process.runtime.context_switches': ['involuntary', 'voluntary']}]
59
+ * - ISB_USERNAME
60
+ - annotation=str required=False default='guest' description='Username for the interservice-bus.'
61
+ * - ISB_PASSWORD
62
+ - annotation=str required=False default='guest' description='Password for the interservice-bus.'
63
+ * - ISB_EXCHANGE
64
+ - annotation=str required=False default='master.direct.x' description='Exchange for the interservice-bus.'
65
+ * - ISB_QUEUE_TYPE
66
+ - annotation=str required=False default='classic' description='Queue type for the interservice-bus.' examples=['quorum', 'classic']
67
+ * - BUILD_VERSION
68
+ - annotation=str required=False default='dev' description='Fallback build version for workflow tasks.'
69
+ * - GQL_AUTH_TOKEN
70
+ - annotation=Union[str, NoneType] required=False default='dev' description='The auth token for the metadata-store-api.'
71
+ * - OBJECT_STORE_ACCESS_KEY
72
+ - annotation=Union[str, NoneType] required=False default=None description='The access key for the object store.'
73
+ * - OBJECT_STORE_SECRET_KEY
74
+ - annotation=Union[str, NoneType] required=False default=None description='The secret key for the object store.'
75
+ * - OBJECT_STORE_USE_SSL
76
+ - annotation=bool required=False default=False description='Whether to use SSL for the object store connection.'
77
+ * - MULTIPART_THRESHOLD
78
+ - annotation=Union[int, NoneType] required=False default=None description='Multipart threshold for the object store.'
79
+ * - S3_CLIENT_CONFIG
80
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 client configuration for the object store.'
81
+ * - S3_UPLOAD_CONFIG
82
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 upload configuration for the object store.'
83
+ * - S3_DOWNLOAD_CONFIG
84
+ - annotation=Union[dict, NoneType] required=False default=None description='S3 download configuration for the object store.'
85
+ * - GLOBUS_MAX_RETRIES
86
+ - annotation=int required=False default=5 description='Max retries for transient errors on calls to the globus api.'
87
+ * - GLOBUS_INBOUND_CLIENT_CREDENTIALS
88
+ - annotation=list[GlobusClientCredential] required=False default_factory=list description='Globus client credentials for inbound transfers.' examples=[[{'client_id': 'id1', 'client_secret': 'secret1'}, {'client_id': 'id2', 'client_secret': 'secret2'}]]
89
+ * - GLOBUS_OUTBOUND_CLIENT_CREDENTIALS
90
+ - annotation=list[GlobusClientCredential] required=False default_factory=list description='Globus client credentials for outbound transfers.' examples=[[{'client_id': 'id3', 'client_secret': 'secret3'}, {'client_id': 'id4', 'client_secret': 'secret4'}]]
91
+ * - OBJECT_STORE_ENDPOINT
92
+ - annotation=Union[str, NoneType] required=False default=None description='Object store Globus Endpoint ID.'
93
+ * - SCRATCH_ENDPOINT
94
+ - annotation=Union[str, NoneType] required=False default=None description='Scratch Globus Endpoint ID.'
95
+ * - SCRATCH_BASE_PATH
96
+ - annotation=str required=False default='scratch/' description='Base path for scratch storage.'
97
+ * - SCRATCH_INVENTORY_DB_COUNT
98
+ - annotation=int required=False default=16 description='Number of databases in the scratch inventory (redis).'
99
+ * - DOCS_BASE_URL
100
+ - annotation=str required=False default='my_test_url' description='Base URL for the documentation site.'
101
+
102
+ Deployment
103
+ ----------
104
+
105
+ Deployment is done with `turtlebot <https://bitbucket.org/dkistdc/turtlebot/src/main/>`_ and follows
106
+ the process detailed in `dkist-processing-core <https://pypi.org/project/dkist-processing-core/>`_
107
+
108
+ Additionally, when a new release is ready to be built the following steps need to be taken:
109
+
110
+ 1. Freezing Dependencies
111
+ #########################
112
+
113
+ A new "frozen" extra is generated by the `dkist-dev-tools <https://bitbucket.org/dkistdc/dkist-dev-tools/src/main/>`_
114
+ package. If you don't have `dkist-dev-tools` installed please follow the directions from that repo.
115
+
116
+ To freeze dependencies run
117
+
118
+ .. code-block:: bash
119
+
120
+ ddt freeze vX.Y.Z[rcK]
121
+
122
+ Where "vX.Y.Z[rcK]" is the version about to be released.
123
+
124
+ 2. Tag and Push
125
+ ###############
126
+
127
+ Once all commits are in place add a git tag that will define the released version, then push the tags up to Bitbucket:
128
+
129
+ .. code-block:: bash
130
+
131
+ git tag vX.Y.Z[rcK]
132
+ git push --tags origin BRANCH
133
+
134
+ In the case of an rc, BRANCH will likely be your development branch. For full releases BRANCH should be "main".
135
+
136
+ .. |codecov| image:: https://codecov.io/bb/dkistdc/dkist-processing-ops/graph/badge.svg?token=6ZDODS2GHT
137
+ :target: https://codecov.io/bb/dkistdc/dkist-processing-ops
@@ -1,5 +1,5 @@
1
1
  #Build Configuration for docker deployment to artifactory
2
- image: python:3.11
2
+ image: python:3.12
3
3
 
4
4
  definitions:
5
5
  services:
@@ -0,0 +1,34 @@
1
+ # file generated by setuptools-scm
2
+ # don't change, don't track in version control
3
+
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
12
+
13
+ TYPE_CHECKING = False
14
+ if TYPE_CHECKING:
15
+ from typing import Tuple
16
+ from typing import Union
17
+
18
+ VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
20
+ else:
21
+ VERSION_TUPLE = object
22
+ COMMIT_ID = object
23
+
24
+ version: str
25
+ __version__: str
26
+ __version_tuple__: VERSION_TUPLE
27
+ version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
30
+
31
+ __version__ = version = '1.8.4rc1'
32
+ __version_tuple__ = version_tuple = (1, 8, 4, 'rc1')
33
+
34
+ __commit_id__ = commit_id = 'g7ea282b9f'
@@ -1,6 +1,7 @@
1
1
  """
2
2
  DAG to use up workers to support scaling
3
3
  """
4
+
4
5
  from os import environ
5
6
  from pathlib import Path
6
7
 
@@ -1,2 +1,3 @@
1
1
  """Import of tasks is directly from package by convention"""
2
+
2
3
  from dkist_processing_ops.tasks.wait import *
@@ -1,4 +1,5 @@
1
1
  """Test integrity of workflows."""
2
+
2
3
  from dkist_processing_core.build_utils import validate_workflows
3
4
 
4
5
  from dkist_processing_ops import workflows