Release Notes¶
v0.6.2¶
Bug Fixes¶
- Make
make_decorator
return proper decorators. The original implementation returned functions that could not actually be used as decorators.
v0.6.1¶
This release contained only a minor UX fix involving more informative error reporting.
v0.6.0¶
Enhancements¶
- Address the situation where plan “rewinding” after a pause or suspension
interacted badly with some devices. There are now three ways to temporarily
turn off rewinding: a Msg with a new ‘rewindable’ command; a special
attribute on the device that the
trigger_and_read
plan looks for; and a special exception that devices can raise when theirpause
method is called. All three of these features should be considered experimental. They will likely be consolidated in the future once their usage is tested in the wild. - Add new plan wrappers and decorators:
inject_md_wrapper
,run_wrapper
,rewindable_wrapper
.
Bug Fixes¶
- Fix bug where RUnEngine was put in the “running” state, encountered an
error before starting the
_run
coroutine, and thus never switch back to “idle.” - Ensure that plans are closed correctly and that, if they fail to close themselves, a warning is printed.
- Allow plan to run its cleanup messages (
finalize
) when the RunEngine is stopped or aborted. - When an exception is raised, give each plan in the plan stack an opportunity to handle it. If it is handled, carry on.
- The SPEC-style
tw
was not passing its parameters through to the underlyingtweak
plan. - Silenced un-needed suspenders warnings
- Fix bug in separating devices
Cleanup¶
- Reduce unneeded usage of
bluesky.plans.single_gen
. - Don’t emit create/save messages with no reads in between.
- Re-work exception handling in main run engine event loop.
v0.5.3¶
API Changes¶
LiveTable
only displays data from one event stream.- Remove used global state attribute
gs.COUNT_TIME
.
Bug Fixes¶
- Fix “infinite count”,
ct(num=None)
. - Allow the same data keys to be present in different event streams. But, as before, a given data key can only appear once per event.
- Make SPEC-style plan
ct
implement baseline readings, referring togs.BASELINE_DETS
. - Upon resuming after a deferred pause, clear the deferred pause request.
- Make
bluesky.utils.register_transform
character configurable.
v0.5.2¶
- Plans were completely refactored. The API of the exist plans is supported for back-compatibility. See plans documentation to review new capabilities.
- SPEC-style plans are now proper generators, not bound to the RunEngine.
v0.5.0¶
Move
bluesky.scientific_callbacks
tobluesky.callbacks.scientific
andbluesky.broker_callbacks
tobluesky.callbacks.broker
.Remove
bluesky.register_mds
whose usage can be replaced by:import metadatastore.commands; RE.subscribe_lossless('all', metadatastore.commands.insert)
In all occurrences, the argument
block_group
has been renamedgroup
for consistency. This affects the ‘trigger’ and ‘set’ messages.The (not widely used)
Center
plan has been removed. It may be distributed separately in the future.Calling a “SPEC-like” plan now returns a generator that must be passed to the RunEngine; it does not execute the plan with the global RunEngine in gs.RE. There is a convenience wrapper available to restore the old behavior as desired. But since that usage renders the plans un-composable, it is discouraged.
The ‘time’ argument of the SPEC-like plans is a keyword-only argument.
The following special-case SPEC-like scans have been removed
- hscan
- kscan
- lscan
- tscan
- dtscan
- hklscan
- hklmesh
They can be defined in configuration files as desired, and in that location they will be easier to customize.
The
describe
method on flyers, which returns an iterable of dicts of data keys for one or more descriptors documents, has been renamed todescribe_collect
to avoid confusion withdescribe
on other devices, which returns a dict of data keys for one descriptor document.An obscure feature in
RunEngine.request_pause
has been removed, which involved removing the optional argumentscallback
andname
.
v0.3.0¶
Removed
RunEngine.persistent_fields
; all fields inRE.md
persist between runs by default.No metadata fields are “reserved”; any can be overwritten by the user.
No metadata fields are absolutely required. The metadata validation function is user-customizable. The default validation function behaves the same as previous versions of bluesky, but it is no longer manditory.
The signature of
RunEngine
has changed. Thelogbook
argument is now keyword-only, and there is a new keyword-only argument,md_validator
. See docstring for details.The
configure
method on readable objects now takes a single optional argument, a dictionary that the object can use to configure itself however it sees fit. Theconfigure
method always has a new return value, a tuple of dicts describing its old and new states:old, new = obj.configure(state)
Removed method
increment_scan_id
callbacks.broker.post_run API and docstring brought into agreement. The API is change to expect a callable with signature
foo(doc_name, doc)
rather than- a callable which takes a document (as documented)
- an object with
start
,descriptor
,event
andstop
methods (as implemented).
If classes derived from CallbackBase are being used this will not not have any effect on user code.