durabletask 0.0.0.dev27__tar.gz → 0.0.0.dev28__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.
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/PKG-INFO +1 -1
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/client.py +1 -4
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/task.py +11 -3
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/worker.py +15 -17
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask.egg-info/PKG-INFO +1 -1
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/pyproject.toml +1 -1
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/LICENSE +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/README.md +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/__init__.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/entities/__init__.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/entities/durable_entity.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/entities/entity_context.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/entities/entity_instance_id.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/entities/entity_lock.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/entities/entity_metadata.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/entity_state_shim.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/exceptions.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/grpc_interceptor.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/helpers.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/orchestration_entity_context.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/orchestrator_service_pb2.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/orchestrator_service_pb2.pyi +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/orchestrator_service_pb2_grpc.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/proto_task_hub_sidecar_service_stub.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/shared.py +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/py.typed +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask.egg-info/SOURCES.txt +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask.egg-info/dependency_links.txt +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask.egg-info/requires.txt +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask.egg-info/top_level.txt +0 -0
- {durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/setup.cfg +0 -0
|
@@ -230,10 +230,7 @@ class TaskHubGrpcClient:
|
|
|
230
230
|
self._logger.info(f"Purging instance '{instance_id}'.")
|
|
231
231
|
self._stub.PurgeInstances(req)
|
|
232
232
|
|
|
233
|
-
def signal_entity(self,
|
|
234
|
-
entity_instance_id: EntityInstanceId,
|
|
235
|
-
operation_name: str,
|
|
236
|
-
input: Optional[Any] = None) -> None:
|
|
233
|
+
def signal_entity(self, entity_instance_id: EntityInstanceId, operation_name: str, input: Optional[Any] = None):
|
|
237
234
|
req = pb.SignalEntityRequest(
|
|
238
235
|
instanceId=str(entity_instance_id),
|
|
239
236
|
name=operation_name,
|
|
@@ -142,7 +142,7 @@ class OrchestrationContext(ABC):
|
|
|
142
142
|
def call_entity(self,
|
|
143
143
|
entity: EntityInstanceId,
|
|
144
144
|
operation: str,
|
|
145
|
-
input: Optional[TInput] = None) -> CompletableTask
|
|
145
|
+
input: Optional[TInput] = None) -> CompletableTask:
|
|
146
146
|
"""Schedule entity function for execution.
|
|
147
147
|
|
|
148
148
|
Parameters
|
|
@@ -538,8 +538,8 @@ class ActivityContext:
|
|
|
538
538
|
return self._task_id
|
|
539
539
|
|
|
540
540
|
|
|
541
|
-
# Orchestrators are generators that yield tasks
|
|
542
|
-
Orchestrator = Callable[[OrchestrationContext, TInput], Union[Generator[Task
|
|
541
|
+
# Orchestrators are generators that yield tasks and receive/return any type
|
|
542
|
+
Orchestrator = Callable[[OrchestrationContext, TInput], Union[Generator[Task, Any, Any], TOutput]]
|
|
543
543
|
|
|
544
544
|
# Activities are simple functions that can be scheduled by orchestrators
|
|
545
545
|
Activity = Callable[[ActivityContext, TInput], TOutput]
|
|
@@ -615,6 +615,14 @@ class RetryPolicy:
|
|
|
615
615
|
return self._retry_timeout
|
|
616
616
|
|
|
617
617
|
|
|
618
|
+
def get_entity_name(fn: Entity) -> str:
|
|
619
|
+
if hasattr(fn, "__durable_entity_name__"):
|
|
620
|
+
return getattr(fn, "__durable_entity_name__")
|
|
621
|
+
if isinstance(fn, type) and issubclass(fn, DurableEntity):
|
|
622
|
+
return fn.__name__
|
|
623
|
+
return get_name(fn)
|
|
624
|
+
|
|
625
|
+
|
|
618
626
|
def get_name(fn: Callable) -> str:
|
|
619
627
|
"""Returns the name of the provided function"""
|
|
620
628
|
name = fn.__name__
|
|
@@ -150,7 +150,7 @@ class _Registry:
|
|
|
150
150
|
self.entities = {}
|
|
151
151
|
self.entity_instances = {}
|
|
152
152
|
|
|
153
|
-
def add_orchestrator(self, fn: task.Orchestrator
|
|
153
|
+
def add_orchestrator(self, fn: task.Orchestrator) -> str:
|
|
154
154
|
if fn is None:
|
|
155
155
|
raise ValueError("An orchestrator function argument is required.")
|
|
156
156
|
|
|
@@ -158,7 +158,7 @@ class _Registry:
|
|
|
158
158
|
self.add_named_orchestrator(name, fn)
|
|
159
159
|
return name
|
|
160
160
|
|
|
161
|
-
def add_named_orchestrator(self, name: str, fn: task.Orchestrator
|
|
161
|
+
def add_named_orchestrator(self, name: str, fn: task.Orchestrator) -> None:
|
|
162
162
|
if not name:
|
|
163
163
|
raise ValueError("A non-empty orchestrator name is required.")
|
|
164
164
|
if name in self.orchestrators:
|
|
@@ -166,10 +166,10 @@ class _Registry:
|
|
|
166
166
|
|
|
167
167
|
self.orchestrators[name] = fn
|
|
168
168
|
|
|
169
|
-
def get_orchestrator(self, name: str) -> Optional[task.Orchestrator
|
|
169
|
+
def get_orchestrator(self, name: str) -> Optional[task.Orchestrator]:
|
|
170
170
|
return self.orchestrators.get(name)
|
|
171
171
|
|
|
172
|
-
def add_activity(self, fn: task.Activity
|
|
172
|
+
def add_activity(self, fn: task.Activity) -> str:
|
|
173
173
|
if fn is None:
|
|
174
174
|
raise ValueError("An activity function argument is required.")
|
|
175
175
|
|
|
@@ -177,7 +177,7 @@ class _Registry:
|
|
|
177
177
|
self.add_named_activity(name, fn)
|
|
178
178
|
return name
|
|
179
179
|
|
|
180
|
-
def add_named_activity(self, name: str, fn: task.Activity
|
|
180
|
+
def add_named_activity(self, name: str, fn: task.Activity) -> None:
|
|
181
181
|
if not name:
|
|
182
182
|
raise ValueError("A non-empty activity name is required.")
|
|
183
183
|
if name in self.activities:
|
|
@@ -185,19 +185,17 @@ class _Registry:
|
|
|
185
185
|
|
|
186
186
|
self.activities[name] = fn
|
|
187
187
|
|
|
188
|
-
def get_activity(self, name: str) -> Optional[task.Activity
|
|
188
|
+
def get_activity(self, name: str) -> Optional[task.Activity]:
|
|
189
189
|
return self.activities.get(name)
|
|
190
190
|
|
|
191
|
-
def add_entity(self, fn: task.Entity) -> str:
|
|
191
|
+
def add_entity(self, fn: task.Entity, name: Optional[str] = None) -> str:
|
|
192
192
|
if fn is None:
|
|
193
193
|
raise ValueError("An entity function argument is required.")
|
|
194
194
|
|
|
195
|
-
if
|
|
196
|
-
name = fn
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
name = task.get_name(fn)
|
|
200
|
-
self.add_named_entity(name, fn)
|
|
195
|
+
if name is None:
|
|
196
|
+
name = task.get_entity_name(fn)
|
|
197
|
+
|
|
198
|
+
self.add_named_entity(name, fn)
|
|
201
199
|
return name
|
|
202
200
|
|
|
203
201
|
def add_named_entity(self, name: str, fn: task.Entity) -> None:
|
|
@@ -362,7 +360,7 @@ class TaskHubGrpcWorker:
|
|
|
362
360
|
def __exit__(self, type, value, traceback):
|
|
363
361
|
self.stop()
|
|
364
362
|
|
|
365
|
-
def add_orchestrator(self, fn: task.Orchestrator
|
|
363
|
+
def add_orchestrator(self, fn: task.Orchestrator) -> str:
|
|
366
364
|
"""Registers an orchestrator function with the worker."""
|
|
367
365
|
if self._is_running:
|
|
368
366
|
raise RuntimeError(
|
|
@@ -378,13 +376,13 @@ class TaskHubGrpcWorker:
|
|
|
378
376
|
)
|
|
379
377
|
return self._registry.add_activity(fn)
|
|
380
378
|
|
|
381
|
-
def add_entity(self, fn: task.Entity) -> str:
|
|
379
|
+
def add_entity(self, fn: task.Entity, name: Optional[str] = None) -> str:
|
|
382
380
|
"""Registers an entity function with the worker."""
|
|
383
381
|
if self._is_running:
|
|
384
382
|
raise RuntimeError(
|
|
385
383
|
"Entities cannot be added while the worker is running."
|
|
386
384
|
)
|
|
387
|
-
return self._registry.add_entity(fn)
|
|
385
|
+
return self._registry.add_entity(fn, name)
|
|
388
386
|
|
|
389
387
|
def use_versioning(self, version: VersioningOptions) -> None:
|
|
390
388
|
"""Initializes versioning options for sub-orchestrators and activities."""
|
|
@@ -1047,7 +1045,7 @@ class _RuntimeOrchestrationContext(task.OrchestrationContext):
|
|
|
1047
1045
|
entity: EntityInstanceId,
|
|
1048
1046
|
operation: str,
|
|
1049
1047
|
input: Optional[TInput] = None,
|
|
1050
|
-
) -> task.CompletableTask
|
|
1048
|
+
) -> task.CompletableTask:
|
|
1051
1049
|
id = self.next_sequence_number()
|
|
1052
1050
|
|
|
1053
1051
|
self.call_entity_function_helper(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/entities/entity_instance_id.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/entity_state_shim.py
RENAMED
|
File without changes
|
|
File without changes
|
{durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/grpc_interceptor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask/internal/orchestrator_service_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{durabletask-0.0.0.dev27 → durabletask-0.0.0.dev28}/durabletask.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|