Release Notes¶
v0.6.2¶
Bug Fixes¶
- Make
make_decoratorreturn 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_readplan looks for; and a special exception that devices can raise when theirpausemethod 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
_runcoroutine, 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
twwas not passing its parameters through to the underlyingtweakplan. - 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¶
LiveTableonly 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
ctimplement baseline readings, referring togs.BASELINE_DETS. - Upon resuming after a deferred pause, clear the deferred pause request.
- Make
bluesky.utils.register_transformcharacter 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_callbackstobluesky.callbacks.scientificandbluesky.broker_callbackstobluesky.callbacks.broker.Remove
bluesky.register_mdswhose usage can be replaced by:import metadatastore.commands; RE.subscribe_lossless('all', metadatastore.commands.insert)In all occurrences, the argument
block_grouphas been renamedgroupfor consistency. This affects the ‘trigger’ and ‘set’ messages.The (not widely used)
Centerplan 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
describemethod on flyers, which returns an iterable of dicts of data keys for one or more descriptors documents, has been renamed todescribe_collectto avoid confusion withdescribeon other devices, which returns a dict of data keys for one descriptor document.An obscure feature in
RunEngine.request_pausehas been removed, which involved removing the optional argumentscallbackandname.
v0.3.0¶
Removed
RunEngine.persistent_fields; all fields inRE.mdpersist 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
RunEnginehas changed. Thelogbookargument is now keyword-only, and there is a new keyword-only argument,md_validator. See docstring for details.The
configuremethod on readable objects now takes a single optional argument, a dictionary that the object can use to configure itself however it sees fit. Theconfiguremethod 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_idcallbacks.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,eventandstopmethods (as implemented).
If classes derived from CallbackBase are being used this will not not have any effect on user code.