Releases: pcdshub/happi
v1.2.0
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 variable -
Additional 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
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
Enhancements
- The
QSBackend
guesses which a type of motor based on theprefix
. Currently this supportsNewport
,IMS
, andPMC100
motors. While there is not an explicit dependency, this will requirepcdsdevices >= 0.5.0
to load properly (#51)
Bug Fixes
v1.1.0
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.
Stable 1.0 Release
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 you- Select 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
API
- All 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 backend- Only 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
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
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
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 instance - Device 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