durabletask 0.0.0.dev25__tar.gz → 0.0.0.dev26__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.
Files changed (31) hide show
  1. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/PKG-INFO +1 -1
  2. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/client.py +4 -1
  3. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/task.py +3 -11
  4. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/worker.py +17 -15
  5. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask.egg-info/PKG-INFO +1 -1
  6. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/pyproject.toml +1 -1
  7. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/LICENSE +0 -0
  8. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/README.md +0 -0
  9. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/__init__.py +0 -0
  10. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/entities/__init__.py +0 -0
  11. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/entities/durable_entity.py +0 -0
  12. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/entities/entity_context.py +0 -0
  13. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/entities/entity_instance_id.py +0 -0
  14. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/entities/entity_lock.py +0 -0
  15. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/entities/entity_metadata.py +0 -0
  16. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/internal/entity_state_shim.py +0 -0
  17. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/internal/exceptions.py +0 -0
  18. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/internal/grpc_interceptor.py +0 -0
  19. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/internal/helpers.py +0 -0
  20. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/internal/orchestration_entity_context.py +0 -0
  21. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/internal/orchestrator_service_pb2.py +0 -0
  22. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/internal/orchestrator_service_pb2.pyi +0 -0
  23. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/internal/orchestrator_service_pb2_grpc.py +0 -0
  24. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/internal/proto_task_hub_sidecar_service_stub.py +0 -0
  25. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/internal/shared.py +0 -0
  26. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask/py.typed +0 -0
  27. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask.egg-info/SOURCES.txt +0 -0
  28. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask.egg-info/dependency_links.txt +0 -0
  29. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask.egg-info/requires.txt +0 -0
  30. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/durabletask.egg-info/top_level.txt +0 -0
  31. {durabletask-0.0.0.dev25 → durabletask-0.0.0.dev26}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: durabletask
3
- Version: 0.0.0.dev25
3
+ Version: 0.0.0.dev26
4
4
  Summary: A Durable Task Client SDK for Python
5
5
  License: MIT License
6
6
 
@@ -230,7 +230,10 @@ 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, entity_instance_id: EntityInstanceId, operation_name: str, input: Optional[Any] = None):
233
+ def signal_entity(self,
234
+ entity_instance_id: EntityInstanceId,
235
+ operation_name: str,
236
+ input: Optional[Any] = None) -> None:
234
237
  req = pb.SignalEntityRequest(
235
238
  instanceId=str(entity_instance_id),
236
239
  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[Any]:
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 and receive/return any type
542
- Orchestrator = Callable[[OrchestrationContext, TInput], Union[Generator[Task, Any, Any], TOutput]]
541
+ # Orchestrators are generators that yield tasks, recieve any type, and return TOutput
542
+ Orchestrator = Callable[[OrchestrationContext, TInput], Union[Generator[Task[Any], Any, TOutput], TOutput]]
543
543
 
544
544
  # Activities are simple functions that can be scheduled by orchestrators
545
545
  Activity = Callable[[ActivityContext, TInput], TOutput]
@@ -615,14 +615,6 @@ 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
-
626
618
  def get_name(fn: Callable) -> str:
627
619
  """Returns the name of the provided function"""
628
620
  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) -> str:
153
+ def add_orchestrator(self, fn: task.Orchestrator[TInput, TOutput]) -> 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) -> None:
161
+ def add_named_orchestrator(self, name: str, fn: task.Orchestrator[TInput, TOutput]) -> 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[Any, Any]]:
170
170
  return self.orchestrators.get(name)
171
171
 
172
- def add_activity(self, fn: task.Activity) -> str:
172
+ def add_activity(self, fn: task.Activity[TInput, TOutput]) -> 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) -> None:
180
+ def add_named_activity(self, name: str, fn: task.Activity[TInput, TOutput]) -> 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,17 +185,19 @@ 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[Any, Any]]:
189
189
  return self.activities.get(name)
190
190
 
191
- def add_entity(self, fn: task.Entity, name: Optional[str] = None) -> str:
191
+ def add_entity(self, fn: task.Entity) -> str:
192
192
  if fn is None:
193
193
  raise ValueError("An entity function argument is required.")
194
194
 
195
- if name is None:
196
- name = task.get_entity_name(fn)
197
-
198
- self.add_named_entity(name, fn)
195
+ if isinstance(fn, type) and issubclass(fn, DurableEntity):
196
+ name = fn.__name__
197
+ self.add_named_entity(name, fn)
198
+ else:
199
+ name = task.get_name(fn)
200
+ self.add_named_entity(name, fn)
199
201
  return name
200
202
 
201
203
  def add_named_entity(self, name: str, fn: task.Entity) -> None:
@@ -360,7 +362,7 @@ class TaskHubGrpcWorker:
360
362
  def __exit__(self, type, value, traceback):
361
363
  self.stop()
362
364
 
363
- def add_orchestrator(self, fn: task.Orchestrator) -> str:
365
+ def add_orchestrator(self, fn: task.Orchestrator[TInput, TOutput]) -> str:
364
366
  """Registers an orchestrator function with the worker."""
365
367
  if self._is_running:
366
368
  raise RuntimeError(
@@ -376,13 +378,13 @@ class TaskHubGrpcWorker:
376
378
  )
377
379
  return self._registry.add_activity(fn)
378
380
 
379
- def add_entity(self, fn: task.Entity, name: Optional[str] = None) -> str:
381
+ def add_entity(self, fn: task.Entity) -> str:
380
382
  """Registers an entity function with the worker."""
381
383
  if self._is_running:
382
384
  raise RuntimeError(
383
385
  "Entities cannot be added while the worker is running."
384
386
  )
385
- return self._registry.add_entity(fn, name)
387
+ return self._registry.add_entity(fn)
386
388
 
387
389
  def use_versioning(self, version: VersioningOptions) -> None:
388
390
  """Initializes versioning options for sub-orchestrators and activities."""
@@ -1045,7 +1047,7 @@ class _RuntimeOrchestrationContext(task.OrchestrationContext):
1045
1047
  entity: EntityInstanceId,
1046
1048
  operation: str,
1047
1049
  input: Optional[TInput] = None,
1048
- ) -> task.CompletableTask:
1050
+ ) -> task.CompletableTask[Any]:
1049
1051
  id = self.next_sequence_number()
1050
1052
 
1051
1053
  self.call_entity_function_helper(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: durabletask
3
- Version: 0.0.0.dev25
3
+ Version: 0.0.0.dev26
4
4
  Summary: A Durable Task Client SDK for Python
5
5
  License: MIT License
6
6
 
@@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta"
9
9
 
10
10
  [project]
11
11
  name = "durabletask"
12
- version = "0.0.0.dev25"
12
+ version = "0.0.0.dev26"
13
13
  description = "A Durable Task Client SDK for Python"
14
14
  keywords = [
15
15
  "durable",