taskmaestro 0.1.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 (48) hide show
  1. taskmaestro-0.1.0/.github/workflows/ci.yml +40 -0
  2. taskmaestro-0.1.0/.github/workflows/publish.yml +46 -0
  3. taskmaestro-0.1.0/.gitignore +15 -0
  4. taskmaestro-0.1.0/LICENSE +674 -0
  5. taskmaestro-0.1.0/PKG-INFO +358 -0
  6. taskmaestro-0.1.0/README.md +328 -0
  7. taskmaestro-0.1.0/examples/image_processing/inner_workflow.yaml +18 -0
  8. taskmaestro-0.1.0/examples/image_processing/input.yaml +6 -0
  9. taskmaestro-0.1.0/examples/image_processing/pipeline.py +377 -0
  10. taskmaestro-0.1.0/examples/image_processing/workflow.yaml +23 -0
  11. taskmaestro-0.1.0/examples/resinsight/input.yaml +26 -0
  12. taskmaestro-0.1.0/examples/resinsight/pipeline.py +449 -0
  13. taskmaestro-0.1.0/examples/resinsight/workflow.yaml +55 -0
  14. taskmaestro-0.1.0/examples/text_analysis/input.yaml +17 -0
  15. taskmaestro-0.1.0/examples/text_analysis/pipeline.py +532 -0
  16. taskmaestro-0.1.0/examples/text_analysis/workflow.yaml +39 -0
  17. taskmaestro-0.1.0/pyproject.toml +67 -0
  18. taskmaestro-0.1.0/taskmaestro/__init__.py +57 -0
  19. taskmaestro-0.1.0/taskmaestro/context.py +37 -0
  20. taskmaestro-0.1.0/taskmaestro/exceptions.py +37 -0
  21. taskmaestro-0.1.0/taskmaestro/hooks/__init__.py +15 -0
  22. taskmaestro-0.1.0/taskmaestro/hooks/base.py +57 -0
  23. taskmaestro-0.1.0/taskmaestro/hooks/logging.py +44 -0
  24. taskmaestro-0.1.0/taskmaestro/hooks/persistence.py +24 -0
  25. taskmaestro-0.1.0/taskmaestro/hooks/timing.py +46 -0
  26. taskmaestro-0.1.0/taskmaestro/job.py +116 -0
  27. taskmaestro-0.1.0/taskmaestro/object_model.py +19 -0
  28. taskmaestro-0.1.0/taskmaestro/py.typed +0 -0
  29. taskmaestro-0.1.0/taskmaestro/runner.py +201 -0
  30. taskmaestro-0.1.0/taskmaestro/task.py +77 -0
  31. taskmaestro-0.1.0/taskmaestro/visualization.py +223 -0
  32. taskmaestro-0.1.0/taskmaestro/workflow.py +484 -0
  33. taskmaestro-0.1.0/taskmaestro/workflow_task.py +94 -0
  34. taskmaestro-0.1.0/taskmaestro/yaml_config.py +455 -0
  35. taskmaestro-0.1.0/taskmaestro.png +0 -0
  36. taskmaestro-0.1.0/tests/__init__.py +0 -0
  37. taskmaestro-0.1.0/tests/conftest.py +164 -0
  38. taskmaestro-0.1.0/tests/test_context.py +55 -0
  39. taskmaestro-0.1.0/tests/test_exceptions.py +43 -0
  40. taskmaestro-0.1.0/tests/test_hooks.py +218 -0
  41. taskmaestro-0.1.0/tests/test_job.py +133 -0
  42. taskmaestro-0.1.0/tests/test_object_model.py +65 -0
  43. taskmaestro-0.1.0/tests/test_runner.py +432 -0
  44. taskmaestro-0.1.0/tests/test_task.py +223 -0
  45. taskmaestro-0.1.0/tests/test_visualization.py +464 -0
  46. taskmaestro-0.1.0/tests/test_workflow.py +767 -0
  47. taskmaestro-0.1.0/tests/test_workflow_task.py +451 -0
  48. taskmaestro-0.1.0/tests/test_yaml_config.py +1445 -0
@@ -0,0 +1,40 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ jobs:
9
+ ci:
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ python-version: ["3.12", "3.13"]
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Set up Python ${{ matrix.python-version }}
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: ${{ matrix.python-version }}
23
+
24
+ - name: Install dependencies
25
+ run: pip install -e ".[dev]"
26
+
27
+ - name: Ruff check
28
+ if: matrix.python-version == '3.12'
29
+ run: ruff check taskmaestro/ tests/
30
+
31
+ - name: Ruff format check
32
+ if: matrix.python-version == '3.12'
33
+ run: ruff format --check taskmaestro/ tests/
34
+
35
+ - name: Mypy type check
36
+ if: matrix.python-version == '3.12'
37
+ run: mypy taskmaestro
38
+
39
+ - name: Run tests with coverage
40
+ run: pytest --cov=taskmaestro --cov-report=term-missing
@@ -0,0 +1,46 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags: ["v*"]
6
+
7
+ jobs:
8
+ build:
9
+ name: Build distributions
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+
14
+ - name: Set up Python
15
+ uses: actions/setup-python@v5
16
+ with:
17
+ python-version: "3.12"
18
+
19
+ - name: Install build
20
+ run: pip install build
21
+
22
+ - name: Build sdist and wheel
23
+ run: python -m build
24
+
25
+ - name: Upload dist artifact
26
+ uses: actions/upload-artifact@v4
27
+ with:
28
+ name: dist
29
+ path: dist/
30
+
31
+ publish:
32
+ name: Publish to PyPI
33
+ needs: build
34
+ runs-on: ubuntu-latest
35
+ environment: pypi
36
+ permissions:
37
+ id-token: write
38
+ steps:
39
+ - name: Download dist artifact
40
+ uses: actions/download-artifact@v4
41
+ with:
42
+ name: dist
43
+ path: dist/
44
+
45
+ - name: Publish via trusted publishing
46
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,15 @@
1
+ __pycache__/
2
+ *.pyc
3
+ .venv/
4
+ *.egg-info/
5
+ .pytest_cache/
6
+ .mypy_cache/
7
+ .ruff_cache/
8
+ dist/
9
+ build/
10
+ .claude/
11
+ .bash_history
12
+ .coverage
13
+ docker-utils/
14
+ instructions.txt
15
+ workflow-runner-design-doc.md