Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions bluesky-tiled-plugins/bluesky_tiled_plugins/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from .bluesky_event_stream import BlueskyEventStream # noqa: F401
from .bluesky_run import BlueskyRun # noqa: F401
from .catalog_of_bluesky_runs import CatalogOfBlueskyRuns # noqa: F401
from .tiled_writer import TiledWriter # noqa: F401
from .clients.bluesky_event_stream import BlueskyEventStream # noqa: F401
from .clients.bluesky_run import BlueskyRun # noqa: F401
from .clients.catalog_of_bluesky_runs import CatalogOfBlueskyRuns # noqa: F401
from .writing.tiled_writer import TiledWriter # noqa: F401

__all__ = [
"BlueskyEventStream",
Expand Down
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
from tiled.queries import Comparison, Eq, Like
from tiled.utils import safe_json_dump

from ..queries import RawMongo, ScanIDRange, TimeRange, _PartialUID, _ScanID
from .bluesky_run import BlueskyRunV2, BlueskyRunV3
from .queries import RawMongo, ScanIDRange, TimeRange, _PartialUID, _ScanID


class CatalogOfBlueskyRuns(Container):
Expand Down
18 changes: 15 additions & 3 deletions bluesky-tiled-plugins/bluesky_tiled_plugins/exporters.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,26 @@


async def json_seq_exporter(mimetype, adapter, metadata, filter_for_access):
"""
Export BlueskyRun is newline-delimited sequence of JSON.
"""Export BlueskyRun as newline-delimited sequence of JSON documents.

This callback is to be configured on the server-side to enable exporting
BlueskyRun objects in JSON-Seq format.

The resulting stream yields strings, each of which is a JSON document
representing one of the standard Bluesky documents: start, descriptor,
event, stream_resource, stream_datum, and stop, in the appropriate order.

Format is like:
For example:

```
{"name": "start", "doc": {...}}
{"name": "descriptor", "doc": {...}}
{"name": "event", "doc": {...}}
{"name": "stream_resource", "doc": {...}}
{"name": "stream_datum", "doc": {...}}
...
{"name": "stop", "doc": {...}}
```
"""
for spec in adapter.specs:
if spec.name == "BlueskyRun" and spec.version.startswith("3."):
Expand Down
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
That code has been extremely stable for about ten years, so divergence
is not a pressing concern.
"""

import sys
import types
from itertools import count
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@
from tiled.structures.core import Spec
from tiled.utils import safe_json_dump

from ..utils import truncate_json_overflow
from ._dispatcher import Dispatcher
from ._json_writer import JSONLinesWriter
from .consolidators import ConsolidatorBase, DataSource, Patch, StructureFamily, consolidator_factory
from .dispatcher import Dispatcher
from .json_writer import JSONLinesWriter
from .utils import truncate_json_overflow

# Aggregate the Event table rows and StreamDatums in batches before writing to Tiled
BATCH_SIZE = 10000
Expand Down
6 changes: 3 additions & 3 deletions bluesky-tiled-plugins/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ classifiers = [
dynamic = ["version"]

[project.entry-points."tiled.special_client"]
CatalogOfBlueskyRuns = "bluesky_tiled_plugins.catalog_of_bluesky_runs:CatalogOfBlueskyRuns"
BlueskyRun = "bluesky_tiled_plugins.bluesky_run:BlueskyRun"
BlueskyEventStream = "bluesky_tiled_plugins.bluesky_event_stream:BlueskyEventStream"
CatalogOfBlueskyRuns = "bluesky_tiled_plugins.clients.catalog_of_bluesky_runs:CatalogOfBlueskyRuns"
BlueskyRun = "bluesky_tiled_plugins.clients.bluesky_run:BlueskyRun"
BlueskyEventStream = "bluesky_tiled_plugins.clients.bluesky_event_stream:BlueskyEventStream"

[tool.hatch]
version.source = "vcs"
Expand Down
2 changes: 1 addition & 1 deletion bluesky-tiled-plugins/tests/test_consolidators.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from math import ceil

import pytest
from bluesky_tiled_plugins.consolidators import HDF5Consolidator, Patch, consolidator_factory
from bluesky_tiled_plugins.writing.consolidators import HDF5Consolidator, Patch, consolidator_factory


@pytest.fixture
Expand Down
2 changes: 1 addition & 1 deletion bluesky-tiled-plugins/tests/test_json_writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import os

import pytest
from bluesky_tiled_plugins.json_writer import JSONLinesWriter, JSONWriter
from bluesky_tiled_plugins.writing._json_writer import JSONLinesWriter, JSONWriter


def read_json_file(path):
Expand Down
4 changes: 2 additions & 2 deletions bluesky-tiled-plugins/tests/test_tiled_writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
StreamAsset,
WritesStreamAssets,
)
from bluesky_tiled_plugins.tiled_writer import TiledWriter
from bluesky_tiled_plugins import TiledWriter
from event_model.documents.event_descriptor import DataKey
from event_model.documents.stream_datum import StreamDatum
from event_model.documents.stream_resource import StreamResource
Expand Down Expand Up @@ -604,7 +604,7 @@ def test_json_backup(client, tmpdir, monkeypatch):
def patched_event(name, doc):
raise RuntimeError("This is a test error to check the backup functionality")

monkeypatch.setattr("bluesky_tiled_plugins.tiled_writer._RunWriter.event", patched_event)
monkeypatch.setattr("bluesky_tiled_plugins.writing.tiled_writer._RunWriter.event", patched_event)

tw = TiledWriter(client, backup_directory=str(tmpdir))

Expand Down
2 changes: 1 addition & 1 deletion databroker/document.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This module is now a back-compat shim. The objects are defined in a
# separate package, bluesky_tiled_plugins, that resides in the same
# git repository as databroker.
from bluesky_tiled_plugins.document import ( # noqa: F401
from bluesky_tiled_plugins.clients.document import ( # noqa: F401
Datum,
DatumPage,
Descriptor,
Expand Down
2 changes: 1 addition & 1 deletion databroker/v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -793,7 +793,7 @@ def insert(self, name, doc):

@functools.cached_property
def _tiled_writer(self):
from bluesky_tiled_plugins.tiled_writer import TiledWriter
from bluesky_tiled_plugins import TiledWriter

return TiledWriter(self.v2)

Expand Down