dex-python-sdk 1.2.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.
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/PKG-INFO +1 -1
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/__init__.py +2 -2
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_grpc_errors.py +2 -2
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/async_client.py +11 -10
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/client.py +11 -10
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/runtime_errors.py +19 -2
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/pyproject.toml +1 -1
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/LEGACY_NOTICES.md +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/LICENSE +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/README.md +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_async_value_hydrator.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_async_worker_dispatcher.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_async_worker_service.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_invocation_context.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_native.pyi +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_server_protocol.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_utils.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_value_hydrator.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_value_mapper.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_worker_dispatcher.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/_worker_service.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/async_worker.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/attribute.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/attribute_match.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/blob_cache.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/channel.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/client_options.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/codec.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/condition.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/context.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/dexpb/__init__.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/dexpb/dex_pb2.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/dexpb/dex_pb2.pyi +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/dexpb/dex_pb2_grpc.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/flow.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/flow_config.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/flow_info.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/flow_options.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/flow_result.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/py.typed +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/rpc_invoke_options.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/step.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/step_execution.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/stream.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/subflow.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/timer.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/wait.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/wait_options.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/worker.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/dex/worker_options.py +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/Cargo.lock +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/Cargo.toml +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/Cargo.toml +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/LICENSE +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/config.rs +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/entry.rs +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/error.rs +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/format.rs +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/lib.rs +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/policy.rs +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/src/store.rs +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache/tests/blob_cache_integration.rs +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache-python/Cargo.toml +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache-python/LICENSE +0 -0
- {dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache-python/src/lib.rs +0 -0
|
@@ -70,7 +70,7 @@ from dex.runtime_errors import (
|
|
|
70
70
|
FlowAlreadyStartedError,
|
|
71
71
|
FlowDefinitionError,
|
|
72
72
|
FlowErrorType,
|
|
73
|
-
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
287
|
-
|
|
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
|
-
|
|
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(
|
|
@@ -747,7 +748,7 @@ class AsyncClient:
|
|
|
747
748
|
timer_id: Exactly one Timer condition ID or zero-based index.
|
|
748
749
|
|
|
749
750
|
Raises:
|
|
750
|
-
|
|
751
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
|
|
751
752
|
ValueError: If an identifier is invalid.
|
|
752
753
|
DexServiceError: If FlowService cannot skip the Timer.
|
|
753
754
|
"""
|
|
@@ -787,7 +788,7 @@ class AsyncClient:
|
|
|
787
788
|
Raises:
|
|
788
789
|
ValueError: If the Request ID or request timeout is invalid.
|
|
789
790
|
RequestTimeoutError: If a positive request timeout expires first.
|
|
790
|
-
|
|
791
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
|
|
791
792
|
DexServiceError: If FlowService cannot perform the wait.
|
|
792
793
|
"""
|
|
793
794
|
request_budget = _ClientRequestBudget(options.request_timeout)
|
|
@@ -858,7 +859,7 @@ class AsyncClient:
|
|
|
858
859
|
Raises:
|
|
859
860
|
ValueError: If an identifier, option, or match operand is invalid.
|
|
860
861
|
RequestTimeoutError: If a positive request timeout expires first.
|
|
861
|
-
|
|
862
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
|
|
862
863
|
DexServiceError: If FlowService cannot perform the wait.
|
|
863
864
|
"""
|
|
864
865
|
...
|
|
@@ -890,7 +891,7 @@ class AsyncClient:
|
|
|
890
891
|
Raises:
|
|
891
892
|
ValueError: If an identifier, option, or match operand is invalid.
|
|
892
893
|
RequestTimeoutError: If a positive request timeout expires first.
|
|
893
|
-
|
|
894
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
|
|
894
895
|
DexServiceError: If FlowService cannot perform the wait.
|
|
895
896
|
"""
|
|
896
897
|
...
|
|
@@ -920,7 +921,7 @@ class AsyncClient:
|
|
|
920
921
|
TypeError: If arguments do not match the Attribute definition.
|
|
921
922
|
ValueError: If an identifier, option, or expected value is invalid.
|
|
922
923
|
RequestTimeoutError: If a positive request timeout expires first.
|
|
923
|
-
|
|
924
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
|
|
924
925
|
DexServiceError: If FlowService cannot perform the wait.
|
|
925
926
|
"""
|
|
926
927
|
instance, match, options = self._attribute_wait_arguments(
|
|
@@ -1000,7 +1001,7 @@ class AsyncClient:
|
|
|
1000
1001
|
config: New optional fields applied to later decisions.
|
|
1001
1002
|
|
|
1002
1003
|
Raises:
|
|
1003
|
-
|
|
1004
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
|
|
1004
1005
|
ValueError: If a configuration value is invalid.
|
|
1005
1006
|
DexServiceError: If FlowService cannot apply the update.
|
|
1006
1007
|
"""
|
|
@@ -1024,7 +1025,7 @@ class AsyncClient:
|
|
|
1024
1025
|
flow_id: The non-empty active Flow ID.
|
|
1025
1026
|
|
|
1026
1027
|
Raises:
|
|
1027
|
-
|
|
1028
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
|
|
1028
1029
|
DexServiceError: If FlowService cannot accept the request.
|
|
1029
1030
|
"""
|
|
1030
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
|
-
|
|
286
|
-
|
|
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
|
-
|
|
570
|
+
FlowNotActiveOrNotFoundError: If no active run exists.
|
|
570
571
|
DexServiceError: If FlowService rejects or cannot perform the request.
|
|
571
572
|
"""
|
|
572
573
|
self._call(
|
|
@@ -745,7 +746,7 @@ class Client:
|
|
|
745
746
|
timer_id: Exactly one Timer condition ID or zero-based index.
|
|
746
747
|
|
|
747
748
|
Raises:
|
|
748
|
-
|
|
749
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
|
|
749
750
|
ValueError: If an identifier is invalid.
|
|
750
751
|
DexServiceError: If FlowService cannot skip the Timer.
|
|
751
752
|
"""
|
|
@@ -783,7 +784,7 @@ class Client:
|
|
|
783
784
|
Raises:
|
|
784
785
|
ValueError: If the Request ID or request timeout is invalid.
|
|
785
786
|
RequestTimeoutError: If a positive request timeout expires first.
|
|
786
|
-
|
|
787
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
|
|
787
788
|
DexServiceError: If FlowService cannot perform the wait.
|
|
788
789
|
"""
|
|
789
790
|
request_budget = _ClientRequestBudget(options.request_timeout)
|
|
@@ -854,7 +855,7 @@ class Client:
|
|
|
854
855
|
Raises:
|
|
855
856
|
ValueError: If an identifier, option, or match operand is invalid.
|
|
856
857
|
RequestTimeoutError: If a positive request timeout expires first.
|
|
857
|
-
|
|
858
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
|
|
858
859
|
DexServiceError: If FlowService cannot perform the wait.
|
|
859
860
|
"""
|
|
860
861
|
...
|
|
@@ -887,7 +888,7 @@ class Client:
|
|
|
887
888
|
Raises:
|
|
888
889
|
ValueError: If an identifier, option, or match operand is invalid.
|
|
889
890
|
RequestTimeoutError: If a positive request timeout expires first.
|
|
890
|
-
|
|
891
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
|
|
891
892
|
DexServiceError: If FlowService cannot perform the wait.
|
|
892
893
|
"""
|
|
893
894
|
...
|
|
@@ -917,7 +918,7 @@ class Client:
|
|
|
917
918
|
TypeError: If arguments do not match the Attribute definition.
|
|
918
919
|
ValueError: If an identifier, option, or expected value is invalid.
|
|
919
920
|
RequestTimeoutError: If a positive request timeout expires first.
|
|
920
|
-
|
|
921
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closes first.
|
|
921
922
|
DexServiceError: If FlowService cannot perform the wait.
|
|
922
923
|
"""
|
|
923
924
|
instance, match, options = self._attribute_wait_arguments(
|
|
@@ -1000,7 +1001,7 @@ class Client:
|
|
|
1000
1001
|
config: The new optional configuration fields.
|
|
1001
1002
|
|
|
1002
1003
|
Raises:
|
|
1003
|
-
|
|
1004
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
|
|
1004
1005
|
ValueError: If a configuration value is invalid.
|
|
1005
1006
|
DexServiceError: If FlowService cannot apply the update.
|
|
1006
1007
|
"""
|
|
@@ -1025,7 +1026,7 @@ class Client:
|
|
|
1025
1026
|
flow_id: The non-empty active Flow ID.
|
|
1026
1027
|
|
|
1027
1028
|
Raises:
|
|
1028
|
-
|
|
1029
|
+
FlowNotActiveOrNotFoundError: If the Flow is missing or closed.
|
|
1029
1030
|
DexServiceError: If FlowService cannot accept the request.
|
|
1030
1031
|
"""
|
|
1031
1032
|
self._call(
|
|
@@ -104,8 +104,25 @@ class FlowNotFoundError(DexServiceError):
|
|
|
104
104
|
pass
|
|
105
105
|
|
|
106
106
|
|
|
107
|
-
class
|
|
108
|
-
"""
|
|
107
|
+
class FlowNotActiveOrNotFoundError(DexServiceError):
|
|
108
|
+
"""Report a missing Flow or an operation that cannot use a closed Flow.
|
|
109
|
+
|
|
110
|
+
RPC calls use this error for missing targets, including query-only reads.
|
|
111
|
+
A query-only RPC can read a retained terminal execution when it has no
|
|
112
|
+
locks, transactionality, durable effects, or Server-forced Update routing.
|
|
113
|
+
At that confirmed read boundary, handle this error as not found without
|
|
114
|
+
adding a lifecycle probe. Preserve other service and Worker failures.
|
|
115
|
+
|
|
116
|
+
Mutations and active-only RPCs also use this error for closed targets.
|
|
117
|
+
The error does not distinguish a missing Flow from a closed Flow or prove
|
|
118
|
+
that the requested action succeeded. The inherited service metadata and
|
|
119
|
+
chained transport cause remain available. For example::
|
|
120
|
+
|
|
121
|
+
try:
|
|
122
|
+
client.invoke_rpc(orders.update_order, order_id, update)
|
|
123
|
+
except FlowNotActiveOrNotFoundError:
|
|
124
|
+
raise OrderUnavailableError(order_id)
|
|
125
|
+
"""
|
|
109
126
|
|
|
110
127
|
pass
|
|
111
128
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache-python/Cargo.toml
RENAMED
|
File without changes
|
|
File without changes
|
{dex_python_sdk-1.2.0 → dex_python_sdk-1.2.1}/sdk-rust/crates/dex-blob-cache-python/src/lib.rs
RENAMED
|
File without changes
|