ddeutil-workflow 0.0.77__py3-none-any.whl → 0.0.79__py3-none-any.whl
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/__about__.py +1 -1
- ddeutil/workflow/__init__.py +1 -5
- ddeutil/workflow/api/routes/job.py +2 -2
- ddeutil/workflow/audits.py +554 -112
- ddeutil/workflow/cli.py +25 -3
- ddeutil/workflow/conf.py +16 -28
- ddeutil/workflow/errors.py +13 -15
- ddeutil/workflow/event.py +37 -41
- ddeutil/workflow/job.py +161 -92
- ddeutil/workflow/params.py +172 -58
- ddeutil/workflow/plugins/__init__.py +0 -0
- ddeutil/workflow/plugins/providers/__init__.py +0 -0
- ddeutil/workflow/plugins/providers/aws.py +908 -0
- ddeutil/workflow/plugins/providers/az.py +1003 -0
- ddeutil/workflow/plugins/providers/container.py +703 -0
- ddeutil/workflow/plugins/providers/gcs.py +826 -0
- ddeutil/workflow/result.py +35 -37
- ddeutil/workflow/reusables.py +153 -96
- ddeutil/workflow/stages.py +84 -60
- ddeutil/workflow/traces.py +1660 -521
- ddeutil/workflow/utils.py +111 -69
- ddeutil/workflow/workflow.py +74 -47
- {ddeutil_workflow-0.0.77.dist-info → ddeutil_workflow-0.0.79.dist-info}/METADATA +52 -20
- ddeutil_workflow-0.0.79.dist-info/RECORD +36 -0
- ddeutil_workflow-0.0.77.dist-info/RECORD +0 -30
- {ddeutil_workflow-0.0.77.dist-info → ddeutil_workflow-0.0.79.dist-info}/WHEEL +0 -0
- {ddeutil_workflow-0.0.77.dist-info → ddeutil_workflow-0.0.79.dist-info}/entry_points.txt +0 -0
- {ddeutil_workflow-0.0.77.dist-info → ddeutil_workflow-0.0.79.dist-info}/licenses/LICENSE +0 -0
- {ddeutil_workflow-0.0.77.dist-info → ddeutil_workflow-0.0.79.dist-info}/top_level.txt +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.79
|
4
4
|
Summary: Lightweight workflow orchestration with YAML template
|
5
5
|
Author-email: ddeutils <korawich.anu@gmail.com>
|
6
6
|
License: MIT
|
@@ -24,7 +24,7 @@ Description-Content-Type: text/markdown
|
|
24
24
|
License-File: LICENSE
|
25
25
|
Requires-Dist: ddeutil[checksum]>=0.4.8
|
26
26
|
Requires-Dist: ddeutil-io[toml,yaml]>=0.2.14
|
27
|
-
Requires-Dist: pydantic<3.0.0,==2.11.
|
27
|
+
Requires-Dist: pydantic<3.0.0,==2.11.7
|
28
28
|
Requires-Dist: pydantic-extra-types<3.0.0,>=2.10.4
|
29
29
|
Requires-Dist: python-dotenv>=1.1.0
|
30
30
|
Requires-Dist: typer>=0.16.0
|
@@ -35,9 +35,17 @@ Requires-Dist: httpx; extra == "all"
|
|
35
35
|
Requires-Dist: ujson; extra == "all"
|
36
36
|
Requires-Dist: aiofiles; extra == "all"
|
37
37
|
Requires-Dist: aiohttp; extra == "all"
|
38
|
-
Requires-Dist: requests==2.32.
|
38
|
+
Requires-Dist: requests==2.32.4; extra == "all"
|
39
39
|
Provides-Extra: docker
|
40
40
|
Requires-Dist: docker==7.1.0; extra == "docker"
|
41
|
+
Provides-Extra: azure
|
42
|
+
Requires-Dist: azure-batch>=13.0.0; extra == "azure"
|
43
|
+
Requires-Dist: azure-storage-blob>=12.0.0; extra == "azure"
|
44
|
+
Provides-Extra: aws
|
45
|
+
Requires-Dist: boto3>=1.39.0; extra == "aws"
|
46
|
+
Provides-Extra: gcp
|
47
|
+
Requires-Dist: google-cloud-batch>=0.17.0; extra == "gcp"
|
48
|
+
Requires-Dist: google-cloud-storage>=2.10.0; extra == "gcp"
|
41
49
|
Dynamic: license-file
|
42
50
|
|
43
51
|
# Workflow Orchestration
|
@@ -140,6 +148,19 @@ If you want to install this package with application add-ons, you should add
|
|
140
148
|
| Python | `ddeutil-workflow` | ✅ |
|
141
149
|
| FastAPI Server | `ddeutil-workflow[all]` | ✅ |
|
142
150
|
|
151
|
+
Check the version of the current workflow package:
|
152
|
+
|
153
|
+
```shell
|
154
|
+
$ pip install ddeutil-workflow
|
155
|
+
$ workflow-cli version
|
156
|
+
```
|
157
|
+
|
158
|
+
Initial workflow project:
|
159
|
+
|
160
|
+
```shell
|
161
|
+
$ workflow-cli init
|
162
|
+
```
|
163
|
+
|
143
164
|
## 📖 Documentation
|
144
165
|
|
145
166
|
For comprehensive API documentation, examples, and best practices:
|
@@ -147,7 +168,19 @@ For comprehensive API documentation, examples, and best practices:
|
|
147
168
|
- **[Full Documentation](https://ddeutils.github.io/ddeutil-workflow/)** - Complete user guide and API reference
|
148
169
|
- **[Getting Started](https://ddeutils.github.io/ddeutil-workflow/getting-started/)** - Quick start guide
|
149
170
|
- **[API Reference](https://ddeutils.github.io/ddeutil-workflow/api/workflow/)** - Detailed API documentation
|
150
|
-
- **[
|
171
|
+
- **[Optimized Tracing](docs/optimized-tracing.md)** - High-performance logging system (2-5x faster)
|
172
|
+
|
173
|
+
## ⚡ Performance Improvements
|
174
|
+
|
175
|
+
The workflow system now includes an optimized tracing system that provides significant performance improvements:
|
176
|
+
|
177
|
+
- **🚀 2-5x faster logging** with buffered I/O operations
|
178
|
+
- **💾 60-80% reduction** in disk I/O operations
|
179
|
+
- **🛡️ Built-in thread safety** with minimal overhead
|
180
|
+
- **🔄 Backward compatible** - existing code automatically benefits
|
181
|
+
- **📊 Lower memory footprint** for high-volume logging
|
182
|
+
|
183
|
+
See [Optimized Tracing Documentation](docs/optimized-tracing.md) for details and performance benchmarks.
|
151
184
|
|
152
185
|
## 🎯 Usage
|
153
186
|
|
@@ -283,22 +316,21 @@ it will use default value and do not raise any error to you.
|
|
283
316
|
> The config value that you will set on the environment should combine with
|
284
317
|
> prefix, component, and name which is `WORKFLOW_{component}_{name}` (Upper case).
|
285
318
|
|
286
|
-
| Name
|
287
|
-
|
288
|
-
| **REGISTRY_CALLER**
|
289
|
-
| **REGISTRY_FILTER**
|
290
|
-
| **CONF_PATH**
|
291
|
-
| **STAGE_DEFAULT_ID**
|
292
|
-
| **GENERATE_ID_SIMPLE_MODE**
|
293
|
-
| **DEBUG_MODE**
|
294
|
-
| **TIMEZONE**
|
295
|
-
| **FORMAT**
|
296
|
-
| **FORMAT_FILE**
|
297
|
-
| **DATETIME_FORMAT**
|
298
|
-
| **
|
299
|
-
| **
|
300
|
-
| **
|
301
|
-
| **AUDIT_ENABLE_WRITE** | LOG | `true` | A flag that enable writing audit log after end execution in the workflow release step. |
|
319
|
+
| Name | Component | Default | Description |
|
320
|
+
|:-----------------------------|:---------:|:--------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------|
|
321
|
+
| **REGISTRY_CALLER** | CORE | `.` | List of importable string for the call stage. |
|
322
|
+
| **REGISTRY_FILTER** | CORE | `ddeutil.workflow.templates` | List of importable string for the filter template. |
|
323
|
+
| **CONF_PATH** | CORE | `./conf` | The config path that keep all template `.yaml` files. |
|
324
|
+
| **STAGE_DEFAULT_ID** | CORE | `false` | A flag that enable default stage ID that use for catch an execution output. |
|
325
|
+
| **GENERATE_ID_SIMPLE_MODE** | CORE | `true` | A flog that enable generating ID with `md5` algorithm. |
|
326
|
+
| **DEBUG_MODE** | LOG | `true` | A flag that enable logging with debug level mode. |
|
327
|
+
| **TIMEZONE** | LOG | `Asia/Bangkok` | A Timezone string value that will pass to `ZoneInfo` object. |
|
328
|
+
| **FORMAT** | LOG | `%(asctime)s.%(msecs)03d (%(name)-10s, %(process)-5d,%(thread)-5d) [%(levelname)-7s] %(message)-120s (%(filename)s:%(lineno)s)` | A trace message console format. |
|
329
|
+
| **FORMAT_FILE** | LOG | `{datetime} ({process:5d}, {thread:5d}) {message:120s} ({filename}:{lineno})` | A trace message format that use to write to target pointer. |
|
330
|
+
| **DATETIME_FORMAT** | LOG | `%Y-%m-%d %H:%M:%S` | A datetime format of the trace log. |
|
331
|
+
| **TRACE_HANDLERS** | LOG | `[{"type": "console"}]` | A pointer URL of trace log that use to emit log message. Now uses optimized handler by default. |
|
332
|
+
| **AUDIT_URL** | LOG | `file:./audits` | A pointer URL of audit log that use to write audit metrix. |
|
333
|
+
| **AUDIT_ENABLE_WRITE** | LOG | `true` | A flag that enable writing audit log after end execution in the workflow release step. |
|
302
334
|
|
303
335
|
## :rocket: Deployment
|
304
336
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
ddeutil/workflow/__about__.py,sha256=yvfj2RwP4ItaAPfKbYC9qJNcrKY9lxnnSRd6wZ4-CgQ,28
|
2
|
+
ddeutil/workflow/__cron.py,sha256=avOagaHl9xXOmizeRWm13cOrty9Tw0vRjFq-xoEgpAY,29167
|
3
|
+
ddeutil/workflow/__init__.py,sha256=1xH6m7jXxFly_5FbWCoe8rqhdeSdnnrBMPzoiVo_Exo,3247
|
4
|
+
ddeutil/workflow/__main__.py,sha256=Qd-f8z2Q2vpiEP2x6PBFsJrpACWDVxFKQk820MhFmHo,59
|
5
|
+
ddeutil/workflow/__types.py,sha256=tA2vsr6mzTSzbWB1sb62c5GgxODlfVRz6FvgLNJtQao,4788
|
6
|
+
ddeutil/workflow/audits.py,sha256=7wfRXJmrG3T4YUSArABPfiWq6BzSBf8qoo24JAt433A,28280
|
7
|
+
ddeutil/workflow/cli.py,sha256=aNFOZ3Re_QJBBP6vkT9Lsjrg8wLxrw_LKrl-1SIvSOg,8152
|
8
|
+
ddeutil/workflow/conf.py,sha256=vdTvR1OVk2TZBK5ZwwUpfxgg8GU4ldV8ukLzG1-tGDQ,16603
|
9
|
+
ddeutil/workflow/errors.py,sha256=UpUIqoyqkvzqjuxtUQ9535l1HeAsyh-plEG0PgDVR2w,5541
|
10
|
+
ddeutil/workflow/event.py,sha256=qm7QHw-Pozm6oIUzAIxpDkPzzVZVtHgJIUlIle0vEfQ,13943
|
11
|
+
ddeutil/workflow/job.py,sha256=UvzU66CebZkwIBg1KZch_aA3bZL0jpVrhRUQ2JIyiN4,46615
|
12
|
+
ddeutil/workflow/params.py,sha256=y9f6DEIyae1j4awbj3Kbeq75-U2UPFlKv9K57Hdo_Go,17188
|
13
|
+
ddeutil/workflow/result.py,sha256=BOk3DZMtmdE7xzQYeEYTGFlIkzJQ4Ed3fYzf0zF8Jo8,8963
|
14
|
+
ddeutil/workflow/reusables.py,sha256=g_Cac3yHy0H5ffl4Bb8_eGl284ELxOuX4LI8GYPMZgw,24983
|
15
|
+
ddeutil/workflow/stages.py,sha256=QufIa2b7A_ngOndVoGzyxKm_o5ZrauNeqxAC4vBkKFM,122678
|
16
|
+
ddeutil/workflow/traces.py,sha256=0crly_08a7dfi8-w8QPmYizxh6T7VR8yDnEoxEEiwM0,72838
|
17
|
+
ddeutil/workflow/utils.py,sha256=-E-Z5hN_UTFuWDk-NpfKhNj0QtLfJSvZNDI5NzJsd5E,12122
|
18
|
+
ddeutil/workflow/workflow.py,sha256=WTQAoSUNOmGpvZYgl28ziTY3kxtqQQw4jbTXPJOIBY4,42790
|
19
|
+
ddeutil/workflow/api/__init__.py,sha256=5DzYL3ngceoRshh5HYCSVWChqNJSiP01E1bEd8XxPi0,4799
|
20
|
+
ddeutil/workflow/api/log_conf.py,sha256=WfS3udDLSyrP-C80lWOvxxmhd_XWKvQPkwDqKblcH3E,1834
|
21
|
+
ddeutil/workflow/api/routes/__init__.py,sha256=JRaJZB0D6mgR17MbZo8yLtdYDtD62AA8MdKlFqhG84M,420
|
22
|
+
ddeutil/workflow/api/routes/job.py,sha256=8eu2OAOS3fENQ54OO723lFpzgHMyz1D-b_xZj6OnmcA,2550
|
23
|
+
ddeutil/workflow/api/routes/logs.py,sha256=RiZ62eQVMWArPHE3lpan955U4DdLLkethlvSMlwF7Mg,5312
|
24
|
+
ddeutil/workflow/api/routes/workflows.py,sha256=1Mqx4Hft4uJglgJI-Wcw-JzkhomFYZrtP0DnQDBkAFQ,4410
|
25
|
+
ddeutil/workflow/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
+
ddeutil/workflow/plugins/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
|
+
ddeutil/workflow/plugins/providers/aws.py,sha256=61uIFBEWt-_D5Sui24qUPier1Hiqlw_RP_eY-rXBCKc,31551
|
28
|
+
ddeutil/workflow/plugins/providers/az.py,sha256=o3dh011lEtmr7-d7FPZJPgXdT0ytFzKfc5xnVxSyXGU,34867
|
29
|
+
ddeutil/workflow/plugins/providers/container.py,sha256=DSN0RWxMjTJN5ANheeMauDaPa3X6Z2E1eGUcctYkENw,22134
|
30
|
+
ddeutil/workflow/plugins/providers/gcs.py,sha256=KgAOdMBvdbMLTH_z_FwVriBFtZfKEYx8_34jzUOVjTY,27460
|
31
|
+
ddeutil_workflow-0.0.79.dist-info/licenses/LICENSE,sha256=nGFZ1QEhhhWeMHf9n99_fdt4vQaXS29xWKxt-OcLywk,1085
|
32
|
+
ddeutil_workflow-0.0.79.dist-info/METADATA,sha256=V6nV4VeqzwryOpJVDmd4sK5U9rqgn8H4qs8WcTf8ugw,16755
|
33
|
+
ddeutil_workflow-0.0.79.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
34
|
+
ddeutil_workflow-0.0.79.dist-info/entry_points.txt,sha256=qDTpPSauL0ciO6T4iSVt8bJeYrVEkkoEEw_RlGx6Kgk,63
|
35
|
+
ddeutil_workflow-0.0.79.dist-info/top_level.txt,sha256=m9M6XeSWDwt_yMsmH6gcOjHZVK5O0-vgtNBuncHjzW4,8
|
36
|
+
ddeutil_workflow-0.0.79.dist-info/RECORD,,
|
@@ -1,30 +0,0 @@
|
|
1
|
-
ddeutil/workflow/__about__.py,sha256=aU8Cs3gP8PwasjEnV2TWve1NsqO6d4yk5KpYOnhSHz0,28
|
2
|
-
ddeutil/workflow/__cron.py,sha256=avOagaHl9xXOmizeRWm13cOrty9Tw0vRjFq-xoEgpAY,29167
|
3
|
-
ddeutil/workflow/__init__.py,sha256=_8sP-CTPOfwsFFhmdwQ2Gp7yY7qJemP7TYsIWgd5jc0,3300
|
4
|
-
ddeutil/workflow/__main__.py,sha256=Qd-f8z2Q2vpiEP2x6PBFsJrpACWDVxFKQk820MhFmHo,59
|
5
|
-
ddeutil/workflow/__types.py,sha256=tA2vsr6mzTSzbWB1sb62c5GgxODlfVRz6FvgLNJtQao,4788
|
6
|
-
ddeutil/workflow/audits.py,sha256=wANG0jEQ7slUSgVZG4JbjlR5PtmF8mHpM9RH-zpYM_g,12679
|
7
|
-
ddeutil/workflow/cli.py,sha256=eAwRZMSEJu-NONc_un0D_1swFlENMjl3C-iXYnyTTPY,7411
|
8
|
-
ddeutil/workflow/conf.py,sha256=CL_LFJyrocNCSGN9NwErVAtN_JdetcBqeYIJ9x7e2nE,16796
|
9
|
-
ddeutil/workflow/errors.py,sha256=tHS6ekxBmZ6sIeLaxHHSaMfhVvlWnndfb2-Aq-bL2So,5509
|
10
|
-
ddeutil/workflow/event.py,sha256=siChcBhsu4ejzW1fK0tjHPXQVaSUCSxPYDgDrh6duwo,13676
|
11
|
-
ddeutil/workflow/job.py,sha256=_NOPWPs2FuiMvNE-L6c9mpXEChXmgQ8zmD33ZzqVi0A,44146
|
12
|
-
ddeutil/workflow/params.py,sha256=Cyz142OcvENIZrM7Efc2xuGPmmFBhROifP5ojoaCezg,13658
|
13
|
-
ddeutil/workflow/result.py,sha256=Fz6y6apivLW-94gAxcT42z-mGqWMk6-O3RJ2GGSNUHM,9146
|
14
|
-
ddeutil/workflow/reusables.py,sha256=3_TV3lpwzqW2lnBJbgt9MkPXk8lFvp2NhYSCdjyOQI8,23338
|
15
|
-
ddeutil/workflow/stages.py,sha256=KchpcPSgrkvPHhpF1YYNOclk1nhdpLL-AG1M71G6QV8,121972
|
16
|
-
ddeutil/workflow/traces.py,sha256=0n6Mytp6oeNjOV8lIsFitzZ6TrtuSNVFkUmodBiE_vA,28466
|
17
|
-
ddeutil/workflow/utils.py,sha256=N8dVsBYOBVXdFOlUETo7zPFefqp3w0XK1940s7k7iOE,10989
|
18
|
-
ddeutil/workflow/workflow.py,sha256=iQ9z6eOoj-66w6p8wGu28doQGGnL569BcjI3dTK561o,41616
|
19
|
-
ddeutil/workflow/api/__init__.py,sha256=5DzYL3ngceoRshh5HYCSVWChqNJSiP01E1bEd8XxPi0,4799
|
20
|
-
ddeutil/workflow/api/log_conf.py,sha256=WfS3udDLSyrP-C80lWOvxxmhd_XWKvQPkwDqKblcH3E,1834
|
21
|
-
ddeutil/workflow/api/routes/__init__.py,sha256=JRaJZB0D6mgR17MbZo8yLtdYDtD62AA8MdKlFqhG84M,420
|
22
|
-
ddeutil/workflow/api/routes/job.py,sha256=-lbZ_hS9pEdSy6zeke5qrXEgdNxtQ2w9in7cHuM2Jzs,2536
|
23
|
-
ddeutil/workflow/api/routes/logs.py,sha256=RiZ62eQVMWArPHE3lpan955U4DdLLkethlvSMlwF7Mg,5312
|
24
|
-
ddeutil/workflow/api/routes/workflows.py,sha256=1Mqx4Hft4uJglgJI-Wcw-JzkhomFYZrtP0DnQDBkAFQ,4410
|
25
|
-
ddeutil_workflow-0.0.77.dist-info/licenses/LICENSE,sha256=nGFZ1QEhhhWeMHf9n99_fdt4vQaXS29xWKxt-OcLywk,1085
|
26
|
-
ddeutil_workflow-0.0.77.dist-info/METADATA,sha256=hplZltt-c1l8T6x2nJidJ-2U79x-6MhS5c5hXws1oGo,15781
|
27
|
-
ddeutil_workflow-0.0.77.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
28
|
-
ddeutil_workflow-0.0.77.dist-info/entry_points.txt,sha256=qDTpPSauL0ciO6T4iSVt8bJeYrVEkkoEEw_RlGx6Kgk,63
|
29
|
-
ddeutil_workflow-0.0.77.dist-info/top_level.txt,sha256=m9M6XeSWDwt_yMsmH6gcOjHZVK5O0-vgtNBuncHjzW4,8
|
30
|
-
ddeutil_workflow-0.0.77.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|