Releases: pcdshub/hutch-python
Releases · pcdshub/hutch-python
v1.16.0 (2022-06-03)
Features
- Add the
obj_config
key to theconf.yml
configuration file. This allows the user to pass in the path to a file that contains object reconfiguration information. Currently, tab completion whitelists/blacklists andophyd
componentkind
configuration are supported. - Switch the best effort callback instance
bec
to use theBECOptionsPerRun
callback fromnabs
instead of the previousBestEffortCallback
frombluesky
. This new class is a subclass ofBestEffortCallback
that allows us to configure its options on a per-scan basis by setting metadata keys. This means we can do things like disabling plots on scans where it makes no sense, and perhaps more features in the future.
Contributors
v1.15.0 (2022-05-02)
Features
- Add automatic ELOG post configuration to the run engine.
- Add a much more helpful startup banner that calls out specific
helpful objects in the namespace.
Fixes
- Make the dev package identifier very robust.
Maintenance
- Configure and satisfy pre-commit checks.
- Rework and clean up the post-IPython initialization.
Contributors
v1.14.0 (2022-03-31)
Features
- Ctrl+C now aborts the current run, returning the RunEngine to a
ready / idle state. The old pause functionality has been moved to
Ctrl+\. - Include per-device load times for devices loaded from happi.
- Load a run-engine wrapped namespace (lowercase
re
) as a replacement
for the proliferation of roll-your-own wrappers, and also add wrapped
daq scan functions to thedaq
object. - Add plan wrappers to all plans to make it clear which are plans and
which are functions. - Show the environment information at startup so the user knows what
version of the software they are running.
Contributors
v1.13.2 (2022-02-11)
Fixes and Maintenance
Configure IPython
to disable black
input reformatting,for three reasons:
- Throws errors in our terminal after the first input
- Conflicts with advice in the
black
github issues that assert thatblack
is not ready to be used as an import. - I don't think it's a good fit for the scientific computing and expect that it will be annoying in practice.
Contributors
- zllentz
v1.13.1 (2022-02-07)
Fixes and Maintenance
- Noisy logger detection is now configured but disabled by default.
- Noisy logger detection is split between the file and the console.
- Allow both QtAgg and Qt5Agg as valid matplolib backends for the loaded
environment. - Include
daq_type
anddaq_host
in the list of valid keys for the
purpose of warning the user about a malformed config. These have been
valid, but produce an incorrect warning. - Expand the default LCLS2 DAQ timeout from 1 second to 10 seconds to fix
an issue where we would time out on expected long operations.
Contributors
v1.13.0 (2021-11-10)
Features
- Noisy loggers will automatically be filtered based on message rate metrics
as to not disturb the user. - Warnings will be redirected to the logging stream, making them show up
in the log files. - Warnings will only be shown once each per session per warning source,
rather than after every IPython line, via demoting them to DEBUG level
in the console, as to not disturb the user. - Callback exception log messages will be demoted to DEBUG level in the
console as to not disturb the user.
Fixes and Maintenance
- Add documentation about the log namespace.
- Fix an issue where certain helpful namespaces inside of helpful namespaces
in specific situations would not render properly. - Fix various issues with the CI and move it to Python 3.9 only.
- Remove no longer needed inflection dependency
v1.12.0 (2021-09-28)
Features
- Add functionality for specifying parameters for and automatically
instantiating the LCLS2 DAQ object (BlueskyScan) via an optional
psdaq.control dependency and configuration keys.
Fixes and Maintenance
- Restore the CI pypi build to running.
- Properly setup lightpath, psdm_qs_cli, and elog as optional dependencies.
- Clean up the documentation about the configuration file.
v1.11.2 (2021-08-09)
Fixes and Maintenance
- Fix order of message logging in the IPython input logger. Previously, the
In log message wouldn't happen until after the command had already finished.
Now, the In message is logged, then any normal log messages are logged, and
then finally the Out message is logged, all neatly in order. - Adjust exception handling output for log files and for centralized logger.
- Log exceptions in threads
- Only log to the centralized PCDS logger when on a PCDS host
- Support stacklevel for centralized logging on Python 3.8+
- Make elog and lightpath optional dependencies for pip
v1.11.1 (2021-07-09)
Fixes and Maintenance
- Fix issues related to matplotlib setup in headless mode. This means that it
will no longer crash the session when used without x-forwarding.
v1.11.0 (2021-06-04)
Features
- Added ability to opt-in to specific Ophyd Object instance DEBUG logs. Call
logs.log_objects(obj1, obj2)
to configure it forobj1
andobj2
,
for example, and clear it by way oflogs.log_objects_off()
. - Added a new
logs
object in the IPython namespace, offering easy access
to common log-related tools.
Fixes and Maintenance
- Refactored logging setup to be more modular and slightly better documented.
The ophyd logger is no longer "hushed", but is now filtered through the
newObjectFilter
mechanism.