processes 1.0.5__tar.gz → 3.0.1__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-3.0.1/.github/PULL_REQUEST_TEMPLATE.md +10 -0
- {processes-1.0.5 → processes-3.0.1}/.github/workflows/docs.yml +11 -0
- {processes-1.0.5 → processes-3.0.1}/.github/workflows/lint.yml +4 -0
- {processes-1.0.5 → processes-3.0.1}/.github/workflows/mypy.yml +4 -0
- {processes-1.0.5 → processes-3.0.1}/.github/workflows/publish.yml +0 -3
- {processes-1.0.5 → processes-3.0.1}/.gitignore +2 -0
- processes-3.0.1/CHANGELOG.md +86 -0
- processes-3.0.1/CONTRIBUTING.md +135 -0
- processes-3.0.1/PKG-INFO +407 -0
- processes-3.0.1/README.md +383 -0
- {processes-1.0.5 → processes-3.0.1}/assets/banner.svg +53 -22
- processes-3.0.1/assets/logo.png +0 -0
- processes-3.0.1/assets/logo.svg +71 -0
- processes-3.0.1/assets/social_banner.png +0 -0
- processes-3.0.1/assets/social_banner.svg +100 -0
- processes-3.0.1/docs/assets/favicon.svg +26 -0
- processes-3.0.1/docs/examples/advanced.md +220 -0
- processes-3.0.1/docs/examples/basic.md +160 -0
- processes-3.0.1/docs/examples/intro.md +13 -0
- processes-1.0.5/PKG-INFO → processes-3.0.1/docs/index.md +57 -30
- processes-3.0.1/docs/reference.md +10 -0
- {processes-1.0.5 → processes-3.0.1}/examples/02_task_dependencies_result_passing/README.md +1 -1
- processes-3.0.1/examples/README.md +40 -0
- processes-3.0.1/mkdocs.yml +53 -0
- {processes-1.0.5 → processes-3.0.1}/src/processes/__init__.py +6 -7
- processes-3.0.1/src/processes/_email_internals.py +173 -0
- processes-3.0.1/src/processes/_tb_utils.py +79 -0
- processes-3.0.1/src/processes/email_config.py +99 -0
- processes-3.0.1/src/processes/exceptions.py +36 -0
- {processes-1.0.5 → processes-3.0.1}/src/processes/process.py +79 -54
- processes-3.0.1/src/processes/task.py +434 -0
- processes-3.0.1/src/processes/themes/languages/de.json +15 -0
- processes-3.0.1/src/processes/themes/languages/en.json +15 -0
- processes-3.0.1/src/processes/themes/languages/es.json +15 -0
- processes-3.0.1/src/processes/themes/languages/fr.json +15 -0
- processes-3.0.1/src/processes/themes/languages/it.json +15 -0
- processes-3.0.1/src/processes/themes/languages/pt.json +15 -0
- processes-3.0.1/src/processes/themes/palettes/catppuccin.css +11 -0
- processes-3.0.1/src/processes/themes/palettes/neobones.css +11 -0
- processes-3.0.1/src/processes/themes/palettes/neutral.css +11 -0
- processes-3.0.1/src/processes/themes/palettes/slate.css +11 -0
- processes-3.0.1/src/processes/themes/styles/classic.html +49 -0
- processes-3.0.1/src/processes/themes/styles/compact.html +67 -0
- processes-3.0.1/src/processes/themes/styles/modern.html +115 -0
- processes-3.0.1/tests/base_test.py +62 -0
- processes-3.0.1/tests/manual_tests/__init__.py +0 -0
- processes-3.0.1/tests/manual_tests/manual_pipeline_inspect.py +423 -0
- processes-3.0.1/tests/manual_tests/manual_themed_tracebacks.py +306 -0
- processes-3.0.1/tests/test_args_kwargs.py +125 -0
- processes-3.0.1/tests/test_complex_dag_failures.py +295 -0
- processes-3.0.1/tests/test_dependencies.py +232 -0
- processes-3.0.1/tests/test_email_themes.py +530 -0
- processes-3.0.1/tests/test_logfiles.py +84 -0
- processes-3.0.1/tests/test_normal_run_no_errors.py +125 -0
- processes-3.0.1/tests/test_parallel_race_conditions.py +239 -0
- processes-3.0.1/tests/test_timeout_retry.py +337 -0
- processes-3.0.1/tests/test_unique_name.py +40 -0
- processes-1.0.5/CHANGELOG.md +0 -41
- processes-1.0.5/README.md +0 -143
- processes-1.0.5/docs/index.md +0 -127
- processes-1.0.5/docs/reference.md +0 -6
- processes-1.0.5/examples/README.md +0 -112
- processes-1.0.5/mkdocs.yml +0 -31
- processes-1.0.5/src/processes/html_logging.py +0 -201
- processes-1.0.5/src/processes/task.py +0 -302
- processes-1.0.5/tests/log_cleaner.py +0 -8
- processes-1.0.5/tests/mail_config.example.toml +0 -13
- processes-1.0.5/tests/manual_test_email.py +0 -103
- processes-1.0.5/tests/test_args_kwargs.py +0 -166
- processes-1.0.5/tests/test_dependencies.py +0 -266
- processes-1.0.5/tests/test_examples.py +0 -17
- processes-1.0.5/tests/test_logfiles.py +0 -130
- processes-1.0.5/tests/test_normal_run_no_errors.py +0 -166
- processes-1.0.5/tests/test_unique_name.py +0 -45
- {processes-1.0.5 → processes-3.0.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {processes-1.0.5 → processes-3.0.1}/.github/ISSUE_TEMPLATE/custom.md +0 -0
- {processes-1.0.5 → processes-3.0.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {processes-1.0.5 → processes-3.0.1}/.github/workflows/lint-pr.yml +0 -0
- {processes-1.0.5 → processes-3.0.1}/.github/workflows/tags.yml +0 -0
- {processes-1.0.5 → processes-3.0.1}/.github/workflows/tests.yml +0 -0
- {processes-1.0.5 → processes-3.0.1}/LICENSE +0 -0
- {processes-1.0.5 → processes-3.0.1}/examples/01_basic_tasks_and_dependencies/README.md +0 -0
- {processes-1.0.5 → processes-3.0.1}/examples/01_basic_tasks_and_dependencies/example1.py +0 -0
- {processes-1.0.5 → processes-3.0.1}/examples/02_task_dependencies_result_passing/example2.py +0 -0
- {processes-1.0.5 → processes-3.0.1}/pyproject.toml +0 -0
- {processes-1.0.5 → processes-3.0.1}/pytest.ini +0 -0
- {processes-1.0.5 → processes-3.0.1}/tests/__init__.py +0 -0
- {processes-1.0.5 → processes-3.0.1}/uv.lock +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
## What and why
|
|
2
|
+
<!-- Describe the change and the motivation behind it -->
|
|
3
|
+
|
|
4
|
+
## Type of change
|
|
5
|
+
- [ ] `feat` — new feature
|
|
6
|
+
- [ ] `fix` — bug fix
|
|
7
|
+
- [ ] `refactor` — no behavior change
|
|
8
|
+
- [ ] `docs` — documentation only
|
|
9
|
+
- [ ] `test` — tests only
|
|
10
|
+
- [ ] `chore` / `ci` / `build`
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
## v3.0.1 (2026-06-13)
|
|
2
|
+
|
|
3
|
+
### Refactor
|
|
4
|
+
|
|
5
|
+
- **process**: use bare raise and extract _is_done helper
|
|
6
|
+
|
|
7
|
+
## v3.0.0 (2026-06-13)
|
|
8
|
+
|
|
9
|
+
### BREAKING CHANGE
|
|
10
|
+
|
|
11
|
+
- html_mail_handler parameter removed from Task; use
|
|
12
|
+
smtp_config and email_style instead. HTMLSMTPHandler removed from public API.
|
|
13
|
+
|
|
14
|
+
### Feat
|
|
15
|
+
|
|
16
|
+
- **html_logging**: expose last_path_traced_vars on HTMLSMTPHandler
|
|
17
|
+
|
|
18
|
+
### Refactor
|
|
19
|
+
|
|
20
|
+
- **email**: replace HTMLSMTPHandler with SMTPConfig/HTMLEmailStyle
|
|
21
|
+
|
|
22
|
+
## v2.0.1 (2026-06-12)
|
|
23
|
+
|
|
24
|
+
### Fix
|
|
25
|
+
|
|
26
|
+
- **publish.yml**: remove unneeded step ruff format check in quality-gate
|
|
27
|
+
|
|
28
|
+
## v2.0.0 (2026-06-12)
|
|
29
|
+
|
|
30
|
+
### BREAKING CHANGE
|
|
31
|
+
|
|
32
|
+
- log records no longer carry
|
|
33
|
+
``post_traceback_html_body``. Consumers introspecting that attribute
|
|
34
|
+
must read ``record.task_context`` instead.
|
|
35
|
+
|
|
36
|
+
### Feat
|
|
37
|
+
|
|
38
|
+
- **email_alerting**: Traced Variables section with file:line reference in email body
|
|
39
|
+
- **email_alerting**: language alternatives for HTML email body
|
|
40
|
+
- **email_alerting**: template-driven HTML body from pure metadata
|
|
41
|
+
|
|
42
|
+
### Fix
|
|
43
|
+
|
|
44
|
+
- **process**: parallel runner no longer raises on unrunnable tail
|
|
45
|
+
|
|
46
|
+
## v1.0.5 (2026-01-19)
|
|
47
|
+
|
|
48
|
+
### Fix
|
|
49
|
+
|
|
50
|
+
- **docs**: added urls to pyproject file
|
|
51
|
+
|
|
52
|
+
## v1.0.4 (2026-01-19)
|
|
53
|
+
|
|
54
|
+
### Fix
|
|
55
|
+
|
|
56
|
+
- **docs**: added pypi badge and pip install instruction to readme
|
|
57
|
+
|
|
58
|
+
## v1.0.3 (2026-01-19)
|
|
59
|
+
|
|
60
|
+
### Fix
|
|
61
|
+
|
|
62
|
+
- **docs**: changes in readme and index of docs to show banner
|
|
63
|
+
|
|
64
|
+
## v1.0.2 (2026-01-19)
|
|
65
|
+
|
|
66
|
+
### Fix
|
|
67
|
+
|
|
68
|
+
- **ci**: added a workflow for publishing to pypi
|
|
69
|
+
|
|
70
|
+
## v1.0.1 (2026-01-19)
|
|
71
|
+
|
|
72
|
+
### Fix
|
|
73
|
+
|
|
74
|
+
- **lint**: fix ruff formatting
|
|
75
|
+
|
|
76
|
+
## v1.0.0 (2026-01-19)
|
|
77
|
+
|
|
78
|
+
### BREAKING CHANGE
|
|
79
|
+
|
|
80
|
+
- Task.run method had one of its kwargs removed
|
|
81
|
+
|
|
82
|
+
### Fix
|
|
83
|
+
|
|
84
|
+
- **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
|
|
85
|
+
|
|
86
|
+
## v0.1.0 (2026-01-18)
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Contributing to Processes
|
|
2
|
+
|
|
3
|
+
Thanks for your interest in contributing! This document covers the two
|
|
4
|
+
contributor paths, project conventions, and how to submit a change.
|
|
5
|
+
|
|
6
|
+
## Contributor paths
|
|
7
|
+
|
|
8
|
+
**Maintainer** (direct push access): clone the repository directly.
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
git clone https://github.com/oliverm91/processes.git
|
|
12
|
+
cd processes
|
|
13
|
+
uv sync
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**External contributor** (everyone else): fork first, then clone your fork.
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 1. Fork on GitHub (button top-right of the repo page)
|
|
20
|
+
# 2. Clone your fork
|
|
21
|
+
git clone https://github.com/<your-username>/processes.git
|
|
22
|
+
cd processes
|
|
23
|
+
uv sync
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Both paths use [uv](https://docs.astral.sh/uv/) for dependency management.
|
|
27
|
+
`uv sync` installs all dev dependencies (pytest, mypy, ruff, mkdocs, commitizen).
|
|
28
|
+
|
|
29
|
+
## Project layout
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
src/processes/ # library source (the public package)
|
|
33
|
+
tests/ # pytest test suite
|
|
34
|
+
examples/ # runnable usage examples
|
|
35
|
+
docs/ # mkdocs documentation source
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Keep new public symbols in `src/processes/` and re-export them from
|
|
39
|
+
`src/processes/__init__.py` if they are part of the stable API.
|
|
40
|
+
|
|
41
|
+
## Running checks locally
|
|
42
|
+
|
|
43
|
+
Before opening a pull request, make sure the following pass:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
uv run pytest # test suite
|
|
47
|
+
uv run mypy # strict type checking
|
|
48
|
+
uv run ruff check . # linting
|
|
49
|
+
uv run ruff format . # formatting
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
CI runs the same checks on every push and pull request.
|
|
53
|
+
|
|
54
|
+
## Style guide
|
|
55
|
+
|
|
56
|
+
- Python >= 3.10 syntax.
|
|
57
|
+
- Type hints on all new code. `mypy` is configured with `strict = true` and
|
|
58
|
+
`disallow_untyped_defs = true`.
|
|
59
|
+
- Ruff rules: `F`, `E`, `W`, `I`, `B`, `UP`. Line length is 100.
|
|
60
|
+
- Prefer the standard library — the library has zero runtime dependencies.
|
|
61
|
+
- No comments that just restate the code. A comment is welcome only when it
|
|
62
|
+
captures a non-obvious *why*.
|
|
63
|
+
|
|
64
|
+
## Tests
|
|
65
|
+
|
|
66
|
+
- Add or update tests in `tests/` for any behavior change.
|
|
67
|
+
- Keep tests focused and deterministic; avoid sleeps where possible.
|
|
68
|
+
- If you fix a bug, add a regression test that fails before the fix.
|
|
69
|
+
|
|
70
|
+
## Commit messages
|
|
71
|
+
|
|
72
|
+
This project follows [Conventional Commits](https://www.conventionalcommits.org/),
|
|
73
|
+
enforced by [commitizen](https://commitizen-tools.github.io/commitizen/). Use
|
|
74
|
+
`uv run cz commit` to be prompted through an interactive commit, or write the
|
|
75
|
+
message by hand:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
<type>(<scope>): <short description>
|
|
79
|
+
|
|
80
|
+
<optional body>
|
|
81
|
+
|
|
82
|
+
<optional footer>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Common types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`,
|
|
86
|
+
`build`, `ci`.
|
|
87
|
+
|
|
88
|
+
## Submitting a pull request
|
|
89
|
+
|
|
90
|
+
1. Create a feature branch: `git checkout -b feat/my-change`.
|
|
91
|
+
2. Make your changes, add tests, and confirm all checks pass.
|
|
92
|
+
3. Push the branch to your fork (or directly, if you're a maintainer) and open
|
|
93
|
+
a PR against `main` on the upstream repository.
|
|
94
|
+
4. Fill in a clear description of the *what* and the *why*.
|
|
95
|
+
5. Make sure CI is green and the changelog preview looks reasonable for
|
|
96
|
+
user-visible changes.
|
|
97
|
+
6. Be ready to revise — code review is a normal part of the process.
|
|
98
|
+
|
|
99
|
+
Prefer several small, focused PRs over one large one.
|
|
100
|
+
|
|
101
|
+
## Documentation
|
|
102
|
+
|
|
103
|
+
User-facing changes should be reflected in the docs under `docs/`. To preview
|
|
104
|
+
locally:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
uv run mkdocs serve
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Versioning and releases
|
|
111
|
+
|
|
112
|
+
Versions are derived from git tags via `hatch-vcs` (`v$version`, e.g. `v2.0.1`).
|
|
113
|
+
Do not edit the version in `pyproject.toml` manually. To cut a release, the
|
|
114
|
+
maintainer runs:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
uv run cz bump
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
This updates the version, regenerates the changelog, creates a tag, and
|
|
121
|
+
triggers the `publish.yml` workflow to push the release to PyPI.
|
|
122
|
+
|
|
123
|
+
## Reporting issues
|
|
124
|
+
|
|
125
|
+
Use the GitHub issue tracker. Please include:
|
|
126
|
+
|
|
127
|
+
- A minimal, self-contained reproduction.
|
|
128
|
+
- The Python version, library version, and operating system.
|
|
129
|
+
- The full traceback for crashes, and the smallest possible task graph that
|
|
130
|
+
triggers the problem.
|
|
131
|
+
|
|
132
|
+
## License
|
|
133
|
+
|
|
134
|
+
By contributing, you agree that your contributions will be licensed under the
|
|
135
|
+
MIT License.
|