ddeutil-workflow 0.0.52__tar.gz → 0.0.54__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.
- {ddeutil_workflow-0.0.52/src/ddeutil_workflow.egg-info → ddeutil_workflow-0.0.54}/PKG-INFO +1 -7
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/README.md +0 -6
- ddeutil_workflow-0.0.54/src/ddeutil/workflow/__about__.py +1 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/api/api.py +1 -1
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/api/routes/job.py +2 -2
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/job.py +112 -160
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/stages.py +664 -388
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/utils.py +5 -4
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/workflow.py +105 -230
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54/src/ddeutil_workflow.egg-info}/PKG-INFO +1 -7
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil_workflow.egg-info/SOURCES.txt +3 -3
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_job_exec.py +116 -42
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_job_exec_strategy.py +64 -36
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_reusables_template.py +5 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_stage.py +3 -3
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_stage_handler_exec.py +104 -22
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_utils.py +1 -1
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_workflow.py +3 -4
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_workflow_exec.py +187 -80
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_workflow_exec_job.py +27 -4
- ddeutil_workflow-0.0.52/src/ddeutil/workflow/__about__.py +0 -1
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/LICENSE +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/pyproject.toml +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/setup.cfg +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/__cron.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/__init__.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/__main__.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/__types.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/api/__init__.py +0 -0
- /ddeutil_workflow-0.0.52/src/ddeutil/workflow/api/log.py → /ddeutil_workflow-0.0.54/src/ddeutil/workflow/api/logs.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/api/routes/__init__.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/api/routes/logs.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/api/routes/schedules.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/api/routes/workflows.py +0 -0
- /ddeutil_workflow-0.0.52/src/ddeutil/workflow/api/repeat.py → /ddeutil_workflow-0.0.54/src/ddeutil/workflow/api/utils.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/conf.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/cron.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/exceptions.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/logs.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/params.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/result.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/reusables.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil/workflow/scheduler.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil_workflow.egg-info/dependency_links.txt +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil_workflow.egg-info/requires.txt +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/src/ddeutil_workflow.egg-info/top_level.txt +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test__cron.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test__regex.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_conf.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_cron_on.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_job.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_logs_audit.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_logs_trace.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_params.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_release.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_release_queue.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_result.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_reusables_call_tag.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_reusables_template_filter.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_schedule.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_schedule_pending.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_schedule_tasks.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_schedule_workflow.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_scheduler_control.py +0 -0
- /ddeutil_workflow-0.0.52/tests/test_job_strategy.py → /ddeutil_workflow-0.0.54/tests/test_strategy.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_workflow_exec_poke.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_workflow_exec_release.py +0 -0
- {ddeutil_workflow-0.0.52 → ddeutil_workflow-0.0.54}/tests/test_workflow_task.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ddeutil-workflow
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.54
|
4
4
|
Summary: Lightweight workflow orchestration
|
5
5
|
Author-email: ddeutils <korawich.anu@gmail.com>
|
6
6
|
License: MIT
|
@@ -62,12 +62,6 @@ by a `.yaml` template.
|
|
62
62
|
> use the workflow stage to process any large volume data which use a lot of compute
|
63
63
|
> resource :cold_sweat:.
|
64
64
|
|
65
|
-
In my opinion, I think it should not create duplicate workflow codes if I can
|
66
|
-
write with dynamic input parameters on the one template workflow that just change
|
67
|
-
the input parameters per use-case instead.
|
68
|
-
This way I can handle a lot of logical workflows in our orgs with only metadata
|
69
|
-
configuration. It called **Metadata Driven Data Workflow**.
|
70
|
-
|
71
65
|
---
|
72
66
|
|
73
67
|
**:pushpin: <u>Rules of This Workflow engine</u>**:
|
@@ -17,12 +17,6 @@ by a `.yaml` template.
|
|
17
17
|
> use the workflow stage to process any large volume data which use a lot of compute
|
18
18
|
> resource :cold_sweat:.
|
19
19
|
|
20
|
-
In my opinion, I think it should not create duplicate workflow codes if I can
|
21
|
-
write with dynamic input parameters on the one template workflow that just change
|
22
|
-
the input parameters per use-case instead.
|
23
|
-
This way I can handle a lot of logical workflows in our orgs with only metadata
|
24
|
-
configuration. It called **Metadata Driven Data Workflow**.
|
25
|
-
|
26
20
|
---
|
27
21
|
|
28
22
|
**:pushpin: <u>Rules of This Workflow engine</u>**:
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__: str = "0.0.54"
|
@@ -24,8 +24,8 @@ from ..conf import api_config, config
|
|
24
24
|
from ..logs import get_logger
|
25
25
|
from ..scheduler import ReleaseThread, ReleaseThreads
|
26
26
|
from ..workflow import ReleaseQueue, WorkflowTask
|
27
|
-
from .repeat import repeat_at
|
28
27
|
from .routes import job, log
|
28
|
+
from .utils import repeat_at
|
29
29
|
|
30
30
|
load_dotenv()
|
31
31
|
logger = get_logger("uvicorn.error")
|
@@ -39,7 +39,7 @@ async def job_execute(
|
|
39
39
|
job: Job,
|
40
40
|
params: dict[str, Any],
|
41
41
|
):
|
42
|
-
"""Execute job via
|
42
|
+
"""Execute job via RestAPI."""
|
43
43
|
rs: Result = Result(
|
44
44
|
context=result.context,
|
45
45
|
run_id=result.run_id,
|
@@ -56,7 +56,7 @@ async def job_execute(
|
|
56
56
|
to=context,
|
57
57
|
)
|
58
58
|
except JobException as err:
|
59
|
-
rs.trace.error(f"[
|
59
|
+
rs.trace.error(f"[JOB]: {err.__class__.__name__}: {err}")
|
60
60
|
|
61
61
|
return {
|
62
62
|
"message": "Start execute job via API.",
|