dex-python-sdk 1.0.0__tar.gz → 1.2.1__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 (66) hide show
  1. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/PKG-INFO +10 -1
  2. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/README.md +9 -0
  3. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/__init__.py +2 -2
  4. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_grpc_errors.py +2 -2
  5. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/async_client.py +15 -10
  6. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/client.py +15 -10
  7. dex_python_sdk-1.2.1/dex/dexpb/dex_pb2.py +509 -0
  8. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/dexpb/dex_pb2.pyi +4 -2
  9. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/runtime_errors.py +19 -2
  10. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/pyproject.toml +1 -1
  11. dex_python_sdk-1.0.0/dex/dexpb/dex_pb2.py +0 -509
  12. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/LEGACY_NOTICES.md +0 -0
  13. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/LICENSE +0 -0
  14. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_async_value_hydrator.py +0 -0
  15. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_async_worker_dispatcher.py +0 -0
  16. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_async_worker_service.py +0 -0
  17. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_invocation_context.py +0 -0
  18. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_native.pyi +0 -0
  19. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_server_protocol.py +0 -0
  20. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_utils.py +0 -0
  21. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_value_hydrator.py +0 -0
  22. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_value_mapper.py +0 -0
  23. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_worker_dispatcher.py +0 -0
  24. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/_worker_service.py +0 -0
  25. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/async_worker.py +0 -0
  26. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/attribute.py +0 -0
  27. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/attribute_match.py +0 -0
  28. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/blob_cache.py +0 -0
  29. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/channel.py +0 -0
  30. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/client_options.py +0 -0
  31. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/codec.py +0 -0
  32. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/condition.py +0 -0
  33. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/context.py +0 -0
  34. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/dexpb/__init__.py +0 -0
  35. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/dexpb/dex_pb2_grpc.py +0 -0
  36. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/flow.py +0 -0
  37. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/flow_config.py +0 -0
  38. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/flow_info.py +0 -0
  39. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/flow_options.py +0 -0
  40. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/flow_result.py +0 -0
  41. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/py.typed +0 -0
  42. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/rpc_invoke_options.py +0 -0
  43. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/step.py +0 -0
  44. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/step_execution.py +0 -0
  45. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/stream.py +0 -0
  46. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/subflow.py +0 -0
  47. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/timer.py +0 -0
  48. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/wait.py +0 -0
  49. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/wait_options.py +0 -0
  50. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/worker.py +0 -0
  51. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/dex/worker_options.py +0 -0
  52. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/Cargo.lock +0 -0
  53. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/Cargo.toml +0 -0
  54. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/Cargo.toml +0 -0
  55. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/LICENSE +0 -0
  56. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/config.rs +0 -0
  57. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/entry.rs +0 -0
  58. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/error.rs +0 -0
  59. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/format.rs +0 -0
  60. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/lib.rs +0 -0
  61. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/policy.rs +0 -0
  62. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/store.rs +0 -0
  63. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/tests/blob_cache_integration.rs +0 -0
  64. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache-python/Cargo.toml +0 -0
  65. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache-python/LICENSE +0 -0
  66. {dex_python_sdk-1.0.0 → dex_python_sdk-1.2.1}/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: 1.0.0
3
+ Version: 1.2.1
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
@@ -606,3 +606,12 @@ It does not affect protocol compatibility.
606
606
  [Sustainable Use License 1.0](LICENSE), with legacy portions under their
607
607
  original terms as described in [LEGACY_NOTICES.md](LEGACY_NOTICES.md).
608
608
 
609
+ ## Search run inclusion
610
+
611
+ Dex Server excludes ContinuedAsNew runs by default. Application queries still
612
+ need `FlowType` when using shared index slots. An explicit inclusion option
613
+ removes only the default exclusion; it does not override query filters. Keep
614
+ the query, inclusion option, and page size consistent across pages.
615
+
616
+ Pass keyword-only `include_continued_as_new=True` to synchronous or asynchronous `search_flows` for execution-chain inspection. The default is `False`.
617
+
@@ -589,3 +589,12 @@ It does not affect protocol compatibility.
589
589
 
590
590
  [Sustainable Use License 1.0](LICENSE), with legacy portions under their
591
591
  original terms as described in [LEGACY_NOTICES.md](LEGACY_NOTICES.md).
592
+
593
+ ## Search run inclusion
594
+
595
+ Dex Server excludes ContinuedAsNew runs by default. Application queries still
596
+ need `FlowType` when using shared index slots. An explicit inclusion option
597
+ removes only the default exclusion; it does not override query filters. Keep
598
+ the query, inclusion option, and page size consistent across pages.
599
+
600
+ Pass keyword-only `include_continued_as_new=True` to synchronous or asynchronous `search_flows` for execution-chain inspection. The default is `False`.
@@ -70,7 +70,7 @@ from dex.runtime_errors import (
70
70
  FlowAlreadyStartedError,
71
71
  FlowDefinitionError,
72
72
  FlowErrorType,
73
- FlowNotActiveError,
73
+ FlowNotActiveOrNotFoundError,
74
74
  FlowNotFoundError,
75
75
  InvalidStepResultError,
76
76
  LongPollTimeoutError,
@@ -156,7 +156,7 @@ __all__ = [
156
156
  "FlowErrorType",
157
157
  "FlowInfo",
158
158
  "FlowResult",
159
- "FlowNotActiveError",
159
+ "FlowNotActiveOrNotFoundError",
160
160
  "FlowNotFoundError",
161
161
  "FlowStatus",
162
162
  "FlowTimeoutHandlerOptions",
@@ -23,7 +23,7 @@ from dex.runtime_errors import (
23
23
  DexServiceError,
24
24
  ErrorSubStatus,
25
25
  FlowAlreadyStartedError,
26
- FlowNotActiveError,
26
+ FlowNotActiveOrNotFoundError,
27
27
  FlowNotFoundError,
28
28
  LongPollTimeoutError,
29
29
  RequestTimeoutError,
@@ -129,7 +129,7 @@ def translate_rpc_error(
129
129
  if requirement == "existing":
130
130
  return FlowNotFoundError(*parameters)
131
131
  if requirement == "active":
132
- return FlowNotActiveError(*parameters)
132
+ return FlowNotActiveOrNotFoundError(*parameters)
133
133
  return DexServiceError(*parameters)
134
134
  if sub_status is ErrorSubStatus.WORKER_API_ERROR:
135
135
  if code is grpc.StatusCode.ABORTED:
@@ -283,8 +283,9 @@ class AsyncClient:
283
283
  RpcLockConflictError: If Attribute locks cannot be acquired.
284
284
  WorkerInvocationError: If the application handler fails.
285
285
  ValueMappingError: If input or output mapping fails.
286
- DexServiceError: If the selected path requires an active execution or the
287
- service call otherwise fails.
286
+ FlowNotActiveOrNotFoundError: If the Flow is missing or the selected path
287
+ cannot use its closed execution.
288
+ DexServiceError: If the service call otherwise fails.
288
289
  """
289
290
  registered_flow, rpc = self.registry._rpc_for_method(rpc_method)
290
291
  (
@@ -566,7 +567,7 @@ class AsyncClient:
566
567
  options: Stop mode and optional recorded reason.
567
568
 
568
569
  Raises:
569
- FlowNotActiveError: If no active run exists.
570
+ FlowNotActiveOrNotFoundError: If no active run exists.
570
571
  DexServiceError: If FlowService rejects or cannot perform the request.
571
572
  """
572
573
  await self._call(
@@ -621,6 +622,8 @@ class AsyncClient:
621
622
  query: str,
622
623
  page_size: int,
623
624
  next_page_token: str = "",
625
+ *,
626
+ include_continued_as_new: bool = False,
624
627
  ) -> SearchFlowsPage:
625
628
  """Return one page of Flow runs matching a visibility query.
626
629
 
@@ -628,6 +631,7 @@ class AsyncClient:
628
631
  query: A Dex visibility query; an empty string uses server defaults.
629
632
  page_size: The non-negative maximum result count requested.
630
633
  next_page_token: Opaque token from the preceding page, or ``""`` first.
634
+ include_continued_as_new: Include earlier runs without overriding query filters.
631
635
 
632
636
  Returns:
633
637
  Server-ordered entries with hydrated indexed Attributes and a next token.
@@ -647,6 +651,7 @@ class AsyncClient:
647
651
  query=query,
648
652
  page_size=page_size,
649
653
  next_page_token=next_page_token,
654
+ include_continued_as_new=include_continued_as_new,
650
655
  ),
651
656
  "search_flows",
652
657
  None,
@@ -743,7 +748,7 @@ class AsyncClient:
743
748
  timer_id: Exactly one Timer condition ID or zero-based index.
744
749
 
745
750
  Raises:
746
- FlowNotActiveError: If the Flow is closed.
751
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
747
752
  ValueError: If an identifier is invalid.
748
753
  DexServiceError: If FlowService cannot skip the Timer.
749
754
  """
@@ -783,7 +788,7 @@ class AsyncClient:
783
788
  Raises:
784
789
  ValueError: If the Request ID or request timeout is invalid.
785
790
  RequestTimeoutError: If a positive request timeout expires first.
786
- FlowNotActiveError: If the Flow closes first.
791
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
787
792
  DexServiceError: If FlowService cannot perform the wait.
788
793
  """
789
794
  request_budget = _ClientRequestBudget(options.request_timeout)
@@ -854,7 +859,7 @@ class AsyncClient:
854
859
  Raises:
855
860
  ValueError: If an identifier, option, or match operand is invalid.
856
861
  RequestTimeoutError: If a positive request timeout expires first.
857
- FlowNotActiveError: If the Flow closes first.
862
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
858
863
  DexServiceError: If FlowService cannot perform the wait.
859
864
  """
860
865
  ...
@@ -886,7 +891,7 @@ class AsyncClient:
886
891
  Raises:
887
892
  ValueError: If an identifier, option, or match operand is invalid.
888
893
  RequestTimeoutError: If a positive request timeout expires first.
889
- FlowNotActiveError: If the Flow closes first.
894
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
890
895
  DexServiceError: If FlowService cannot perform the wait.
891
896
  """
892
897
  ...
@@ -916,7 +921,7 @@ class AsyncClient:
916
921
  TypeError: If arguments do not match the Attribute definition.
917
922
  ValueError: If an identifier, option, or expected value is invalid.
918
923
  RequestTimeoutError: If a positive request timeout expires first.
919
- FlowNotActiveError: If the Flow closes first.
924
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
920
925
  DexServiceError: If FlowService cannot perform the wait.
921
926
  """
922
927
  instance, match, options = self._attribute_wait_arguments(
@@ -996,7 +1001,7 @@ class AsyncClient:
996
1001
  config: New optional fields applied to later decisions.
997
1002
 
998
1003
  Raises:
999
- FlowNotActiveError: If the Flow is closed.
1004
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
1000
1005
  ValueError: If a configuration value is invalid.
1001
1006
  DexServiceError: If FlowService cannot apply the update.
1002
1007
  """
@@ -1020,7 +1025,7 @@ class AsyncClient:
1020
1025
  flow_id: The non-empty active Flow ID.
1021
1026
 
1022
1027
  Raises:
1023
- FlowNotActiveError: If the Flow is closed.
1028
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
1024
1029
  DexServiceError: If FlowService cannot accept the request.
1025
1030
  """
1026
1031
  await self._call(
@@ -282,8 +282,9 @@ class Client:
282
282
  RpcLockConflictError: If requested Attribute locks cannot be acquired.
283
283
  WorkerInvocationError: If the application handler fails.
284
284
  ValueMappingError: If input or output mapping fails.
285
- DexServiceError: If the selected path requires an active execution or the
286
- service call otherwise fails.
285
+ FlowNotActiveOrNotFoundError: If the Flow is missing or the selected path
286
+ cannot use its closed execution.
287
+ DexServiceError: If the service call otherwise fails.
287
288
  """
288
289
  registered_flow, rpc = self.registry._rpc_for_method(rpc_method)
289
290
  (
@@ -566,7 +567,7 @@ class Client:
566
567
  options: Stop mode and optional recorded reason.
567
568
 
568
569
  Raises:
569
- FlowNotActiveError: If no active run exists.
570
+ FlowNotActiveOrNotFoundError: If no active run exists.
570
571
  DexServiceError: If FlowService rejects or cannot perform the request.
571
572
  """
572
573
  self._call(
@@ -621,6 +622,8 @@ class Client:
621
622
  query: str,
622
623
  page_size: int,
623
624
  next_page_token: str = "",
625
+ *,
626
+ include_continued_as_new: bool = False,
624
627
  ) -> SearchFlowsPage:
625
628
  """Return one page of Flow runs matching a visibility query.
626
629
 
@@ -628,6 +631,7 @@ class Client:
628
631
  query: A Dex visibility query; an empty string matches server defaults.
629
632
  page_size: The non-negative maximum result count requested.
630
633
  next_page_token: Opaque token from the preceding page, or ``""`` first.
634
+ include_continued_as_new: Include earlier runs without overriding query filters.
631
635
 
632
636
  Returns:
633
637
  Server-ordered entries with hydrated indexed Attributes and a next token.
@@ -647,6 +651,7 @@ class Client:
647
651
  query=query,
648
652
  page_size=page_size,
649
653
  next_page_token=next_page_token,
654
+ include_continued_as_new=include_continued_as_new,
650
655
  ),
651
656
  "search_flows",
652
657
  None,
@@ -741,7 +746,7 @@ class Client:
741
746
  timer_id: Exactly one Timer condition ID or zero-based index.
742
747
 
743
748
  Raises:
744
- FlowNotActiveError: If the Flow is closed.
749
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
745
750
  ValueError: If an identifier is invalid.
746
751
  DexServiceError: If FlowService cannot skip the Timer.
747
752
  """
@@ -779,7 +784,7 @@ class Client:
779
784
  Raises:
780
785
  ValueError: If the Request ID or request timeout is invalid.
781
786
  RequestTimeoutError: If a positive request timeout expires first.
782
- FlowNotActiveError: If the Flow closes first.
787
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
783
788
  DexServiceError: If FlowService cannot perform the wait.
784
789
  """
785
790
  request_budget = _ClientRequestBudget(options.request_timeout)
@@ -850,7 +855,7 @@ class Client:
850
855
  Raises:
851
856
  ValueError: If an identifier, option, or match operand is invalid.
852
857
  RequestTimeoutError: If a positive request timeout expires first.
853
- FlowNotActiveError: If the Flow closes first.
858
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
854
859
  DexServiceError: If FlowService cannot perform the wait.
855
860
  """
856
861
  ...
@@ -883,7 +888,7 @@ class Client:
883
888
  Raises:
884
889
  ValueError: If an identifier, option, or match operand is invalid.
885
890
  RequestTimeoutError: If a positive request timeout expires first.
886
- FlowNotActiveError: If the Flow closes first.
891
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
887
892
  DexServiceError: If FlowService cannot perform the wait.
888
893
  """
889
894
  ...
@@ -913,7 +918,7 @@ class Client:
913
918
  TypeError: If arguments do not match the Attribute definition.
914
919
  ValueError: If an identifier, option, or expected value is invalid.
915
920
  RequestTimeoutError: If a positive request timeout expires first.
916
- FlowNotActiveError: If the Flow closes first.
921
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
917
922
  DexServiceError: If FlowService cannot perform the wait.
918
923
  """
919
924
  instance, match, options = self._attribute_wait_arguments(
@@ -996,7 +1001,7 @@ class Client:
996
1001
  config: The new optional configuration fields.
997
1002
 
998
1003
  Raises:
999
- FlowNotActiveError: If the Flow is closed.
1004
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
1000
1005
  ValueError: If a configuration value is invalid.
1001
1006
  DexServiceError: If FlowService cannot apply the update.
1002
1007
  """
@@ -1021,7 +1026,7 @@ class Client:
1021
1026
  flow_id: The non-empty active Flow ID.
1022
1027
 
1023
1028
  Raises:
1024
- FlowNotActiveError: If the Flow is closed.
1029
+ FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
1025
1030
  DexServiceError: If FlowService cannot accept the request.
1026
1031
  """
1027
1032
  self._call(