Factor out `bluesky-tiled-plugins` package
This creates a second Python package in the databroker repository, bluesky-tiled-plugins, with the "special client" objects BlueskyRun, BlueskyEventStream, and CatalogOfBlueskyRuns, as well as the custom query objects PartialUID, ScanID, and TimeRange. Quoting the README:
For a user wishing to connect to a running Tiled server and access Bluesky data, this package, along with its dependency
tiled[client], is all they need.
The databroker package is only required if the user wants to use the legacy
databroker.BrokerAPI.
This means it is no longer necessary to install databroker in the client environment unless they have legacy databroker.Broker code.
To be clear, the server environment still needs databroker.mongo_normalized, the Tiled Adapter for MongoDB with Bluesky document collections.
This is a backward-compatible change. Databroker now has a dependency on bluesky-tiled-plugins and has shim modules that expose the moved objects at the original locations within the databroker package.
Closes #812
I have registered the publish-pypi.yml workflow in this repository as a "pending" trusted publisher such that merge this PR should create the bluesky-tiled-plugins package on PyPI.
One transient failure, unrelated to the change:
FAILED databroker/assets/tests/test_write.py::test_multi_write_fail[sqlite] - TimeoutError: cursor call timed out