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/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] 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