dex-python-sdk 0.2.0__tar.gz → 0.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-0.2.0 → dex_python_sdk-0.2.1}/PKG-INFO +10 -9
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/README.md +9 -8
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/_worker_dispatcher.py +7 -9
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/async_client.py +4 -2
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/client.py +4 -2
- dex_python_sdk-0.2.1/dex/dexpb/dex_pb2.py +443 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/dexpb/dex_pb2.pyi +10 -4
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/flow.py +19 -3
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/flow_config.py +3 -3
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/step.py +15 -15
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/pyproject.toml +1 -1
- dex_python_sdk-0.2.0/dex/dexpb/dex_pb2.py +0 -441
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/LEGACY_NOTICES.md +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/LICENSE +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/__init__.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/_async_value_hydrator.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/_async_worker_dispatcher.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/_async_worker_service.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/_grpc_errors.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/_invocation_context.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/_native.pyi +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/_utils.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/_value_hydrator.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/_value_mapper.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/_worker_service.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/async_worker.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/attribute.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/blob_cache.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/channel.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/client_options.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/codec.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/condition.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/context.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/dexpb/__init__.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/dexpb/dex_pb2_grpc.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/flow_info.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/flow_options.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/flow_result.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/py.typed +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/runtime_errors.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/step_execution.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/subflow.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/timer.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/wait.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/worker.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/dex/worker_options.py +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/Cargo.lock +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/Cargo.toml +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache/Cargo.toml +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache/LICENSE +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache/src/config.rs +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache/src/entry.rs +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache/src/error.rs +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache/src/format.rs +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache/src/lib.rs +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache/src/policy.rs +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache/src/store.rs +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache/tests/blob_cache_integration.rs +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache-python/Cargo.toml +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.2.1}/sdk-rust/crates/dex-blob-cache-python/LICENSE +0 -0
- {dex_python_sdk-0.2.0 → dex_python_sdk-0.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: 0.2.
|
|
3
|
+
Version: 0.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
|
|
@@ -96,13 +96,14 @@ Flow configuration:
|
|
|
96
96
|
|
|
97
97
|
```python
|
|
98
98
|
email = dex.Attribute("customer-email", str, sync_to_attribute_store=True)
|
|
99
|
-
config = dex.FlowConfig(
|
|
99
|
+
config = dex.FlowConfig(attribute_store_names=["profiles", "audit"])
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
synchronization while retaining protocol
|
|
102
|
+
Stores are asynchronous latest-state projections. Every enabled Attribute write
|
|
103
|
+
is sent to every selected Store. Deletion writes SQL `NULL`, and projection
|
|
104
|
+
failures do not roll back Flow Attributes. `None` preserves current targets;
|
|
105
|
+
an explicit empty list disables future synchronization while retaining protocol
|
|
106
|
+
presence.
|
|
106
107
|
|
|
107
108
|
```
|
|
108
109
|
pip install dex-python-sdk==0.1.0
|
|
@@ -144,9 +145,9 @@ its normal decision:
|
|
|
144
145
|
|
|
145
146
|
```python
|
|
146
147
|
return (
|
|
147
|
-
dex.go_to(
|
|
148
|
-
.with_canceling_sibling_steps(
|
|
149
|
-
.with_canceling_steps(
|
|
148
|
+
dex.go_to(RecordQuote, quote)
|
|
149
|
+
.with_canceling_sibling_steps(QuoteCarrierA, QuoteCarrierB)
|
|
150
|
+
.with_canceling_steps(GlobalQuoteTimeout)
|
|
150
151
|
)
|
|
151
152
|
```
|
|
152
153
|
|
|
@@ -80,13 +80,14 @@ Flow configuration:
|
|
|
80
80
|
|
|
81
81
|
```python
|
|
82
82
|
email = dex.Attribute("customer-email", str, sync_to_attribute_store=True)
|
|
83
|
-
config = dex.FlowConfig(
|
|
83
|
+
config = dex.FlowConfig(attribute_store_names=["profiles", "audit"])
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
synchronization while retaining protocol
|
|
86
|
+
Stores are asynchronous latest-state projections. Every enabled Attribute write
|
|
87
|
+
is sent to every selected Store. Deletion writes SQL `NULL`, and projection
|
|
88
|
+
failures do not roll back Flow Attributes. `None` preserves current targets;
|
|
89
|
+
an explicit empty list disables future synchronization while retaining protocol
|
|
90
|
+
presence.
|
|
90
91
|
|
|
91
92
|
```
|
|
92
93
|
pip install dex-python-sdk==0.1.0
|
|
@@ -128,9 +129,9 @@ its normal decision:
|
|
|
128
129
|
|
|
129
130
|
```python
|
|
130
131
|
return (
|
|
131
|
-
dex.go_to(
|
|
132
|
-
.with_canceling_sibling_steps(
|
|
133
|
-
.with_canceling_steps(
|
|
132
|
+
dex.go_to(RecordQuote, quote)
|
|
133
|
+
.with_canceling_sibling_steps(QuoteCarrierA, QuoteCarrierB)
|
|
134
|
+
.with_canceling_steps(GlobalQuoteTimeout)
|
|
134
135
|
)
|
|
135
136
|
```
|
|
136
137
|
|
|
@@ -456,8 +456,10 @@ class WorkerDispatcher:
|
|
|
456
456
|
is_headless_address=config.worker_target.headless,
|
|
457
457
|
)
|
|
458
458
|
)
|
|
459
|
-
if config.
|
|
460
|
-
mapped.
|
|
459
|
+
if config.attribute_store_names is not None:
|
|
460
|
+
mapped.attribute_store_names.CopyFrom(
|
|
461
|
+
pb.AttributeStoreNames(names=config.attribute_store_names)
|
|
462
|
+
)
|
|
461
463
|
return mapped
|
|
462
464
|
|
|
463
465
|
def _map_decision(
|
|
@@ -529,7 +531,7 @@ class WorkerDispatcher:
|
|
|
529
531
|
def _map_cancellation_steps(
|
|
530
532
|
self,
|
|
531
533
|
flow: _RegisteredFlow,
|
|
532
|
-
steps: tuple[Step[Any], ...],
|
|
534
|
+
steps: tuple[type[Step[Any]], ...],
|
|
533
535
|
) -> list[str]:
|
|
534
536
|
step_types: list[str] = []
|
|
535
537
|
seen: set[str] = set()
|
|
@@ -585,13 +587,9 @@ class WorkerDispatcher:
|
|
|
585
587
|
@staticmethod
|
|
586
588
|
def _registered_movement_target(
|
|
587
589
|
flow: _RegisteredFlow,
|
|
588
|
-
step:
|
|
590
|
+
step: type[Step[Any]],
|
|
589
591
|
) -> _RegisteredStep:
|
|
590
|
-
|
|
591
|
-
target = flow.step(step_type)
|
|
592
|
-
if target.step is not step:
|
|
593
|
-
raise ValueError("Step movement target does not belong to Flow")
|
|
594
|
-
return target
|
|
592
|
+
return flow.step_class(step)
|
|
595
593
|
|
|
596
594
|
@staticmethod
|
|
597
595
|
def _require_persistence_identity(
|
|
@@ -1077,8 +1077,10 @@ class AsyncClient:
|
|
|
1077
1077
|
StepDurability.SYNC: pb.STEP_DURABILITY_SYNC,
|
|
1078
1078
|
StepDurability.ASYNC: pb.STEP_DURABILITY_ASYNC,
|
|
1079
1079
|
}[config.step_durability]
|
|
1080
|
-
if config.
|
|
1081
|
-
mapped.
|
|
1080
|
+
if config.attribute_store_names is not None:
|
|
1081
|
+
mapped.attribute_store_names.CopyFrom(
|
|
1082
|
+
pb.AttributeStoreNames(names=config.attribute_store_names)
|
|
1083
|
+
)
|
|
1082
1084
|
target = (
|
|
1083
1085
|
config.worker_target
|
|
1084
1086
|
if config is not None and config.worker_target is not None
|
|
@@ -1078,8 +1078,10 @@ class Client:
|
|
|
1078
1078
|
StepDurability.SYNC: pb.STEP_DURABILITY_SYNC,
|
|
1079
1079
|
StepDurability.ASYNC: pb.STEP_DURABILITY_ASYNC,
|
|
1080
1080
|
}[config.step_durability]
|
|
1081
|
-
if config.
|
|
1082
|
-
mapped.
|
|
1081
|
+
if config.attribute_store_names is not None:
|
|
1082
|
+
mapped.attribute_store_names.CopyFrom(
|
|
1083
|
+
pb.AttributeStoreNames(names=config.attribute_store_names)
|
|
1084
|
+
)
|
|
1083
1085
|
target = (
|
|
1084
1086
|
config.worker_target
|
|
1085
1087
|
if config is not None and config.worker_target is not None
|