loom-core 0.1.0__py3-none-any.whl → 0.1.2__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.
Files changed (53) hide show
  1. {src → loom}/__init__.py +7 -7
  2. {src → loom}/schemas/database.py +1 -1
  3. {loom_core-0.1.0.dist-info → loom_core-0.1.2.dist-info}/METADATA +2 -45
  4. loom_core-0.1.2.dist-info/RECORD +50 -0
  5. loom_core-0.1.2.dist-info/entry_points.txt +2 -0
  6. loom_core-0.1.2.dist-info/top_level.txt +1 -0
  7. loom_core-0.1.0.dist-info/RECORD +0 -50
  8. loom_core-0.1.0.dist-info/entry_points.txt +0 -2
  9. loom_core-0.1.0.dist-info/top_level.txt +0 -1
  10. {src → loom}/cli/__init__.py +0 -0
  11. {src → loom}/cli/cli.py +0 -0
  12. {src → loom}/common/activity.py +0 -0
  13. {src → loom}/common/config.py +0 -0
  14. {src → loom}/common/errors.py +0 -0
  15. {src → loom}/common/workflow.py +0 -0
  16. {src → loom}/core/__init__.py +0 -0
  17. {src → loom}/core/compiled.py +0 -0
  18. {src → loom}/core/context.py +0 -0
  19. {src → loom}/core/engine.py +0 -0
  20. {src → loom}/core/handle.py +0 -0
  21. {src → loom}/core/logger.py +0 -0
  22. {src → loom}/core/runner.py +0 -0
  23. {src → loom}/core/state.py +0 -0
  24. {src → loom}/core/worker.py +0 -0
  25. {src → loom}/core/workflow.py +0 -0
  26. {src → loom}/database/__init__.py +0 -0
  27. {src → loom}/database/db.py +0 -0
  28. {src → loom}/decorators/__init__.py +0 -0
  29. {src → loom}/decorators/activity.py +0 -0
  30. {src → loom}/decorators/workflow.py +0 -0
  31. {src → loom}/lib/progress.py +0 -0
  32. {src → loom}/lib/utils.py +0 -0
  33. {src → loom}/migrations/down/001_setup_pragma.sql +0 -0
  34. {src → loom}/migrations/down/002_create_workflows.sql +0 -0
  35. {src → loom}/migrations/down/003.create_events.sql +0 -0
  36. {src → loom}/migrations/down/004.create_tasks.sql +0 -0
  37. {src → loom}/migrations/down/005.create_indexes.sql +0 -0
  38. {src → loom}/migrations/down/006_auto_update_triggers.sql +0 -0
  39. {src → loom}/migrations/down/007_create_logs.sql +0 -0
  40. {src → loom}/migrations/up/001_setup_pragma.sql +0 -0
  41. {src → loom}/migrations/up/002_create_workflows.sql +0 -0
  42. {src → loom}/migrations/up/003_create_events.sql +0 -0
  43. {src → loom}/migrations/up/004_create_tasks.sql +0 -0
  44. {src → loom}/migrations/up/005_create_indexes.sql +0 -0
  45. {src → loom}/migrations/up/006_auto_update_triggers.sql +0 -0
  46. {src → loom}/migrations/up/007_create_logs.sql +0 -0
  47. {src → loom}/schemas/__init__.py +0 -0
  48. {src → loom}/schemas/activity.py +0 -0
  49. {src → loom}/schemas/events.py +0 -0
  50. {src → loom}/schemas/tasks.py +0 -0
  51. {src → loom}/schemas/workflow.py +0 -0
  52. {loom_core-0.1.0.dist-info → loom_core-0.1.2.dist-info}/WHEEL +0 -0
  53. {loom_core-0.1.0.dist-info → loom_core-0.1.2.dist-info}/licenses/LICENSE +0 -0
@@ -17,13 +17,13 @@ Example:
17
17
  ... await ctx.state.set("result", result)
18
18
  """
19
19
 
20
- from src.core.context import WorkflowContext
21
- from src.core.runner import run_once
22
- from src.core.worker import WorkflowWorker, start_worker
23
- from src.core.workflow import Workflow
24
- from src.database.db import Database
25
- from src.decorators.activity import activity
26
- from src.decorators.workflow import step, workflow
20
+ from loom.core.context import WorkflowContext
21
+ from loom.core.runner import run_once
22
+ from loom.core.worker import WorkflowWorker, start_worker
23
+ from loom.core.workflow import Workflow
24
+ from loom.database.db import Database
25
+ from loom.decorators.activity import activity
26
+ from loom.decorators.workflow import step, workflow
27
27
 
28
28
  __version__ = "0.1.0"
29
29
 
@@ -1,6 +1,6 @@
1
1
  from typing import TypedDict
2
2
 
3
- from src.schemas.workflow import Step
3
+ from loom.schemas.workflow import Step
4
4
 
5
5
 
6
6
  class Migration(TypedDict):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: loom-core
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Durable workflow orchestration engine for Python
5
5
  Home-page: https://github.com/satadeep3927/loom
6
6
  Author: Satadeep Dasgupta
@@ -202,34 +202,7 @@ loom stats
202
202
 
203
203
  ### Core Components
204
204
 
205
- ```
206
- ┌─────────────────────────────────────────────────────────┐
207
- │ Workflow │
208
- │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
209
- │ │ Step 1 │→ │ Step 2 │→ │ Step 3 │ │
210
- │ └──────────┘ └──────────┘ └──────────┘ │
211
- └─────────────────────────────────────────────────────────┘
212
-
213
- ┌─────────────────────────────────────────────────────────┐
214
- │ WorkflowContext │
215
- │ • State Management (StateProxy) │
216
- │ • Activity Execution │
217
- │ • Event Replay & Cursor │
218
- │ • Logger (replay-safe) │
219
- └─────────────────────────────────────────────────────────┘
220
-
221
- ┌─────────────────────────────────────────────────────────┐
222
- │ Engine │
223
- │ • replay_until_block() - Step execution │
224
- │ • replay_activity() - Activity retry │
225
- │ • Event matching & determinism │
226
- └─────────────────────────────────────────────────────────┘
227
-
228
- ┌─────────────────────────────────────────────────────────┐
229
- │ Database (SQLite) │
230
- │ • workflows • events • tasks • logs │
231
- └─────────────────────────────────────────────────────────┘
232
- ```
205
+ ![Architecture](docs/diagram.svg)
233
206
 
234
207
  ### Event Types
235
208
 
@@ -306,22 +279,6 @@ Contributions welcome! Please ensure:
306
279
  3. Type checking: `mypy .`
307
280
  4. Linting: `ruff check .`
308
281
 
309
- ## License
310
-
311
- MIT License - see LICENSE file for details
312
-
313
- ## Acknowledgments
314
-
315
- Inspired by:
316
- - [Temporal](https://temporal.io/) - The workflow orchestration platform
317
- - [Durable Task Framework](https://github.com/Azure/durabletask) - Microsoft's durable task library
318
- - [Cadence](https://cadenceworkflow.io/) - Uber's workflow platform
319
-
320
- ---
321
-
322
- **Built withpy src`
323
- 4. Linting: `ruff check src`
324
-
325
282
  ## 📝 License
326
283
 
327
284
  MIT License - see LICENSE file for details
@@ -0,0 +1,50 @@
1
+ loom/__init__.py,sha256=TB3TM8_wzxiwiYDix7Qc5sExsp7cqBZgiOkOFTIzi5k,1301
2
+ loom/cli/__init__.py,sha256=BI8VfSIB5MF4_D9GxHFJwynNEvosDHReVGvsliS99ho,73
3
+ loom/cli/cli.py,sha256=cykYs_CKkJWck4auqDxxns9bgPkVznuN9HWsVgfHAmM,7673
4
+ loom/common/activity.py,sha256=DXAKEJw5IgvUNJj8yr3Vu0UfxnBZW_KkKcBt70TnpyU,1078
5
+ loom/common/config.py,sha256=NZHW07CzpWCaLv77nhULycmD7_QMHdF-3AsrxDFid4A,273
6
+ loom/common/errors.py,sha256=jc7_XS8dUPS8fg5pb7kJaTuIR1e6eKBZyZtbsHW3lgM,1712
7
+ loom/common/workflow.py,sha256=YfiS0FBhzEBp71t6YKsqM7aNvklvFatb_h3RbgAormQ,1945
8
+ loom/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ loom/core/compiled.py,sha256=Y2NQDMZVLee65ILgJoK2Ny_OcR1T4LJnOQWQcyg0Z7U,1178
10
+ loom/core/context.py,sha256=rVWWSOaAmdVOzKKFh9TwpJVX-4Rm0h7bC76ipEcqVBw,9219
11
+ loom/core/engine.py,sha256=rZHl15Qa36zvv0r7XDi2f0NGzXoO6X3uHrKaA-jlax4,4202
12
+ loom/core/handle.py,sha256=beOVmJit-gSrk7II4c2KuSubmr5OIPls82_vJ-pI04U,5532
13
+ loom/core/logger.py,sha256=4ej95IdHOdBh-y7PQoRFz_H22PJYDXvAioBoId8mOhg,1729
14
+ loom/core/runner.py,sha256=pYITY35Q88ItZA4EuSWmNE5sgxL0tExXrm9j5vSaz6o,1718
15
+ loom/core/state.py,sha256=jdFzSPanATeiWAkQewwcSDjjVseOyMRUdDfsc-a34mQ,2996
16
+ loom/core/worker.py,sha256=jpTtvM1rIToVkG4SwJu1W9Q-eL3bw8b3N8KsxxrRovA,5322
17
+ loom/core/workflow.py,sha256=E_A2rI6iaW3liZmVy3X98oxSeBDXMGiQnRZRq3Cp3BA,5755
18
+ loom/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ loom/database/db.py,sha256=BtZTNtZ6cXpfvrtdmW8Xb47zoC2NXvVoWVmUILow2eA,23535
20
+ loom/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ loom/decorators/activity.py,sha256=xt7oeYOKJxhKIEcwWsSVA26c_jk4yQB1PHtbcg3tCFI,4824
22
+ loom/decorators/workflow.py,sha256=rBpbnpLfDTTAWdgiERpUPIgNUJpnYJKvBZPmzx-ECcc,1516
23
+ loom/lib/progress.py,sha256=Es-BKYVI5xOsC-K6wBi5kUbloYIlh5X_V8sLkU7W9IU,3354
24
+ loom/lib/utils.py,sha256=aL4VR-_JXbNLYsJYyFL__JQRAq6NQzBYetvHqMGIgYY,809
25
+ loom/migrations/down/001_setup_pragma.sql,sha256=NGUGhNmJaroGe_APkLmp6p4q6-zVEYGKHJE4wJixfgs,280
26
+ loom/migrations/down/002_create_workflows.sql,sha256=rQcF30tXrBJbbGkOIlJlVMBJ7SZNQHtJpMjgNmo_-hE,58
27
+ loom/migrations/down/003.create_events.sql,sha256=5fpnS9yA6gp5z-dOeg7f-klblJPugrwZ6jgwNrQAGLw,52
28
+ loom/migrations/down/004.create_tasks.sql,sha256=vFSGPYQLyWdk7sNTk5jrrq3fHZsw1trcPZAd_eL9kVc,50
29
+ loom/migrations/down/005.create_indexes.sql,sha256=aDFXwWWwkyjpGqG9zZHTsQ4XyAhrNxDwjivYpVRf458,148
30
+ loom/migrations/down/006_auto_update_triggers.sql,sha256=1lEFZsuYANADENOM6baHSA4ljqiovOSstQXIzw80hUc,108
31
+ loom/migrations/down/007_create_logs.sql,sha256=LziyAbGM5OFDa2skhk5XhSeC3yzSOaP3Kh_a2gSAEQQ,26
32
+ loom/migrations/up/001_setup_pragma.sql,sha256=MAm4ghbC1CXs9OcAryvL-LnwMy00Igb_Ax5Ik2w0YGE,317
33
+ loom/migrations/up/002_create_workflows.sql,sha256=2gSUk4EF7dk3mTz6MHHQ-MA6-A8tvbpI30YzgQ9zLCA,530
34
+ loom/migrations/up/003_create_events.sql,sha256=3b5uDBjuNkPom4NWUDlV0Xml4tj7BkHBoksJooC1pFk,388
35
+ loom/migrations/up/004_create_tasks.sql,sha256=xLGGDFgb0DrrBkiYUOdQ80z019v5MZE7HoA_6MLpCJg,794
36
+ loom/migrations/up/005_create_indexes.sql,sha256=1nZVwoyHJdV7YgwXCOZdWFyV0UCZI_jpjsxHyNO9u90,323
37
+ loom/migrations/up/006_auto_update_triggers.sql,sha256=hnsbGu6n5XMFKgVha2A_rw9IVRw9zB3Zw73PGOc2R3Y,447
38
+ loom/migrations/up/007_create_logs.sql,sha256=IV7vy9U1mGnN4nAZqLwTCyII9Qeeqzx-b1_sSsk1PO4,345
39
+ loom/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ loom/schemas/activity.py,sha256=0sYvmmsVhDFFPyOHkVm0tajVaAAzoq5wY6-K03nPSos,266
41
+ loom/schemas/database.py,sha256=DlMBvacsJ9oceBHkrMiJC7uD3_rCHFe6Kwa2STFcKOw,283
42
+ loom/schemas/events.py,sha256=Gz-R836nVXNSsp4Y54idhKs_WTvzFPmx5KlA8PunP28,2216
43
+ loom/schemas/tasks.py,sha256=DJbLInggIGxI-CfP1kSyK79Bz83e3sZyEKh6C2HE8q4,1341
44
+ loom/schemas/workflow.py,sha256=F1cNEJRuEWLjPhGinEZE2T6vwchDC8RuTHmxEIaH6Ls,671
45
+ loom_core-0.1.2.dist-info/licenses/LICENSE,sha256=8EpC-clAYRUfJQ92T3iQEIIWYjx2A3Kfk28zOd8lh7I,1095
46
+ loom_core-0.1.2.dist-info/METADATA,sha256=DvvrqYOj9SOiShXLGYwyZ5eQrg4Woj2QlH4QIZ3d23s,8897
47
+ loom_core-0.1.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
48
+ loom_core-0.1.2.dist-info/entry_points.txt,sha256=Jx5HXHL2y7jvSjkwkH3QqF954cbSxiE6OGwL2coldyE,42
49
+ loom_core-0.1.2.dist-info/top_level.txt,sha256=cAfRgAuCuit-cU9iBrf0bS4ovvmq-URykNd9fmYMojg,5
50
+ loom_core-0.1.2.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ loom = loom.cli.cli:cli
@@ -0,0 +1 @@
1
+ loom
@@ -1,50 +0,0 @@
1
- loom_core-0.1.0.dist-info/licenses/LICENSE,sha256=8EpC-clAYRUfJQ92T3iQEIIWYjx2A3Kfk28zOd8lh7I,1095
2
- src/__init__.py,sha256=BESUSbebsjCFRkELNqdCJ3USyVbnoomCl6IRmsdOfLI,1294
3
- src/cli/__init__.py,sha256=BI8VfSIB5MF4_D9GxHFJwynNEvosDHReVGvsliS99ho,73
4
- src/cli/cli.py,sha256=cykYs_CKkJWck4auqDxxns9bgPkVznuN9HWsVgfHAmM,7673
5
- src/common/activity.py,sha256=DXAKEJw5IgvUNJj8yr3Vu0UfxnBZW_KkKcBt70TnpyU,1078
6
- src/common/config.py,sha256=NZHW07CzpWCaLv77nhULycmD7_QMHdF-3AsrxDFid4A,273
7
- src/common/errors.py,sha256=jc7_XS8dUPS8fg5pb7kJaTuIR1e6eKBZyZtbsHW3lgM,1712
8
- src/common/workflow.py,sha256=YfiS0FBhzEBp71t6YKsqM7aNvklvFatb_h3RbgAormQ,1945
9
- src/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- src/core/compiled.py,sha256=Y2NQDMZVLee65ILgJoK2Ny_OcR1T4LJnOQWQcyg0Z7U,1178
11
- src/core/context.py,sha256=rVWWSOaAmdVOzKKFh9TwpJVX-4Rm0h7bC76ipEcqVBw,9219
12
- src/core/engine.py,sha256=rZHl15Qa36zvv0r7XDi2f0NGzXoO6X3uHrKaA-jlax4,4202
13
- src/core/handle.py,sha256=beOVmJit-gSrk7II4c2KuSubmr5OIPls82_vJ-pI04U,5532
14
- src/core/logger.py,sha256=4ej95IdHOdBh-y7PQoRFz_H22PJYDXvAioBoId8mOhg,1729
15
- src/core/runner.py,sha256=pYITY35Q88ItZA4EuSWmNE5sgxL0tExXrm9j5vSaz6o,1718
16
- src/core/state.py,sha256=jdFzSPanATeiWAkQewwcSDjjVseOyMRUdDfsc-a34mQ,2996
17
- src/core/worker.py,sha256=jpTtvM1rIToVkG4SwJu1W9Q-eL3bw8b3N8KsxxrRovA,5322
18
- src/core/workflow.py,sha256=E_A2rI6iaW3liZmVy3X98oxSeBDXMGiQnRZRq3Cp3BA,5755
19
- src/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- src/database/db.py,sha256=BtZTNtZ6cXpfvrtdmW8Xb47zoC2NXvVoWVmUILow2eA,23535
21
- src/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- src/decorators/activity.py,sha256=xt7oeYOKJxhKIEcwWsSVA26c_jk4yQB1PHtbcg3tCFI,4824
23
- src/decorators/workflow.py,sha256=rBpbnpLfDTTAWdgiERpUPIgNUJpnYJKvBZPmzx-ECcc,1516
24
- src/lib/progress.py,sha256=Es-BKYVI5xOsC-K6wBi5kUbloYIlh5X_V8sLkU7W9IU,3354
25
- src/lib/utils.py,sha256=aL4VR-_JXbNLYsJYyFL__JQRAq6NQzBYetvHqMGIgYY,809
26
- src/migrations/down/001_setup_pragma.sql,sha256=NGUGhNmJaroGe_APkLmp6p4q6-zVEYGKHJE4wJixfgs,280
27
- src/migrations/down/002_create_workflows.sql,sha256=rQcF30tXrBJbbGkOIlJlVMBJ7SZNQHtJpMjgNmo_-hE,58
28
- src/migrations/down/003.create_events.sql,sha256=5fpnS9yA6gp5z-dOeg7f-klblJPugrwZ6jgwNrQAGLw,52
29
- src/migrations/down/004.create_tasks.sql,sha256=vFSGPYQLyWdk7sNTk5jrrq3fHZsw1trcPZAd_eL9kVc,50
30
- src/migrations/down/005.create_indexes.sql,sha256=aDFXwWWwkyjpGqG9zZHTsQ4XyAhrNxDwjivYpVRf458,148
31
- src/migrations/down/006_auto_update_triggers.sql,sha256=1lEFZsuYANADENOM6baHSA4ljqiovOSstQXIzw80hUc,108
32
- src/migrations/down/007_create_logs.sql,sha256=LziyAbGM5OFDa2skhk5XhSeC3yzSOaP3Kh_a2gSAEQQ,26
33
- src/migrations/up/001_setup_pragma.sql,sha256=MAm4ghbC1CXs9OcAryvL-LnwMy00Igb_Ax5Ik2w0YGE,317
34
- src/migrations/up/002_create_workflows.sql,sha256=2gSUk4EF7dk3mTz6MHHQ-MA6-A8tvbpI30YzgQ9zLCA,530
35
- src/migrations/up/003_create_events.sql,sha256=3b5uDBjuNkPom4NWUDlV0Xml4tj7BkHBoksJooC1pFk,388
36
- src/migrations/up/004_create_tasks.sql,sha256=xLGGDFgb0DrrBkiYUOdQ80z019v5MZE7HoA_6MLpCJg,794
37
- src/migrations/up/005_create_indexes.sql,sha256=1nZVwoyHJdV7YgwXCOZdWFyV0UCZI_jpjsxHyNO9u90,323
38
- src/migrations/up/006_auto_update_triggers.sql,sha256=hnsbGu6n5XMFKgVha2A_rw9IVRw9zB3Zw73PGOc2R3Y,447
39
- src/migrations/up/007_create_logs.sql,sha256=IV7vy9U1mGnN4nAZqLwTCyII9Qeeqzx-b1_sSsk1PO4,345
40
- src/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- src/schemas/activity.py,sha256=0sYvmmsVhDFFPyOHkVm0tajVaAAzoq5wY6-K03nPSos,266
42
- src/schemas/database.py,sha256=v9JXHWx4G_r1-SJcrCJkcnaI7Zbic-ZxtHnd7ezXrF8,282
43
- src/schemas/events.py,sha256=Gz-R836nVXNSsp4Y54idhKs_WTvzFPmx5KlA8PunP28,2216
44
- src/schemas/tasks.py,sha256=DJbLInggIGxI-CfP1kSyK79Bz83e3sZyEKh6C2HE8q4,1341
45
- src/schemas/workflow.py,sha256=F1cNEJRuEWLjPhGinEZE2T6vwchDC8RuTHmxEIaH6Ls,671
46
- loom_core-0.1.0.dist-info/METADATA,sha256=xMFFZyf9gfKbwMCCyhKKOq3uxZePKTCJweptoqgpiao,11944
47
- loom_core-0.1.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
48
- loom_core-0.1.0.dist-info/entry_points.txt,sha256=CgWbuziOoZ90zDBfSlj8mpMOu3scxAzYN10vnYWn9Gk,41
49
- loom_core-0.1.0.dist-info/top_level.txt,sha256=74rtVfumQlgAPzR5_2CgYN24MB0XARCg0t-gzk6gTrM,4
50
- loom_core-0.1.0.dist-info/RECORD,,
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- loom = src.cli.cli:cli
@@ -1 +0,0 @@
1
- src
File without changes
{src → loom}/cli/cli.py RENAMED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes