Skip to content

Commit ac9b45d

Browse files
committed
creae exclusive aio package for all the async code, also the same for tests
Signed-off-by: Filinto Duran <[email protected]>
1 parent 872e3c7 commit ac9b45d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+15086
-1721
lines changed

.pre-commit-config.yaml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Pre-commit configuration for durabletask-python
2+
repos:
3+
- repo: https://github.com/pre-commit/pre-commit-hooks
4+
rev: v4.4.0
5+
hooks:
6+
- id: trailing-whitespace
7+
- id: end-of-file-fixer
8+
- id: check-yaml
9+
- id: check-added-large-files
10+
- id: check-merge-conflict
11+
12+
- repo: https://github.com/astral-sh/ruff-pre-commit
13+
rev: v0.2.2
14+
hooks:
15+
- id: ruff
16+
args: [--fix, --exit-non-zero-on-fix]
17+
- id: ruff-format
18+
19+
- repo: https://github.com/pre-commit/mirrors-mypy
20+
rev: v1.8.0
21+
hooks:
22+
- id: mypy
23+
additional_dependencies: [types-protobuf]
24+
args: [--config-file=mypy.ini]
25+
files: ^durabletask/
26+
exclude: ^durabletask/internal/.*_pb2\.py$
27+
28+
- repo: local
29+
hooks:
30+
- id: pytest-asyncio
31+
name: Run asyncio tests
32+
entry: python -m pytest tests/aio/ -q
33+
language: system
34+
pass_filenames: false
35+
stages: [pre-push] # Only run on git push, not every commit
36+
37+
38+

durabletask/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
PACKAGE_NAME = "durabletask"
88

9-
# Public async compatibility exports
10-
from durabletask.asyncio_compat import ( # noqa: F401
11-
AsyncWorkflowContext,
12-
CoroutineOrchestratorRunner,
9+
# Public async exports (import directly from durabletask.aio)
10+
from durabletask.aio import ( # noqa: F401
11+
AsyncWorkflowContext,
12+
CoroutineOrchestratorRunner,
1313
)

durabletask/aio/__init__.py

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
"""Async workflow primitives (aio namespace).
2+
3+
This package contains the async implementation previously under
4+
`durabletask.asyncio`, now moved to `durabletask.aio` for naming
5+
consistency.
6+
"""
7+
8+
# Deterministic utilities
9+
from durabletask.deterministic import (
10+
DeterminismSeed,
11+
DeterministicContextMixin,
12+
derive_seed,
13+
deterministic_random,
14+
deterministic_uuid4,
15+
)
16+
17+
# Awaitable classes
18+
from .awaitables import (
19+
ActivityAwaitable,
20+
AwaitableBase,
21+
ExternalEventAwaitable,
22+
SleepAwaitable,
23+
SubOrchestratorAwaitable,
24+
SwallowExceptionAwaitable,
25+
TimeoutAwaitable,
26+
WhenAllAwaitable,
27+
WhenAnyAwaitable,
28+
WhenAnyResultAwaitable,
29+
gather,
30+
)
31+
32+
# Compatibility protocol (core functionality only)
33+
from .compatibility import OrchestrationContextProtocol, ensure_compatibility
34+
35+
# Core context and driver
36+
from .context import AsyncWorkflowContext
37+
from .driver import CoroutineOrchestratorRunner, WorkflowFunction
38+
39+
# Sandbox and error handling
40+
from .errors import (
41+
AsyncWorkflowError,
42+
NonDeterminismWarning,
43+
SandboxViolationError,
44+
WorkflowTimeoutError,
45+
WorkflowValidationError,
46+
)
47+
from .sandbox import (
48+
SandboxMode,
49+
_NonDeterminismDetector,
50+
sandbox_best_effort,
51+
sandbox_off,
52+
sandbox_scope,
53+
sandbox_strict,
54+
)
55+
56+
__all__ = [
57+
# Core classes
58+
"AsyncWorkflowContext",
59+
"CoroutineOrchestratorRunner",
60+
"WorkflowFunction",
61+
62+
# Deterministic utilities
63+
"DeterministicContextMixin",
64+
"DeterminismSeed",
65+
"derive_seed",
66+
"deterministic_random",
67+
"deterministic_uuid4",
68+
69+
# Awaitable classes
70+
"AwaitableBase",
71+
"ActivityAwaitable",
72+
"SubOrchestratorAwaitable",
73+
"SleepAwaitable",
74+
"ExternalEventAwaitable",
75+
"WhenAllAwaitable",
76+
"WhenAnyAwaitable",
77+
"WhenAnyResultAwaitable",
78+
"TimeoutAwaitable",
79+
"SwallowExceptionAwaitable",
80+
"gather",
81+
82+
# Sandbox and utilities
83+
"sandbox_scope",
84+
"SandboxMode",
85+
"sandbox_off",
86+
"sandbox_best_effort",
87+
"sandbox_strict",
88+
"_NonDeterminismDetector",
89+
90+
# Compatibility protocol
91+
"OrchestrationContextProtocol",
92+
"ensure_compatibility",
93+
94+
# Exceptions
95+
"AsyncWorkflowError",
96+
"NonDeterminismWarning",
97+
"WorkflowTimeoutError",
98+
"WorkflowValidationError",
99+
"SandboxViolationError",
100+
]
101+
102+

0 commit comments

Comments
 (0)