From 437d29f19e1c78ecd7e7280747fed7b3bdafcabc Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Thu, 18 Jun 2026 03:12:56 -0400 Subject: [PATCH] docs: correct MxDataType default-table labels and note non-negative sparse indices Fix the MxSparseArray type-defaults table in gateway.md to use the real MxDataType enum member names (Integer, not Integer/LongInteger; Time, not Time/Timestamp) and clarify the int64 note. Add a docstring sentence to write_array_elements in the Python client noting that indices and total_length must be non-negative. --- clients/python/src/zb_mom_ww_mxgateway/session.py | 4 ++++ gateway.md | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/clients/python/src/zb_mom_ww_mxgateway/session.py b/clients/python/src/zb_mom_ww_mxgateway/session.py index 793d3fb..1302025 100644 --- a/clients/python/src/zb_mom_ww_mxgateway/session.py +++ b/clients/python/src/zb_mom_ww_mxgateway/session.py @@ -516,6 +516,10 @@ class Session: element type of the target array attribute. total_length: Total number of elements in the written array. Must be > 0 and large enough to contain every index in *elements*. + Both *total_length* and all keys in *elements* must be + non-negative; the gateway rejects negative or out-of-range + values with ``InvalidArgument`` (the proto fields are + ``uint32``). elements: Mapping of zero-based element index to scalar value. Values are converted with :func:`~zb_mom_ww_mxgateway.values.to_mx_value`. user_id: Galaxy user id to stamp on the write (requires a prior diff --git a/gateway.md b/gateway.md index 156aa1d..dd3c706 100644 --- a/gateway.md +++ b/gateway.md @@ -512,10 +512,10 @@ Default values by element type: | Element type | Default | |---|---| | `Boolean` | `false` | -| `Integer` / `LongInteger` | `0` | +| `Integer` | `0` (int32, or int64 when an element value is 64-bit) | | `Float` / `Double` | `0` | | `String` | `""` | -| `Time` / `Timestamp` | Unix epoch (1970-01-01T00:00:00Z) | +| `Time` | Unix epoch (1970-01-01T00:00:00Z) | Unmentioned indices take the element type's default — this is a **reset**, not a preserve. There is no read-modify-write merge: adding that would introduce cache