happi.backends.qs_db.QSBackend

class happi.backends.qs_db.QSBackend(expname: str, *, url=None, use_kerberos=True, user=None, pw=None, cfg_path=None)

Questionniare Backend.

This backend connects to the LCLS questionnaire and looks at items with the key pattern pcds-{}-setup-{}-{}. These fields are then combined and turned into proper happi items. The translation of table name to happi.HappiItem is determined by the translations dictionary. The beamline is determined by looking where the proposal was submitted.

Unlike the other backends, this one is read-only. All changes to the device information should be done via the web interface. Finally, in order to avoid duplicating any code needed to search the device database, the QSBackend inherits directly from JSONBackend. Many of the methods are unmodified with exception being that this backend merely searches through an in-memory dictionary whereas the JSONBackend reads from a file before searches.

Parameters:
  • expname (str) – The experiment name from the elog, e.g. xcslp1915.

  • url (str, optional) – Provide a base URL for the Questionnaire. If left as None the appropriate URL will be chosen based on your authentication method.

  • use_kerberos (bool, optional) – Use a Kerberos ticket to login to the Questionnaire. This is the default authentication method.

  • user (str, optional) – A username for ws_auth sign-in. If not provided the current login name is used.

  • pw (str, optional) – A password for ws_auth sign-in. If not provided a password will be requested.

  • cfg_path (str, optional) – Path to the happi config.

__init__(expname: str, *, url=None, use_kerberos=True, user=None, pw=None, cfg_path=None)

Methods

__init__(expname, *[, url, use_kerberos, ...])

clear_cache()

Clear the loaded cache.

delete(_id)

The current implementation of this backend is read-only.

find(to_match)

Find an instance or instances that matches the search criteria.

find_range(key, *, start[, stop])

Find an instance or instances that matches the search criteria, such that start <= entry[key] < stop.

find_regex(to_match, *[, flags])

Find an instance or instances that matches the search criteria, using regular expressions.

get_by_id(id_)

Get an item by ID if it exists, or return None.

initialize()

Can not initialize a new Questionnaire entry from API.

load()

Return the structured dictionary of information.

save(*args, **kwargs)

The current implementation of this backend is read-only.

store(*args, **kwargs)

The current implementation of this backend is read-only.

Attributes

all_items

All of the items in the database.

translations