processes 3.1.1__tar.gz → 7.0.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.
- processes-7.0.0/.github/workflows/lint-pr.yml +31 -0
- {processes-3.1.1 → processes-7.0.0}/.github/workflows/tests.yml +1 -1
- {processes-3.1.1 → processes-7.0.0}/.gitignore +5 -1
- processes-7.0.0/CHANGELOG.md +204 -0
- {processes-3.1.1 → processes-7.0.0}/PKG-INFO +179 -66
- {processes-3.1.1 → processes-7.0.0}/README.md +177 -63
- {processes-3.1.1 → processes-7.0.0}/docs/examples/advanced.md +17 -15
- {processes-3.1.1 → processes-7.0.0}/docs/examples/basic.md +10 -10
- processes-7.0.0/docs/examples/reports.md +128 -0
- {processes-3.1.1 → processes-7.0.0}/docs/index.md +42 -43
- processes-7.0.0/docs/reference.md +14 -0
- {processes-3.1.1 → processes-7.0.0}/examples/01_basic_tasks_and_dependencies/README.md +10 -10
- {processes-3.1.1 → processes-7.0.0}/examples/01_basic_tasks_and_dependencies/example1.py +4 -4
- {processes-3.1.1 → processes-7.0.0}/examples/02_task_dependencies_result_passing/README.md +7 -7
- {processes-3.1.1 → processes-7.0.0}/examples/02_task_dependencies_result_passing/example2.py +6 -6
- processes-7.0.0/examples/03_reports_and_notifications/README.md +32 -0
- processes-7.0.0/examples/03_reports_and_notifications/example3.py +181 -0
- {processes-3.1.1 → processes-7.0.0}/examples/README.md +12 -1
- {processes-3.1.1 → processes-7.0.0}/mkdocs.yml +1 -0
- {processes-3.1.1 → processes-7.0.0}/pyproject.toml +2 -2
- processes-7.0.0/src/processes/__init__.py +32 -0
- processes-7.0.0/src/processes/_logfile.py +100 -0
- {processes-3.1.1 → processes-7.0.0}/src/processes/_tb_utils.py +10 -12
- processes-7.0.0/src/processes/comms/__init__.py +15 -0
- processes-7.0.0/src/processes/comms/_email.py +304 -0
- processes-7.0.0/src/processes/comms/_webhook.py +126 -0
- processes-7.0.0/src/processes/comms/base.py +57 -0
- processes-7.0.0/src/processes/comms/channels.py +112 -0
- {processes-3.1.1/src/processes → processes-7.0.0/src/processes/comms}/email_config.py +5 -29
- processes-7.0.0/src/processes/comms/themes/languages/de.json +20 -0
- processes-7.0.0/src/processes/comms/themes/languages/en.json +20 -0
- processes-7.0.0/src/processes/comms/themes/languages/es.json +20 -0
- processes-7.0.0/src/processes/comms/themes/languages/fr.json +20 -0
- processes-7.0.0/src/processes/comms/themes/languages/it.json +20 -0
- processes-7.0.0/src/processes/comms/themes/languages/pt.json +20 -0
- processes-7.0.0/src/processes/comms/themes/styles/report.html +178 -0
- processes-7.0.0/src/processes/comms/webhook_config.py +44 -0
- processes-7.0.0/src/processes/error_data.py +42 -0
- processes-7.0.0/src/processes/execution_report.py +221 -0
- {processes-3.1.1 → processes-7.0.0}/src/processes/process.py +198 -98
- {processes-3.1.1 → processes-7.0.0}/src/processes/task.py +103 -161
- processes-7.0.0/src/processes/task_types.py +202 -0
- processes-7.0.0/tests/conftest.py +75 -0
- processes-7.0.0/tests/manual_tests/manual_report_notify.py +331 -0
- {processes-3.1.1 → processes-7.0.0}/tests/test_args_kwargs.py +25 -23
- {processes-3.1.1 → processes-7.0.0}/tests/test_complex_dag_failures.py +30 -117
- {processes-3.1.1 → processes-7.0.0}/tests/test_dependencies.py +14 -14
- processes-7.0.0/tests/test_execution_report.py +120 -0
- {processes-3.1.1 → processes-7.0.0}/tests/test_logfiles.py +4 -4
- {processes-3.1.1 → processes-7.0.0}/tests/test_normal_run_no_errors.py +22 -27
- {processes-3.1.1 → processes-7.0.0}/tests/test_parallel_race_conditions.py +19 -18
- processes-7.0.0/tests/test_process_mutation.py +137 -0
- processes-7.0.0/tests/test_report_notify_dispatch.py +155 -0
- processes-7.0.0/tests/test_report_rendering.py +149 -0
- processes-7.0.0/tests/test_report_send.py +344 -0
- processes-7.0.0/tests/test_report_to_json.py +98 -0
- processes-7.0.0/tests/test_resolve_args_failure.py +52 -0
- {processes-3.1.1 → processes-7.0.0}/tests/test_timeout_retry.py +40 -38
- processes-7.0.0/tests/test_unique_name.py +71 -0
- {processes-3.1.1 → processes-7.0.0}/uv.lock +34 -171
- processes-3.1.1/.github/workflows/lint-pr.yml +0 -31
- processes-3.1.1/CHANGELOG.md +0 -104
- processes-3.1.1/docs/reference.md +0 -10
- processes-3.1.1/src/processes/__init__.py +0 -23
- processes-3.1.1/src/processes/_email_internals.py +0 -217
- processes-3.1.1/src/processes/_error_data.py +0 -74
- processes-3.1.1/src/processes/_logfile_formatting.py +0 -57
- processes-3.1.1/src/processes/themes/languages/de.json +0 -15
- processes-3.1.1/src/processes/themes/languages/en.json +0 -15
- processes-3.1.1/src/processes/themes/languages/es.json +0 -15
- processes-3.1.1/src/processes/themes/languages/fr.json +0 -15
- processes-3.1.1/src/processes/themes/languages/it.json +0 -15
- processes-3.1.1/src/processes/themes/languages/pt.json +0 -15
- processes-3.1.1/src/processes/themes/styles/classic.html +0 -49
- processes-3.1.1/src/processes/themes/styles/compact.html +0 -67
- processes-3.1.1/src/processes/themes/styles/modern.html +0 -115
- processes-3.1.1/tests/manual_tests/manual_pipeline_inspect.py +0 -423
- processes-3.1.1/tests/manual_tests/manual_themed_tracebacks.py +0 -304
- processes-3.1.1/tests/test_email_themes.py +0 -531
- processes-3.1.1/tests/test_unique_name.py +0 -40
- {processes-3.1.1 → processes-7.0.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {processes-3.1.1 → processes-7.0.0}/.github/ISSUE_TEMPLATE/custom.md +0 -0
- {processes-3.1.1 → processes-7.0.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {processes-3.1.1 → processes-7.0.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {processes-3.1.1 → processes-7.0.0}/.github/workflows/docs.yml +0 -0
- {processes-3.1.1 → processes-7.0.0}/.github/workflows/lint.yml +0 -0
- {processes-3.1.1 → processes-7.0.0}/.github/workflows/mypy.yml +0 -0
- {processes-3.1.1 → processes-7.0.0}/.github/workflows/publish.yml +0 -0
- {processes-3.1.1 → processes-7.0.0}/.github/workflows/tags.yml +0 -0
- {processes-3.1.1 → processes-7.0.0}/CONTRIBUTING.md +0 -0
- {processes-3.1.1 → processes-7.0.0}/LICENSE +0 -0
- {processes-3.1.1 → processes-7.0.0}/assets/banner.svg +0 -0
- {processes-3.1.1 → processes-7.0.0}/assets/logo.png +0 -0
- {processes-3.1.1 → processes-7.0.0}/assets/logo.svg +0 -0
- {processes-3.1.1 → processes-7.0.0}/assets/social_banner.png +0 -0
- {processes-3.1.1 → processes-7.0.0}/assets/social_banner.svg +0 -0
- {processes-3.1.1 → processes-7.0.0}/docs/assets/favicon.svg +0 -0
- {processes-3.1.1 → processes-7.0.0}/docs/examples/intro.md +0 -0
- {processes-3.1.1 → processes-7.0.0}/pytest.ini +0 -0
- {processes-3.1.1/src/processes → processes-7.0.0/src/processes/comms}/themes/palettes/catppuccin.css +0 -0
- {processes-3.1.1/src/processes → processes-7.0.0/src/processes/comms}/themes/palettes/neobones.css +0 -0
- {processes-3.1.1/src/processes → processes-7.0.0/src/processes/comms}/themes/palettes/neutral.css +0 -0
- {processes-3.1.1/src/processes → processes-7.0.0/src/processes/comms}/themes/palettes/slate.css +0 -0
- {processes-3.1.1 → processes-7.0.0}/src/processes/exceptions.py +0 -0
- {processes-3.1.1 → processes-7.0.0}/src/processes/py.typed +0 -0
- {processes-3.1.1 → processes-7.0.0}/tests/__init__.py +0 -0
- {processes-3.1.1 → processes-7.0.0}/tests/base_test.py +0 -0
- {processes-3.1.1 → processes-7.0.0}/tests/manual_tests/__init__.py +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: "Lint PR"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types:
|
|
6
|
+
- opened
|
|
7
|
+
- edited
|
|
8
|
+
- synchronize
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
pull-requests: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
main:
|
|
15
|
+
name: Validate PR title
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: amannn/action-semantic-pull-request@v6
|
|
19
|
+
env:
|
|
20
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
21
|
+
with:
|
|
22
|
+
types: |
|
|
23
|
+
fix
|
|
24
|
+
feat
|
|
25
|
+
docs
|
|
26
|
+
style
|
|
27
|
+
refactor
|
|
28
|
+
perf
|
|
29
|
+
test
|
|
30
|
+
build
|
|
31
|
+
ci
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
## v7.0.0 (2026-06-20)
|
|
2
|
+
|
|
3
|
+
### BREAKING CHANGE
|
|
4
|
+
|
|
5
|
+
- Task(channels=...) and the NotificationChannel API are removed;
|
|
6
|
+
HTMLEmailStyle.style and traced_vars_frame_filter are removed (the latter moves
|
|
7
|
+
to Task). Per-task email/webhook alerts are replaced by report.notify.
|
|
8
|
+
|
|
9
|
+
### Feat
|
|
10
|
+
|
|
11
|
+
- add process name to report, email subject, and webhook payload
|
|
12
|
+
- normalize task names to lowercase for case-insensitive matching
|
|
13
|
+
- delegate notifications to ProcessExecutionReport, drop per-task channels
|
|
14
|
+
- replace notify_errors with notify(only_errors=...) and add task filter
|
|
15
|
+
- implement WebhookChannel and EmailChannel send_report
|
|
16
|
+
- add ReportChannel architecture for report notifications
|
|
17
|
+
- add ProcessExecutionReport.notify/.notify_errors stubs
|
|
18
|
+
- add ProcessExecutionReport.to_json
|
|
19
|
+
- add graph mutation methods to Process
|
|
20
|
+
|
|
21
|
+
### Refactor
|
|
22
|
+
|
|
23
|
+
- group communication code into a comms/ package
|
|
24
|
+
- unify SMTP and webhook transport behind single classes
|
|
25
|
+
- extract task value types to leaf module, break import cycle
|
|
26
|
+
|
|
27
|
+
### Perf
|
|
28
|
+
|
|
29
|
+
- cache palette CSS and report template loading
|
|
30
|
+
- cache language string loading
|
|
31
|
+
- add slots=True to frozen value types
|
|
32
|
+
|
|
33
|
+
## v6.0.0 (2026-06-15)
|
|
34
|
+
|
|
35
|
+
### BREAKING CHANGE
|
|
36
|
+
|
|
37
|
+
- Process.run() returns ProcessExecutionReport instead of
|
|
38
|
+
ProcessResult. Use report.successes / report.errored / report.skipped
|
|
39
|
+
instead of passed_tasks_results / errored_tasks / skipped_tasks, and
|
|
40
|
+
report.entries[name].result / .error instead of
|
|
41
|
+
passed_tasks_results[name] / failed_tasks_results[name].
|
|
42
|
+
|
|
43
|
+
### Feat
|
|
44
|
+
|
|
45
|
+
- remove ProcessResult, have Process.run() return ProcessExecutionReport
|
|
46
|
+
- expand TaskStatus with PENDING and add status field to TaskResult
|
|
47
|
+
- add ProcessExecutionReport for per-task execution summaries
|
|
48
|
+
- track failed task results in ProcessRunner and ProcessResult
|
|
49
|
+
- promote ErrorData to public API and add timing/attempts to TaskResult
|
|
50
|
+
|
|
51
|
+
### Fix
|
|
52
|
+
|
|
53
|
+
- make Task.run never propagate dependency-resolution failures
|
|
54
|
+
|
|
55
|
+
### Refactor
|
|
56
|
+
|
|
57
|
+
- drop _is_unrunnable side effect and reuse TaskResult helpers
|
|
58
|
+
|
|
59
|
+
## v5.0.0 (2026-06-14)
|
|
60
|
+
|
|
61
|
+
### BREAKING CHANGE
|
|
62
|
+
|
|
63
|
+
- log_path and func swap positions; existing positional
|
|
64
|
+
Task(name, log_path, func, ...) calls must be updated to
|
|
65
|
+
Task(name, func, log_path, ...).
|
|
66
|
+
|
|
67
|
+
### Feat
|
|
68
|
+
|
|
69
|
+
- add nest_under option to WebhookConfig for nested payload envelopes
|
|
70
|
+
- make Task.log_path optional, reorder constructor signature
|
|
71
|
+
|
|
72
|
+
## v4.1.0 (2026-06-14)
|
|
73
|
+
|
|
74
|
+
### Feat
|
|
75
|
+
|
|
76
|
+
- add extra_payload to WebhookConfig for service-specific routing keys
|
|
77
|
+
- include traced variables in task logfiles
|
|
78
|
+
- add generic WebhookChannel with optional HMAC body signing
|
|
79
|
+
|
|
80
|
+
### Refactor
|
|
81
|
+
|
|
82
|
+
- make traced_vars a plain {name: repr(value)} dict
|
|
83
|
+
|
|
84
|
+
## v4.0.0 (2026-06-14)
|
|
85
|
+
|
|
86
|
+
### BREAKING CHANGE
|
|
87
|
+
|
|
88
|
+
- Task no longer accepts smtp_config or email_style.
|
|
89
|
+
Pass channels=[EmailChannel(smtp_config, style)] instead.
|
|
90
|
+
|
|
91
|
+
### Feat
|
|
92
|
+
|
|
93
|
+
- add NotificationChannel abstraction with file and email channels
|
|
94
|
+
|
|
95
|
+
### Refactor
|
|
96
|
+
|
|
97
|
+
- configure email alerts via channels instead of Task smtp_config
|
|
98
|
+
- keep file and email channel implementations internal
|
|
99
|
+
- build task handlers through notification channels
|
|
100
|
+
|
|
101
|
+
## v3.1.1 (2026-06-13)
|
|
102
|
+
|
|
103
|
+
### Refactor
|
|
104
|
+
|
|
105
|
+
- rename _log_formatting to _logfile_formatting and _TaskLogFormatter to _TaskLogfileFormatter
|
|
106
|
+
|
|
107
|
+
## v3.1.0 (2026-06-13)
|
|
108
|
+
|
|
109
|
+
### Feat
|
|
110
|
+
|
|
111
|
+
- **logging**: include failure context in task logfiles
|
|
112
|
+
|
|
113
|
+
### Refactor
|
|
114
|
+
|
|
115
|
+
- extract typed _ErrorData from task_context via shared base formatter
|
|
116
|
+
- inline single-use _task_context_lines helper
|
|
117
|
+
- move task logfile formatting out of _email_internals
|
|
118
|
+
|
|
119
|
+
## v3.0.1 (2026-06-13)
|
|
120
|
+
|
|
121
|
+
### Refactor
|
|
122
|
+
|
|
123
|
+
- **process**: use bare raise and extract _is_done helper
|
|
124
|
+
|
|
125
|
+
## v3.0.0 (2026-06-13)
|
|
126
|
+
|
|
127
|
+
### BREAKING CHANGE
|
|
128
|
+
|
|
129
|
+
- html_mail_handler parameter removed from Task; use
|
|
130
|
+
smtp_config and email_style instead. HTMLSMTPHandler removed from public API.
|
|
131
|
+
|
|
132
|
+
### Feat
|
|
133
|
+
|
|
134
|
+
- **html_logging**: expose last_path_traced_vars on HTMLSMTPHandler
|
|
135
|
+
|
|
136
|
+
### Refactor
|
|
137
|
+
|
|
138
|
+
- **email**: replace HTMLSMTPHandler with SMTPConfig/HTMLEmailStyle
|
|
139
|
+
|
|
140
|
+
## v2.0.1 (2026-06-12)
|
|
141
|
+
|
|
142
|
+
### Fix
|
|
143
|
+
|
|
144
|
+
- **publish.yml**: remove unneeded step ruff format check in quality-gate
|
|
145
|
+
|
|
146
|
+
## v2.0.0 (2026-06-12)
|
|
147
|
+
|
|
148
|
+
### BREAKING CHANGE
|
|
149
|
+
|
|
150
|
+
- log records no longer carry
|
|
151
|
+
``post_traceback_html_body``. Consumers introspecting that attribute
|
|
152
|
+
must read ``record.task_context`` instead.
|
|
153
|
+
|
|
154
|
+
### Feat
|
|
155
|
+
|
|
156
|
+
- **email_alerting**: Traced Variables section with file:line reference in email body
|
|
157
|
+
- **email_alerting**: language alternatives for HTML email body
|
|
158
|
+
- **email_alerting**: template-driven HTML body from pure metadata
|
|
159
|
+
|
|
160
|
+
### Fix
|
|
161
|
+
|
|
162
|
+
- **process**: parallel runner no longer raises on unrunnable tail
|
|
163
|
+
|
|
164
|
+
## v1.0.5 (2026-01-19)
|
|
165
|
+
|
|
166
|
+
### Fix
|
|
167
|
+
|
|
168
|
+
- **docs**: added urls to pyproject file
|
|
169
|
+
|
|
170
|
+
## v1.0.4 (2026-01-19)
|
|
171
|
+
|
|
172
|
+
### Fix
|
|
173
|
+
|
|
174
|
+
- **docs**: added pypi badge and pip install instruction to readme
|
|
175
|
+
|
|
176
|
+
## v1.0.3 (2026-01-19)
|
|
177
|
+
|
|
178
|
+
### Fix
|
|
179
|
+
|
|
180
|
+
- **docs**: changes in readme and index of docs to show banner
|
|
181
|
+
|
|
182
|
+
## v1.0.2 (2026-01-19)
|
|
183
|
+
|
|
184
|
+
### Fix
|
|
185
|
+
|
|
186
|
+
- **ci**: added a workflow for publishing to pypi
|
|
187
|
+
|
|
188
|
+
## v1.0.1 (2026-01-19)
|
|
189
|
+
|
|
190
|
+
### Fix
|
|
191
|
+
|
|
192
|
+
- **lint**: fix ruff formatting
|
|
193
|
+
|
|
194
|
+
## v1.0.0 (2026-01-19)
|
|
195
|
+
|
|
196
|
+
### BREAKING CHANGE
|
|
197
|
+
|
|
198
|
+
- Task.run method had one of its kwargs removed
|
|
199
|
+
|
|
200
|
+
### Fix
|
|
201
|
+
|
|
202
|
+
- **Task-can-no-longer-pass-logger-to-its-function.-Changed-some-examples,-documentations-and-better-type-hints**: Task.run method no longer can pass logger to its function as kwarg
|
|
203
|
+
|
|
204
|
+
## v0.1.0 (2026-01-18)
|