Release History¶
v1.8.3 (2020-11-17)¶
Bugfixes¶
Fix loading of acromag io channels from the lcls questionnaire. Previously, these were loading full acromag devices instead of individual channels and were using the incorrect PVs.
Fix loading of Beckhoff axis motors from the lcls questionnaire. Previously, these were misidentified as IMS motors.
Maintenance¶
Refactor questionnaire entry creation to accomplish the above.
Contributors¶
cristinasewell
v1.8.1 (2020-10-21)¶
Bugfixes¶
Fix various issues causing questionnaire loads to fail.
Fix clarity issues for failed questionnaire loads.
Maintenance¶
Break up the questionnaire loading routines into more maintainable chunks, reorganizing and cleaning up the code.
Allow introspection of questionnaire state for debugging.
v1.8.0 (2020-10-07)¶
Features¶
Adds bash/fzf-based fuzzy finding of happi items with corresponding activate/deactivate scripts.
Adds
happi search --json
option to output JSON instead of a table.
Maintenance¶
Move IPython import to where it’s needed in
happi load
, saving approximately half a second on any otherhappi
CLI invocation.
v1.7.2 (2020-09-17)¶
Bugfixes¶
Fix issue with edge cases in lcls questionnaire loader
Fix issue with unclear warnings on creating malformed entries
Maintenance¶
Improve testing coverage for CLI functions
v1.7.1 (2020-08-20)¶
Bugfixes¶
Fix cli issue where the
--clone
argument would fail.Make sure the happi cli returns usage information if the user passes no arguments.
v1.7.0 (2020-08-18)¶
Features¶
Add cli search globbing, e.g. now the following will work:
happi search xpp*
(show all devices whose names start with xpp)
Bugfixes¶
Fix issue with silent failure when editing a non-existent field.
Fix issues related to changing an entry’s name field.
Maintenance¶
Add documentation for the happi cli
Update the db.json examples to use OphydItem
v1.6.1 (2020-07-01)¶
Bugfixes¶
Do not raise an exception on single malformed entries uncovered during a search. Treat these as missing entries. This was causing an issue where queries like
all_devices
would fail outright.Fix issue where
device_cls
string would leak through and raise a bad/confusing exception duringcreate_device
Maintenance¶
Reduce missing backends log messages from
warning
todebug
.Fix docs failing to build and related issues.
Add
requirements.txt
file toMANIFEST.in
.
v1.6.0 (2020-04-30)¶
LCLS-specific containers are moved out of happi, and into pcdsdevices
OphydItem
is now the preferred “basic”ophyd.Device
container, with the intention of fully deprecatingDevice
to avoid naming confusionMinor internal fixes
v1.5.0 (2020-04-06)¶
Refactor search methods, supporting mongo and JSON backends
search
- search by key/value pairs as kwargssearch_range
- search for a range of values in a specific keysearch_regex
- search for key/value pairs as kwargs, with values being regular expressionsAdds
SearchResult
container, allowing for access of metadata or device instantiation
Client['item']
supportedhappi.Device
is now marked as deprecatedMigrate to
happi.OphydItem
Documentation building fixed and made more accurate
Internal refactoring
Reduce usage of metaclasses
pymongo/mongomock are truly optional test dependencies now
Added pre-commit configuration for developer quality-of-life
HappiItem
s are nowcopy.copy()
-ableBackends supply generators and not lists
Fixed many oustanding issues with the JSON backend
v1.4.0 (2020-03-13)¶
Enhancements¶
Add an add command for cli, e.g. happi add to start an interactive device adder
Add an edit command for cli, e.g. happi edit im3l0 location=750 prefix=IM3L0:PPM
Change search command syntax to be simpler (more like edit)
Add a load command for cli, e.g. happi load im3l0 im1l1 -> IPython session plus other changes made in dev to “get it working”
Add two new Happi-aware Qt widgets: HappiDeviceListView & HappiDeviceTreeView
Bug Fixes¶
Initialize database if it does not yet exists
Fix broken tests
v1.3.0 (2019-12-10)¶
Enhancements¶
Command line script allow users to search and add devices #84
Base
Container
object now available with minimum amount ofEntryInfo
#92Allow Happi to load more devices from LCLS questionnaire #94
New function
list_choices
added tohappi.Client
to allow user to know what beamlines, prefixes, names, etc. will return results.Threaded
load_devices
with option to specify a callback when devices are ready #67
v1.2.1 (2019-03-07)¶
v1.2.0 (2018-12-19)¶
Enhancements¶
Client
now has a methodload_device
for searching the database for aContainer
and then loading the corresponding object based ondevice_class
,args
andkwargs
. This is a shortcut to combine two previously existing featuresClient.find_device
andhappi.loader.from_container
Client.from_config
will create aClient
object from a provided configuration file. You can either pass this file in explicitly, specify it via the the environment variable$HAPPI_CFG
, or it will be searched for in~config
or wherever you specify your `$XDG_CONFIG_HOME environment variableAdditional keywords were added to the base
Device
container;lightpath
,documentation
andembedded_screen
,detailed_screen
andengineering_screen
There is now a base container for a
Motor
object.
Deprecations¶
screen
is longer a supported key. This was too generic and the three keys detailed above allow the user more specificity.
Fixes¶
The
JSONBackend
no longer relies onfcntl
a Linux only module of the Python standard library.
v1.1.2 (2018-08-30)¶
Maintenance¶
In
from_container
, the provided container is compared against the cached version of the device to find discrepancies. This means that modified container objects will always load a new Device. (#62)The QSBackend uses newer methods available in the psdm_qs_cli to determine the proposal from the experiment name. This is more robust against exotic experiment naming schemas than prior implementations (#68)
v1.1.1 (2018-03-08)¶
v1.1.0 (2018-02-13)¶
Ownership of this repository has been transferred to https://github.com/pcdshub
Enhancements¶
Happi now has a cache so the repeated requests to load the same device do not spawn multiple objects.
Maintenance¶
Cleaner logging messages
QSBackend
was expanded to accommodate different keyword arguments associated with different authentication methods.
v1.0.0 (2018-01-31)¶
Enhancements¶
happi
now handles loading devices with the built-inEntryInfo
-> args, kwargs and device_class. Simply enter the proper information in these fields, either directly inputting information or usingjinja2
templating. The functionsfrom_container
andload_devices
will then handle the necessary imports and initialize devices for youSelect which backend you want to use with the environment variable
$HAPPI_BACKEND
Backend to read from the PCDS Questionnaire
All containers work out of the box with
pcdsdevices >= 0.3.0
## APIAll backends are stored in the
backends
directory.The default plugin is now considered to be
JSONBackend
The function formerly called
load_device
is nowfind_device
.
Build¶
jinja2
is now a dependencypsdm_qs_cli
is now an optional dependency if you want to use the Questionnaire backendpymongo
is now an optional dependency if you do not want to use the MongoDB backendOnly tested against Python
3.5.x
and3.6.x
Sent to the
pcds-tag
andpcds-dev
Anaconda channels instead of theskywalker
channels
v0.5.0 (2017-11-11)¶
Enhancements¶
happi
now supports multiple backends. The required database operations are templated in thehappi.backends.Backend
The existing mongoDB support was kept as the default, but the an additional JSON backend was added. The choice of database type can be entered as an argument to thehappi.Client
Conda builds of
happi
are now available atskywalker-tag
andskywalker-dev
Bug Fixes¶
Devices comparison now works properly. The listed prefix and names are compared.
API Changes¶
Mirror
container has been changed to the more specific nameOffsetMirror
Deprecations¶
happi
will no longer support Python 2.7
v0.4.0 (2017-04-04)¶
Bug Fixes¶
Removed dependency on mongomock in conda-recipe
MockClient
creates entiredevice_types
container mapping
API Changes¶
Renamed alias -> name, and base -> prefix for Ophyd compatibility
v0.3.0 (2017-03-22)¶
Enhancements¶
Added Python 2.7 support
Added macros keyword for EDM support
Added CI tools for Travis, Codecov
Changed tests to use a
mongomock.MockClient
instead of an actual mongoDB instanceDevice can now
show_info
and print a table output of all entered information
Bug Fixes¶
active
EntryInfo should default to True
API Changes¶
Moved the tests directory into the package to make it easily importable by other modules hoping to use a MockClient
Introduced explicit dependencies on
six
,mongomock
, andprettytable