Bluesky

Latest version: v1.13

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 5

1.4.0

Features

* Added ability to control ‘sense’ of `LiveGrid` (ex “positive goes down and to the right”) to match the coordinates in the hutch.
* Learned how to specify the serializer / deserializer for the zmq publisher / client.
* Promoted the inner function from `one_nd_step()` to a top-level plan `bluesky.plan_stubs.move_per_step()`.
* Added flag to `ramp_plan()` to control if a data point is taken before the ramp starts.

Bug Fixes

* Ensure order stability in `get_labeled_devices()` on all supported versions of Python.
* Fixed typos, dev requirements, and build details.

1.3.3

Bug Fixes
* Fixed show-shopping RunEngine bug in flyer asset collection. (The impact of this bug is expected to be low, as there are no flyers with asset collection yet and the bug was discovered while writing the first one.)
* Fixed packaging issue where certain important files (notably requirements.txt) were not included in the source tarball.
* Made BestEffortCallback swallow errors related to matplotlib’s “tight layout” if the occur — better to show a messy plot than error out.

1.3.2

Bug Fixes
* Revised behavior of magics that integrate with ophyd’s experimental “labels” feature. The most important difference is that the %wa magic now traverses the children of labeled devices to find any sub-devices that are positioners.

1.3.1

Bug Fixes
* Fixed race condition where monitored signals could emit an Event document before the corresponding Event Descriptor document.
* Addressed incompatibilities with upcoming release of Python, 3.7.

1.3.0

Features
* When used with ophyd v1.2.0 or later, emit Resource and Datum documents through the RunEngine. Previously, ophyd would insert these documents directly into a database. This left other consumers with only partial information (for example, missing file paths to externally-stored data) and no guarantees around synchronization. Now, ophyd need not interact with a database directly. All information flows through the RunEngine and out to any subscribed consumers in a deterministic order.
* New Msg commands, install_suspender and remove_suspender, allow plans to temporarily add and remove Suspenders.
* The RunEngine’s signal handling (i.e. Ctrl+C capturing) is now configurable. The RunEngine accepts a list of context_managers that it will enter and exit before and after running. By default, it has one context manager that handles Ctrl+C. To disable Ctrl+C handling, pass in an empty list instead. This can also be used to inject other custom behavior.
* Add new plans: x2x_scan(), spiral_square_plan(), and rel_spiral_square_plan().
* Add convenience methods for reviewing the available commands, commands() and print_command_registry().
* Add a crossings attribute to PeakStats.

Bug Fixes
* When resuming after a suspender, call resume() on all devices (if present).
* Fixed BEC LiveGrid plot for a motor with one step.
* A codepath in LiveFit that should have produced a warning produced an error instead.
Breaking Changes
* User-defined callbacks subscribed to the RunEngine 'all' stream must accept documents with names 'resource', 'datum' and 'bulk_datum'. It does not necessarily have to heed their contents, but it must not fall over if it receives one.
Deprecations
* The IPython “magics”, always marked as experimental, have been reworked. Instead of relying on the singleton lists, BlueskyMagics.positioners and BlueskyMagics.detectors, the magics now scrape the user namespace for objects that implement the _ophyd_labels_ interface. See IPython ‘Magics’ [Experimental] for the new usage. The magics will revert to their old behavior if the singleton lists are non-empty, but they will produce a warning. The old behavior will be

1.2.0

Features
* Refreshed documentation with a new Tutorial section.
* Extend scan() and rel_scan() to handle multiple motors, rendering inner_product_scan() and relative_inner_product_scan() redundant.
* A new plan stub, repeat(), repeats another plan N times with optional interleaved delays — a kind of customizable version of count().
* Better validation of user-defined per_step functions and more informative error messages to match.

Bug Fixes
* Fix axes orientation in LiveRaster.
* Make BestEffortCallback display multi-motor scans properly.
* Fix bug in ts_msg_hook() where it conflated month and minute. Also, include sub-second precision.
* Avoid situation where plan without hints caused the BestEffortCallback to error instead of do its best to guess useful behavior.
* Skip un-filled externally-stored data in LiveTable. This fixes a bug where it is expecting array data but gets UUID (datum_id) and errors out.
Deprecations
The caching_repeater() plan has been deprecated because it is incompatible with some preprocessors. It will be removed in a future release of bluesky. It was not documented in any previous releases and rarely if ever used, so the impact of this removal is expected to be low.

Page 4 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.