citric.session#

Low level wrapper for connecting to the LSRC2.

Module Contents#

Classes#

Session

LimeSurvey RemoteControl 2 session.

class citric.session.Session(url, username, password, *, auth_plugin='Authdb', requests_session=None, json_encoder=None)[source]#

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:

Changed in version 0.0.4: Replaced the requests_session_factory parameter with requests_session.

New in version 0.0.6: Support Auth plugins with the auth_plugin parameter.

New in version 0.5.0: The json_encoder parameter.

property closed: bool[source]#

Whether the RPC session is closed.

property key: str | None[source]#

RPC session key.

USER_AGENT[source]#
__getattr__(name)[source]#

Magic method dispatcher.

call(method, *params)[source]#

Get the raw response from an RPC method.

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

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

Returns:

An RPC result.

Return type:

citric.types.RPCResponse

rpc(method, *params)[source]#

Execute a LimeSurvey RPC call with error handling.

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

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

Returns:

An RPC result.

Return type:

citric.types.Result

_invoke(method, *params)[source]#

Execute a LimeSurvey RPC with a JSON payload.

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

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

Raises:
Returns:

An RPC result.

Return type:

citric.types.RPCResponse

close()[source]#

Close RPC session.

Releases the session key with release_session_key.

__enter__()[source]#

Context manager for RPC session.

Returns:

LimeSurvey RPC session.

Return type:

Self

__exit__(exc_type, exc_value, traceback)[source]#

Safely exit an RPC session.

Parameters: