dex-python-sdk 0.9.0__tar.gz → 0.11.2__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 (65) hide show
  1. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/PKG-INFO +7 -10
  2. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/README.md +6 -9
  3. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/async_client.py +25 -20
  4. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/client.py +25 -21
  5. dex_python_sdk-0.11.2/dex/dexpb/dex_pb2.py +509 -0
  6. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/dexpb/dex_pb2.pyi +36 -10
  7. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/dexpb/dex_pb2_grpc.py +6 -6
  8. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/runtime_errors.py +2 -2
  9. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/wait_options.py +14 -16
  10. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/pyproject.toml +1 -1
  11. dex_python_sdk-0.9.0/dex/dexpb/dex_pb2.py +0 -505
  12. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/LEGACY_NOTICES.md +0 -0
  13. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/LICENSE +0 -0
  14. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/__init__.py +0 -0
  15. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_async_value_hydrator.py +0 -0
  16. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_async_worker_dispatcher.py +0 -0
  17. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_async_worker_service.py +0 -0
  18. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_grpc_errors.py +0 -0
  19. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_invocation_context.py +0 -0
  20. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_native.pyi +0 -0
  21. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_server_protocol.py +0 -0
  22. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_utils.py +0 -0
  23. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_value_hydrator.py +0 -0
  24. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_value_mapper.py +0 -0
  25. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_worker_dispatcher.py +0 -0
  26. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/_worker_service.py +0 -0
  27. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/async_worker.py +0 -0
  28. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/attribute.py +0 -0
  29. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/attribute_match.py +0 -0
  30. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/blob_cache.py +0 -0
  31. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/channel.py +0 -0
  32. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/client_options.py +0 -0
  33. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/codec.py +0 -0
  34. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/condition.py +0 -0
  35. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/context.py +0 -0
  36. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/dexpb/__init__.py +0 -0
  37. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/flow.py +0 -0
  38. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/flow_config.py +0 -0
  39. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/flow_info.py +0 -0
  40. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/flow_options.py +0 -0
  41. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/flow_result.py +0 -0
  42. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/py.typed +0 -0
  43. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/step.py +0 -0
  44. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/step_execution.py +0 -0
  45. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/stream.py +0 -0
  46. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/subflow.py +0 -0
  47. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/timer.py +0 -0
  48. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/wait.py +0 -0
  49. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/worker.py +0 -0
  50. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/dex/worker_options.py +0 -0
  51. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/Cargo.lock +0 -0
  52. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/Cargo.toml +0 -0
  53. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache/Cargo.toml +0 -0
  54. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache/LICENSE +0 -0
  55. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache/src/config.rs +0 -0
  56. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache/src/entry.rs +0 -0
  57. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache/src/error.rs +0 -0
  58. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache/src/format.rs +0 -0
  59. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache/src/lib.rs +0 -0
  60. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache/src/policy.rs +0 -0
  61. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache/src/store.rs +0 -0
  62. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache/tests/blob_cache_integration.rs +0 -0
  63. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache-python/Cargo.toml +0 -0
  64. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache-python/LICENSE +0 -0
  65. {dex_python_sdk-0.9.0 → dex_python_sdk-0.11.2}/sdk-rust/crates/dex-blob-cache-python/src/lib.rs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dex-python-sdk
3
- Version: 0.9.0
3
+ Version: 0.11.2
4
4
  Requires-Dist: grpcio>=1.83.0
5
5
  Requires-Dist: grpcio-status>=1.83.0
6
6
  Requires-Dist: protobuf>=7.35.1
@@ -362,15 +362,12 @@ include buffered publishes, and omit empty instances. Keys are decoded and
362
362
  sorted. Use `force_complete_if_channels_empty(...)` for conditional completion.
363
363
 
364
364
  Request IDs are optional for both durable waits. When omitted, the server
365
- derives a namespaced stable ID from the Step execution or Attribute condition,
366
- such as `wait-for-attribute:myInt>10`. Reuse an override only for the same
367
- logical wait. The Client automatically reattaches transport long polls. If an
368
- earlier Update with that ID exhausted its handler budget, the server appends an
369
- increasing `-N` suffix and starts a new Update. `maximum_wait_time` is optional
370
- and is the total handler budget across reattachments; zero waits indefinitely.
371
- A positive budget expiry raises `WaitHandlerTimeoutError`. An abandoned infinite
372
- wait remains accepted and counts against Temporal's in-flight Update limit until
373
- it completes or the Flow closes.
365
+ derives a stable ID from the Step execution or Attribute condition. Reuse an
366
+ override only for the same wait. `maximum_wait_time` is optional. Leave it at
367
+ zero for normal use and bound one response with the caller deadline. Positive
368
+ values are an exceptional safety valve: short budgets can add many Temporal
369
+ Update events to Workflow history. If a positive value is truly needed, prefer
370
+ at least one minute. A positive expiry raises `WaitHandlerTimeoutError`.
374
371
 
375
372
  `Client.wait_for_flow` and `AsyncClient.wait_for_flow` return a
376
373
  `FlowResult` after hydrating every output-bearing completion. Use
@@ -346,15 +346,12 @@ include buffered publishes, and omit empty instances. Keys are decoded and
346
346
  sorted. Use `force_complete_if_channels_empty(...)` for conditional completion.
347
347
 
348
348
  Request IDs are optional for both durable waits. When omitted, the server
349
- derives a namespaced stable ID from the Step execution or Attribute condition,
350
- such as `wait-for-attribute:myInt>10`. Reuse an override only for the same
351
- logical wait. The Client automatically reattaches transport long polls. If an
352
- earlier Update with that ID exhausted its handler budget, the server appends an
353
- increasing `-N` suffix and starts a new Update. `maximum_wait_time` is optional
354
- and is the total handler budget across reattachments; zero waits indefinitely.
355
- A positive budget expiry raises `WaitHandlerTimeoutError`. An abandoned infinite
356
- wait remains accepted and counts against Temporal's in-flight Update limit until
357
- it completes or the Flow closes.
349
+ derives a stable ID from the Step execution or Attribute condition. Reuse an
350
+ override only for the same wait. `maximum_wait_time` is optional. Leave it at
351
+ zero for normal use and bound one response with the caller deadline. Positive
352
+ values are an exceptional safety valve: short budgets can add many Temporal
353
+ Update events to Workflow history. If a positive value is truly needed, prefer
354
+ at least one minute. A positive expiry raises `WaitHandlerTimeoutError`.
358
355
 
359
356
  `Client.wait_for_flow` and `AsyncClient.wait_for_flow` return a
360
357
  `FlowResult` after hydrating every output-bearing completion. Use
@@ -254,13 +254,18 @@ class AsyncClient:
254
254
  """Invoke a registered RPC and await its typed result.
255
255
 
256
256
  Pass the bound method from the registered Flow instance. RPC timeout and
257
- Attribute locks come from ``@rpc`` configuration.
257
+ Attribute locks come from ``@rpc`` configuration. A non-transactional RPC
258
+ without Attribute locks starts from a backend query. If the handler returns no
259
+ durable effects, a retained terminal execution can serve that query. Locks,
260
+ transactional execution, returned effects, or server policy can require an
261
+ active execution.
258
262
 
259
263
  Args:
260
264
  rpc_method: A bound method decorated with ``@rpc``.
261
265
  flow_id: The non-empty target Flow ID.
262
266
  input: The annotated input, or ``None`` for an input-free RPC.
263
- run_id: Optional exact run; ``""`` targets the active run.
267
+ run_id: Optional exact run. With ``""``, the server resolves the current
268
+ execution.
264
269
 
265
270
  Returns:
266
271
  The decoded ``RPCResult.output``, or ``None`` for a no-output RPC.
@@ -270,7 +275,8 @@ class AsyncClient:
270
275
  RpcLockConflictError: If Attribute locks cannot be acquired.
271
276
  WorkerInvocationError: If the application handler fails.
272
277
  ValueMappingError: If input or output mapping fails.
273
- DexServiceError: If the Flow is inactive or the service call fails.
278
+ DexServiceError: If the selected path requires an active execution or the
279
+ service call otherwise fails.
274
280
  """
275
281
  _, rpc = self.registry._rpc_for_method(rpc_method)
276
282
  encoded_input = (
@@ -732,23 +738,22 @@ class AsyncClient:
732
738
  step_execution_id: StepExecutionId,
733
739
  options: WaitForStepCompletionOptions,
734
740
  ) -> None:
735
- """Await one Step execution's completion or its handler budget expiry.
741
+ """Await one Step execution's completion or its wait budget expiry.
736
742
 
737
743
  The server derives a stable Request ID from the Step execution when none
738
- is supplied. Transport long polls automatically reattach to the same wait.
739
- Leave the maximum wait time at zero for ordinary infinite waits. A positive
740
- value releases per-Flow in-flight Update capacity for abandoned waits.
741
- The budget spans Continue-as-New and is distinct from the caller's lifetime.
742
- Retrying after expiry creates a new Update generation.
744
+ is supplied. Leave the maximum wait time at zero for normal use. Positive
745
+ values are exceptional because short budgets can add many Temporal Update
746
+ events to Workflow history; prefer at least one minute when nonzero. A
747
+ positive value bounds the caller-visible wait.
743
748
 
744
749
  Args:
745
750
  flow_id: The non-empty active Flow ID.
746
751
  step_execution_id: The Step type and positive execution number.
747
- options: The optional Request ID override and total handler wait budget.
752
+ options: The optional Request ID override and total wait budget.
748
753
 
749
754
  Raises:
750
- ValueError: If the Request ID or handler wait budget is invalid.
751
- WaitHandlerTimeoutError: If a positive handler budget expires first.
755
+ ValueError: If the Request ID or wait budget is invalid.
756
+ WaitHandlerTimeoutError: If a positive wait budget expires first.
752
757
  FlowNotActiveError: If the Flow closes first.
753
758
  DexServiceError: If FlowService cannot perform the wait.
754
759
  """
@@ -786,24 +791,24 @@ class AsyncClient:
786
791
 
787
792
  The Client returns the value observed by the successful wait. The server
788
793
  derives a stable Request ID from the condition when none is supplied.
789
- Leave the maximum wait time at zero for ordinary infinite waits. A positive
790
- value releases per-Flow in-flight Update capacity for rarely matching waits.
791
- The budget spans transport reattachments and Continue-as-New, and is distinct
792
- from the caller's lifetime. Retrying after expiry creates a new Update generation.
794
+ Leave the maximum wait time at zero for normal use. Positive values are
795
+ exceptional because short budgets can add many Temporal Update events to
796
+ Workflow history; prefer at least one minute when nonzero. A positive value
797
+ bounds the caller-visible wait.
793
798
  JSON, bytes, and null operands raise ``ValueError`` before transport.
794
799
 
795
800
  Args:
796
801
  flow_id: The non-empty active Flow ID.
797
802
  attribute: The registered singleton Attribute to observe.
798
803
  match: The scalar predicate to await.
799
- options: The optional Request ID override and total handler wait budget.
804
+ options: The optional Request ID override and total wait budget.
800
805
 
801
806
  Returns:
802
807
  The current Attribute value that satisfied ``match``.
803
808
 
804
809
  Raises:
805
810
  ValueError: If an identifier, option, or match operand is invalid.
806
- WaitHandlerTimeoutError: If a positive handler budget expires first.
811
+ WaitHandlerTimeoutError: If a positive wait budget expires first.
807
812
  FlowNotActiveError: If the Flow closes first.
808
813
  DexServiceError: If FlowService cannot perform the wait.
809
814
  """
@@ -835,7 +840,7 @@ class AsyncClient:
835
840
 
836
841
  Raises:
837
842
  ValueError: If an identifier, option, or match operand is invalid.
838
- WaitHandlerTimeoutError: If a positive handler budget expires first.
843
+ WaitHandlerTimeoutError: If a positive wait budget expires first.
839
844
  FlowNotActiveError: If the Flow closes first.
840
845
  DexServiceError: If FlowService cannot perform the wait.
841
846
  """
@@ -865,7 +870,7 @@ class AsyncClient:
865
870
  Raises:
866
871
  TypeError: If arguments do not match the Attribute definition.
867
872
  ValueError: If an identifier, option, or expected value is invalid.
868
- WaitHandlerTimeoutError: If a positive handler budget expires first.
873
+ WaitHandlerTimeoutError: If a positive wait budget expires first.
869
874
  FlowNotActiveError: If the Flow closes first.
870
875
  DexServiceError: If FlowService cannot perform the wait.
871
876
  """
@@ -250,17 +250,21 @@ class Client:
250
250
  *,
251
251
  run_id: str = "",
252
252
  ) -> Any:
253
- """Synchronously invoke a registered RPC on an active Flow.
253
+ """Synchronously invoke a registered RPC on a Flow execution.
254
254
 
255
255
  Pass the bound method from the same registered Flow instance. RPC timeout and
256
256
  Attribute locks come from its ``@rpc`` decorator. The call blocks until the
257
- handler returns, fails, or times out.
257
+ handler returns, fails, or times out. A non-transactional RPC without Attribute
258
+ locks starts from a backend query. If the handler returns no durable effects, a
259
+ retained terminal execution can serve that query. Locks, transactional execution,
260
+ returned effects, or server policy can require an active execution.
258
261
 
259
262
  Args:
260
263
  rpc_method: A bound method decorated with ``@rpc``.
261
264
  flow_id: The non-empty target Flow ID.
262
265
  input: The annotated RPC input, or ``None`` for an input-free RPC.
263
- run_id: Optional exact run; ``""`` targets the active run.
266
+ run_id: Optional exact run. With ``""``, the server resolves the current
267
+ execution.
264
268
 
265
269
  Returns:
266
270
  The decoded ``RPCResult.output``, or ``None`` for a no-output RPC.
@@ -270,7 +274,8 @@ class Client:
270
274
  RpcLockConflictError: If requested Attribute locks cannot be acquired.
271
275
  WorkerInvocationError: If the application handler fails.
272
276
  ValueMappingError: If input or output mapping fails.
273
- DexServiceError: If the Flow is inactive or the service call fails.
277
+ DexServiceError: If the selected path requires an active execution or the
278
+ service call otherwise fails.
274
279
  """
275
280
  _, rpc = self.registry._rpc_for_method(rpc_method)
276
281
  encoded_input = (
@@ -729,23 +734,22 @@ class Client:
729
734
  step_execution_id: StepExecutionId,
730
735
  options: WaitForStepCompletionOptions,
731
736
  ) -> None:
732
- """Block until one Step execution completes or its handler budget expires.
737
+ """Block until one Step execution completes or its wait budget expires.
733
738
 
734
739
  The server derives a stable Request ID from the Step execution when none
735
- is supplied. Transport long polls automatically reattach to the same wait.
736
- Leave the maximum wait time at zero for ordinary infinite waits. A positive
737
- value releases per-Flow in-flight Update capacity for abandoned waits.
738
- The budget spans Continue-as-New and is distinct from the caller's lifetime.
739
- Retrying after expiry creates a new Update generation.
740
+ is supplied. Leave the maximum wait time at zero for normal use. Positive
741
+ values are exceptional because short budgets can add many Temporal Update
742
+ events to Workflow history; prefer at least one minute when nonzero. A
743
+ positive value bounds the caller-visible wait.
740
744
 
741
745
  Args:
742
746
  flow_id: The non-empty active Flow ID.
743
747
  step_execution_id: The Step type and positive execution number.
744
- options: The optional Request ID override and total handler wait budget.
748
+ options: The optional Request ID override and total wait budget.
745
749
 
746
750
  Raises:
747
- ValueError: If the Request ID or handler wait budget is invalid.
748
- WaitHandlerTimeoutError: If a positive handler budget expires first.
751
+ ValueError: If the Request ID or wait budget is invalid.
752
+ WaitHandlerTimeoutError: If a positive wait budget expires first.
749
753
  FlowNotActiveError: If the Flow closes first.
750
754
  DexServiceError: If FlowService cannot perform the wait.
751
755
  """
@@ -783,24 +787,24 @@ class Client:
783
787
 
784
788
  The Client returns the value observed by the successful wait. The server
785
789
  derives a stable Request ID from the condition when none is supplied.
786
- Leave the maximum wait time at zero for ordinary infinite waits. A positive
787
- value releases per-Flow in-flight Update capacity for rarely matching waits.
788
- The budget spans transport reattachments and Continue-as-New, and is distinct
789
- from the caller's lifetime. Retrying after expiry creates a new Update generation.
790
+ Leave the maximum wait time at zero for normal use. Positive values are
791
+ exceptional because short budgets can add many Temporal Update events to
792
+ Workflow history; prefer at least one minute when nonzero. A positive value
793
+ bounds the caller-visible wait.
790
794
  JSON, bytes, and null operands raise ``ValueError`` before transport.
791
795
 
792
796
  Args:
793
797
  flow_id: The non-empty active Flow ID.
794
798
  attribute: The registered singleton Attribute to observe.
795
799
  match: The scalar predicate to await.
796
- options: The optional Request ID override and total handler wait budget.
800
+ options: The optional Request ID override and total wait budget.
797
801
 
798
802
  Returns:
799
803
  The current Attribute value that satisfied ``match``.
800
804
 
801
805
  Raises:
802
806
  ValueError: If an identifier, option, or match operand is invalid.
803
- WaitHandlerTimeoutError: If a positive handler budget expires first.
807
+ WaitHandlerTimeoutError: If a positive wait budget expires first.
804
808
  FlowNotActiveError: If the Flow closes first.
805
809
  DexServiceError: If FlowService cannot perform the wait.
806
810
  """
@@ -833,7 +837,7 @@ class Client:
833
837
 
834
838
  Raises:
835
839
  ValueError: If an identifier, option, or match operand is invalid.
836
- WaitHandlerTimeoutError: If a positive handler budget expires first.
840
+ WaitHandlerTimeoutError: If a positive wait budget expires first.
837
841
  FlowNotActiveError: If the Flow closes first.
838
842
  DexServiceError: If FlowService cannot perform the wait.
839
843
  """
@@ -863,7 +867,7 @@ class Client:
863
867
  Raises:
864
868
  TypeError: If arguments do not match the Attribute definition.
865
869
  ValueError: If an identifier, option, or expected value is invalid.
866
- WaitHandlerTimeoutError: If a positive handler budget expires first.
870
+ WaitHandlerTimeoutError: If a positive wait budget expires first.
867
871
  FlowNotActiveError: If the Flow closes first.
868
872
  DexServiceError: If FlowService cannot perform the wait.
869
873
  """