Skip to content

Releases: pcdshub/happi

v1.2.0

19 Dec 23:22
70bb1bc
Compare
Choose a tag to compare

Enhancements

  • Client now has a method load_device for searching the database for a Container and then loading the corresponding object based on device_class, args and kwargs. This is a shortcut to combine two previously existing features Client.find_device and happi.loader.from_container

  • Client.from_config will create a Client 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 and embedded_screen, detailed_screen and engineering_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 on fcntl a Linux only module of the Python standard library.

v1.1.2

30 Aug 23:44
5c63fbf
Compare
Choose a tag to compare

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

08 Mar 18:46
a1443cd
Compare
Choose a tag to compare

Enhancements

  • The QSBackend guesses which a type of motor based on the prefix. Currently this supports Newport, IMS, and PMC100 motors. While there is not an explicit dependency, this will require pcdsdevices >= 0.5.0 to load properly (#51)

Bug Fixes

  • Templating is more robust when dealing with types. This includes a fatal case where the default for an EntryInfo is None (#50)
  • A proper error message is returned if an entry in the table does not have the requisite information to load (#53 )

v1.1.0

13 Feb 23:02
6a87942
Compare
Choose a tag to compare

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

31 Jan 01:00
f6b3451
Compare
Choose a tag to compare

Enhancements

  • happi now handles loading devices with the built-in EntryInfo -> args, kwargs and device_class. Simply enter the proper information in these fields, either directly inputting information or using jinja2 templating. The functions from_container and load_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 now find_device.

Build

  • jinja2 is now a dependency
  • psdm_qs_cli is now an optional dependency if you want to use the Questionnaire backend
  • pymongo is now an optional dependency if you do not want to use the MongoDB backend
  • Only tested against Python 3.5.x and 3.6.x
  • Sent to the pcds-tag and pcds-dev Anaconda channels instead of the skywalker channels

v0.5.0

11 Nov 04:37
2133625
Compare
Choose a tag to compare

Enhancements

  • happi now supports multiple backends. The required database operations are templated in the happi.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 the happi.Client
  • Conda builds of happi are now available at skywalker-tag and skywalker-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 name OffsetMirror

Deprecations

  • happi will no longer support Python 2.7

v0.4.0

04 Apr 22:31
Compare
Choose a tag to compare

Bug Fixes

  • Removed dependency on mongomock in conda-recipe
  • MockClient creates entire device_types container mapping

API Changes

  • Renamed alias -> name, and base -> prefix for Ophyd compatibility

v0.3.0

22 Mar 18:18
Compare
Choose a tag to compare

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, and prettytable