Custom Tiled Clients#

All You Need To Know#

This package provides a set of custom Python clients designed to facilitate interaction with Bluesky data stored in Tiled catalogs.

Simply installing bluesky-tiled-plugins registers these clients with Tiled so it will automatically discover and use them.

Navigating a Tiled catalog with bluesky-tiled-plugins installed, we readily see scientifically-useful information, such as the scan_ids of Bluesky runs:

 <Catalog {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ...} ~241632 entries>
 <BlueskyRun v2.0 {'baseline', 'primary'} scan_id=42860 uid='1ae45615' 2025-11-23 13:48>

Navigating without bluesky-tiled-plugins installed, we see more generic information displayed, e.g. uuids of Bluesky runs:

<Container {'c7cfa95c-daef-4bb1-bb8f-8d1a4f25e5dc', ...} ~241637 entries>
<Container {'baseline', 'primary'}>

There are also convenience properties, for example:

run.start  # alias for run.metadata["start"]
run.stop  # alias for run.metatadata["stop"]

All the data and metadata is still accessible without bluesky-tiled-plugins; it’s just less conveniently presented.

Debugging#

Tiled uses Python entrypoints to discover these plugins. To test that they are working:

import entrypoints

entrypoints.get_group_named("tiled.special_client")

The output should include:

{
    "BlueskyEventStream": EntryPoint(
        "BlueskyEventStream",
        "bluesky_tiled_plugins.clients.bluesky_event_stream",
        "BlueskyEventStream",
        Distribution("bluesky_tiled_plugins", "2.0.0rc1"),
    ),
    "BlueskyRun": EntryPoint(
        "BlueskyRun",
        "bluesky_tiled_plugins.clients.bluesky_run",
        "BlueskyRun",
        Distribution("bluesky_tiled_plugins", "2.0.0rc1"),
    ),
    "CatalogOfBlueskyRuns": EntryPoint(
        "CatalogOfBlueskyRuns",
        "bluesky_tiled_plugins.clients.catalog_of_bluesky_runs",
        "CatalogOfBlueskyRuns",
        Distribution("bluesky_tiled_plugins", "2.0.0rc1"),
    ),
}

If it is does not, reinstall bluesky-tiled-plugins.