horsies 0.1.0a3__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.
- horsies-0.1.0a3/PKG-INFO +35 -0
- horsies-0.1.0a3/README.md +9 -0
- horsies-0.1.0a3/horsies/__init__.py +117 -0
- horsies-0.1.0a3/horsies/core/__init__.py +0 -0
- horsies-0.1.0a3/horsies/core/app.py +552 -0
- horsies-0.1.0a3/horsies/core/banner.py +144 -0
- horsies-0.1.0a3/horsies/core/brokers/__init__.py +5 -0
- horsies-0.1.0a3/horsies/core/brokers/listener.py +444 -0
- horsies-0.1.0a3/horsies/core/brokers/postgres.py +993 -0
- horsies-0.1.0a3/horsies/core/cli.py +624 -0
- horsies-0.1.0a3/horsies/core/codec/serde.py +596 -0
- horsies-0.1.0a3/horsies/core/errors.py +535 -0
- horsies-0.1.0a3/horsies/core/logging.py +90 -0
- horsies-0.1.0a3/horsies/core/models/__init__.py +0 -0
- horsies-0.1.0a3/horsies/core/models/app.py +268 -0
- horsies-0.1.0a3/horsies/core/models/broker.py +79 -0
- horsies-0.1.0a3/horsies/core/models/queues.py +23 -0
- horsies-0.1.0a3/horsies/core/models/recovery.py +101 -0
- horsies-0.1.0a3/horsies/core/models/schedule.py +229 -0
- horsies-0.1.0a3/horsies/core/models/task_pg.py +307 -0
- horsies-0.1.0a3/horsies/core/models/tasks.py +358 -0
- horsies-0.1.0a3/horsies/core/models/workflow.py +1990 -0
- horsies-0.1.0a3/horsies/core/models/workflow_pg.py +245 -0
- horsies-0.1.0a3/horsies/core/registry/tasks.py +101 -0
- horsies-0.1.0a3/horsies/core/scheduler/__init__.py +26 -0
- horsies-0.1.0a3/horsies/core/scheduler/calculator.py +267 -0
- horsies-0.1.0a3/horsies/core/scheduler/service.py +569 -0
- horsies-0.1.0a3/horsies/core/scheduler/state.py +260 -0
- horsies-0.1.0a3/horsies/core/task_decorator.py +656 -0
- horsies-0.1.0a3/horsies/core/types/status.py +38 -0
- horsies-0.1.0a3/horsies/core/utils/imports.py +203 -0
- horsies-0.1.0a3/horsies/core/utils/loop_runner.py +44 -0
- horsies-0.1.0a3/horsies/core/worker/current.py +17 -0
- horsies-0.1.0a3/horsies/core/worker/worker.py +1967 -0
- horsies-0.1.0a3/horsies/core/workflows/__init__.py +23 -0
- horsies-0.1.0a3/horsies/core/workflows/engine.py +2344 -0
- horsies-0.1.0a3/horsies/core/workflows/recovery.py +501 -0
- horsies-0.1.0a3/horsies/core/workflows/registry.py +97 -0
- horsies-0.1.0a3/horsies/py.typed +0 -0
- horsies-0.1.0a3/horsies.egg-info/PKG-INFO +35 -0
- horsies-0.1.0a3/horsies.egg-info/SOURCES.txt +46 -0
- horsies-0.1.0a3/horsies.egg-info/dependency_links.txt +1 -0
- horsies-0.1.0a3/horsies.egg-info/entry_points.txt +2 -0
- horsies-0.1.0a3/horsies.egg-info/requires.txt +6 -0
- horsies-0.1.0a3/horsies.egg-info/top_level.txt +1 -0
- horsies-0.1.0a3/pyproject.toml +86 -0
- horsies-0.1.0a3/setup.cfg +4 -0
- horsies-0.1.0a3/tests/test_issue_fixes.py +239 -0
horsies-0.1.0a3/PKG-INFO
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: horsies
|
|
3
|
+
Version: 0.1.0a3
|
|
4
|
+
Summary: A Python library for distributed task execution
|
|
5
|
+
Author: Suleyman Ozkeskin
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/suleymanozkeskin/horsies
|
|
8
|
+
Project-URL: Repository, https://github.com/suleymanozkeskin/horsies
|
|
9
|
+
Project-URL: Issues, https://github.com/suleymanozkeskin/horsies/issues
|
|
10
|
+
Keywords: task-queue,workflow-engine,dag,scheduling,distributed,postgres,async
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
14
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
15
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
16
|
+
Classifier: Topic :: System :: Networking
|
|
17
|
+
Classifier: Typing :: Typed
|
|
18
|
+
Requires-Python: >=3.13
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
Requires-Dist: greenlet>=3.3.0
|
|
21
|
+
Requires-Dist: psutil>=7.2.1
|
|
22
|
+
Requires-Dist: psycopg>=3.3.2
|
|
23
|
+
Requires-Dist: psycopg-pool>=3.2.0
|
|
24
|
+
Requires-Dist: pydantic>=2.12.5
|
|
25
|
+
Requires-Dist: sqlalchemy>=2.0.46
|
|
26
|
+
|
|
27
|
+
# Horsies
|
|
28
|
+
|
|
29
|
+
A PostgreSQL-backed distributed task queue and workflow engine for Python.
|
|
30
|
+
|
|
31
|
+
Documentation: [horsies docs](https://suleymanozkeskin.github.io/horsies/)
|
|
32
|
+
|
|
33
|
+
## Syce
|
|
34
|
+
|
|
35
|
+
Monitoring TUI for horsies. Documentation: [syce overview](https://suleymanozkeskin.github.io/horsies/monitoring/syce-overview/)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Horsies
|
|
2
|
+
|
|
3
|
+
A PostgreSQL-backed distributed task queue and workflow engine for Python.
|
|
4
|
+
|
|
5
|
+
Documentation: [horsies docs](https://suleymanozkeskin.github.io/horsies/)
|
|
6
|
+
|
|
7
|
+
## Syce
|
|
8
|
+
|
|
9
|
+
Monitoring TUI for horsies. Documentation: [syce overview](https://suleymanozkeskin.github.io/horsies/monitoring/syce-overview/)
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"""Task Library - A Python library for distributed task execution"""
|
|
2
|
+
|
|
3
|
+
# Install Rust-style error handler on import
|
|
4
|
+
from .core.errors import install_error_handler as _install_error_handler
|
|
5
|
+
|
|
6
|
+
_install_error_handler()
|
|
7
|
+
|
|
8
|
+
from .core.app import Horsies
|
|
9
|
+
from .core.models.app import AppConfig
|
|
10
|
+
from .core.models.broker import PostgresConfig
|
|
11
|
+
from .core.models.tasks import (
|
|
12
|
+
TaskResult,
|
|
13
|
+
TaskError,
|
|
14
|
+
LibraryErrorCode,
|
|
15
|
+
SubWorkflowError,
|
|
16
|
+
RetryPolicy,
|
|
17
|
+
TaskInfo,
|
|
18
|
+
)
|
|
19
|
+
from .core.models.queues import QueueMode, CustomQueueConfig
|
|
20
|
+
from .core.models.workflow import (
|
|
21
|
+
WorkflowSpec,
|
|
22
|
+
TaskNode,
|
|
23
|
+
SubWorkflowNode,
|
|
24
|
+
AnyNode,
|
|
25
|
+
WorkflowHandle,
|
|
26
|
+
WorkflowStatus,
|
|
27
|
+
WorkflowTaskStatus,
|
|
28
|
+
WorkflowContext,
|
|
29
|
+
WorkflowMeta,
|
|
30
|
+
OnError,
|
|
31
|
+
WorkflowValidationError,
|
|
32
|
+
WorkflowDefinition,
|
|
33
|
+
slugify,
|
|
34
|
+
SubWorkflowRetryMode,
|
|
35
|
+
SubWorkflowSummary,
|
|
36
|
+
SuccessCase,
|
|
37
|
+
SuccessPolicy,
|
|
38
|
+
NodeKey,
|
|
39
|
+
WorkflowTaskInfo,
|
|
40
|
+
WorkflowContextMissingIdError,
|
|
41
|
+
WorkflowHandleMissingIdError,
|
|
42
|
+
WORKFLOW_TERMINAL_STATES,
|
|
43
|
+
WORKFLOW_TASK_TERMINAL_STATES,
|
|
44
|
+
)
|
|
45
|
+
from .core.workflows.engine import start_workflow, start_workflow_async
|
|
46
|
+
from .core.models.schedule import (
|
|
47
|
+
Weekday,
|
|
48
|
+
IntervalSchedule,
|
|
49
|
+
HourlySchedule,
|
|
50
|
+
DailySchedule,
|
|
51
|
+
WeeklySchedule,
|
|
52
|
+
MonthlySchedule,
|
|
53
|
+
SchedulePattern,
|
|
54
|
+
TaskSchedule,
|
|
55
|
+
ScheduleConfig,
|
|
56
|
+
)
|
|
57
|
+
from .core.models.recovery import RecoveryConfig
|
|
58
|
+
from .core.types.status import TaskStatus, TASK_TERMINAL_STATES
|
|
59
|
+
from .core.errors import ErrorCode, ValidationReport, MultipleValidationErrors
|
|
60
|
+
|
|
61
|
+
__all__ = [
|
|
62
|
+
# Core
|
|
63
|
+
'Horsies',
|
|
64
|
+
'AppConfig',
|
|
65
|
+
'PostgresConfig',
|
|
66
|
+
'TaskResult',
|
|
67
|
+
'TaskError',
|
|
68
|
+
'LibraryErrorCode',
|
|
69
|
+
'SubWorkflowError',
|
|
70
|
+
'RetryPolicy',
|
|
71
|
+
'TaskInfo',
|
|
72
|
+
'QueueMode',
|
|
73
|
+
'CustomQueueConfig',
|
|
74
|
+
'TaskStatus',
|
|
75
|
+
'TASK_TERMINAL_STATES',
|
|
76
|
+
'ErrorCode',
|
|
77
|
+
'ValidationReport',
|
|
78
|
+
'MultipleValidationErrors',
|
|
79
|
+
# Workflow
|
|
80
|
+
'WorkflowSpec',
|
|
81
|
+
'TaskNode',
|
|
82
|
+
'SubWorkflowNode',
|
|
83
|
+
'AnyNode',
|
|
84
|
+
'WorkflowHandle',
|
|
85
|
+
'WorkflowStatus',
|
|
86
|
+
'WorkflowTaskStatus',
|
|
87
|
+
'WorkflowContext',
|
|
88
|
+
'WorkflowMeta',
|
|
89
|
+
'OnError',
|
|
90
|
+
'WorkflowValidationError',
|
|
91
|
+
'WorkflowDefinition',
|
|
92
|
+
'slugify',
|
|
93
|
+
'SubWorkflowRetryMode',
|
|
94
|
+
'SubWorkflowSummary',
|
|
95
|
+
'SuccessCase',
|
|
96
|
+
'SuccessPolicy',
|
|
97
|
+
'NodeKey',
|
|
98
|
+
'WorkflowTaskInfo',
|
|
99
|
+
'WorkflowContextMissingIdError',
|
|
100
|
+
'WorkflowHandleMissingIdError',
|
|
101
|
+
'WORKFLOW_TERMINAL_STATES',
|
|
102
|
+
'WORKFLOW_TASK_TERMINAL_STATES',
|
|
103
|
+
'start_workflow',
|
|
104
|
+
'start_workflow_async',
|
|
105
|
+
# Scheduling
|
|
106
|
+
'Weekday',
|
|
107
|
+
'IntervalSchedule',
|
|
108
|
+
'HourlySchedule',
|
|
109
|
+
'DailySchedule',
|
|
110
|
+
'WeeklySchedule',
|
|
111
|
+
'MonthlySchedule',
|
|
112
|
+
'SchedulePattern',
|
|
113
|
+
'TaskSchedule',
|
|
114
|
+
'ScheduleConfig',
|
|
115
|
+
# Recovery
|
|
116
|
+
'RecoveryConfig',
|
|
117
|
+
]
|
|
File without changes
|