citric.session#

Low level wrapper for connecting to the LSRC2.

Module Contents#

Classes#

Session

LimeSurvey RemoteControl 2 session.

Attributes#

citric.session.GET_SESSION_KEY = get_session_key#
citric.session.logger#
class citric.session.Session(url, username, password, *, requests_session=None, auth_plugin='Authdb')#

LimeSurvey RemoteControl 2 session.

Upon creation, retrieves a session key with get_session_key and stores it in the key attribute. The key is released upon session closure.

Parameters
  • url (str) – LimeSurvey Remote Control endpoint.

  • username (str) – LimeSurvey user name.

  • password (str) – LimeSurvey password.

  • requests_session (requests.Session | None) – A requests.Session object.

  • auth_plugin (str) – Name of the plugin to use for authentication. For example, AuthLDAP. Defaults to using the internal database ("Authdb").

__attrs__ = ['url', 'key']#
property closed(self)#

Whether the RPC session is closed.

property key(self)#

RPC session key.

__getattr__(self, name)#

Magic method dispatcher.

rpc(self, method, *params)#

Execute RPC method on LimeSurvey, with optional token authentication.

Any method, except for get_session_key.

Parameters
  • method (str) – Name of the method to call.

  • params (Any) – Positional arguments of the RPC method.

Returns

An RPC result.

Return type

Any

close(self)#

Close RPC session.

Releases the session key with release_session_key.

__enter__(self)#

Context manager for RPC session.

Returns

LimeSurvey RPC session.

Return type

_T

__exit__(self, exc_type, exc_value, traceback)#

Safely exit an RPC session.

Parameters
  • exc_type (type[BaseException] | None) – Exception class.

  • exc_value (BaseException | None) – Exception instance.

  • traceback (TracebackType | None) – Error traceback.