From 932b7888dca5eb1443fe290eb8c11fe185c2be22 Mon Sep 17 00:00:00 2001 From: "Eugene M." Date: Tue, 26 May 2026 20:02:52 -0400 Subject: [PATCH 1/2] ENH: use read_block when reading slices of the entire array --- databroker/mongo_normalized.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/databroker/mongo_normalized.py b/databroker/mongo_normalized.py index a48ce383f..ec4eb1fe5 100644 --- a/databroker/mongo_normalized.py +++ b/databroker/mongo_normalized.py @@ -38,6 +38,7 @@ from tiled.queries import AccessBlobFilter, Contains, Comparison, Eq, FullText, In, NotEq, NotIn, Regex from tiled.structures.core import Spec, StructureFamily from tiled.utils import UNCHANGED, IndexersMixin, OneShotCachedMap, import_object, node_repr +from tiled.ndslice import block_for_slice, build_nested_grid from .query_impl import ( BlueskyMapAdapter, @@ -584,8 +585,17 @@ def read_block(self, block, slice=None): return self._dataset_adapter.read_block(self._field, block, slice=slice) def read(self, slice=None): - array_adapter = self._dataset_adapter.read(fields=[self._field])[self._field] - return array_adapter.read(slice) + structure = self._dataset_adapter.array_structures[self._field] + block, slice_in_block = block_for_slice(structure.chunks, slice) + chunk_indices = block.chunk_indices(structure.chunks) + + array = numpy.block( + build_nested_grid( + chunk_indices, lambda idx: self.read_block(block=idx, slice=None) + ) + ) + + return array[slice_in_block] def structure(self): return self._dataset_adapter.array_structures[self._field] From 3586440e5083f806a468922c3c4f8368601671db Mon Sep 17 00:00:00 2001 From: "Eugene M." Date: Wed, 27 May 2026 15:27:32 -0400 Subject: [PATCH 2/2] UPD: tiled version >= v0.2.11 --- Dockerfile | 2 +- requirements-client.txt | 2 +- requirements-server.txt | 2 +- requirements-test.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 093cfe99a..54711a429 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/bluesky/tiled:0.1.0-b36 as base +FROM ghcr.io/bluesky/tiled:0.2.11 as base USER root COPY . /databroker-src/ diff --git a/requirements-client.txt b/requirements-client.txt index 80c21ce99..0c534a93c 100644 --- a/requirements-client.txt +++ b/requirements-client.txt @@ -1,4 +1,4 @@ bluesky-tiled-plugins msgpack >=1.0.0 orjson -tiled[client] >=0.1.0b30 +tiled[client] >=0.2.11 diff --git a/requirements-server.txt b/requirements-server.txt index d97f20def..ea7aede4d 100644 --- a/requirements-server.txt +++ b/requirements-server.txt @@ -17,7 +17,7 @@ pytz rich starlette suitcase-mongo >=0.5.0 -tiled[server] >=0.1.0b30 +tiled[server] >=0.2.11 toolz typer tzlocal diff --git a/requirements-test.txt b/requirements-test.txt index 2c05115ba..ae4aa301c 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -17,6 +17,6 @@ sphinx suitcase-jsonl >=0.1.0b2 suitcase-mongo >=0.5.0 suitcase-msgpack >=0.2.2 -tiled[all] >=0.1.0b30 +tiled[all] >=0.2.11 ujson vcrpy