rpyc_mem.session package

Submodules

rpyc_mem.session.rpyc_mem_session module

RPyC Memory Session

class rpyc_mem.session.rpyc_mem_session.RpycMemSession(hostname, port, max_retry=4, retry_delay=3, ignore_version=False, process_safe=True)

Bases: object

RpycMemSession brings RpycMemConnect, RemoteModule and RpycMem under one hood while enabling to create/manage remote objects efficiently. RpycMemSession will repurpose the connection object for different operations. A similar raw RPyC connection (underlying socket object is similar) when used in different processes may result in race conditions (Refer https://github.com/tomerfiliba-org/rpyc/issues/482). RpycMemSession can deal with it by keeping track of processes. RpycMemSession has functionality for creating RemoteModule object (singleton, accessible via rmod) and RpycMem objects. The underlying Rpyc Mem connection can be retrieved through rmem_conn property.

Parameters
  • hostname (str) – RPyC memory service hostname

  • port (int) – RPyC memory service port

  • max_retry (int) – Number of times to retry upon connection failure (at session level).

  • retry_delay (int) – Retry delay in seconds between each re-connect attempt

  • ignore_version (bool) – Do not validate the server RPyC version with the client

  • process_safe (bool) – Create a new Rpyc Mem connection when the objects created by the session are accessed by the process who is not the actual creator of the session.

property rmem_conn

Return RpycMemConnection in a process-safe way (if set to True)

Return rpyc_mem.connect.RpycMemConnect

rmem(unique_key, robj=<object object>, robj_gen=<object object>)

Create RpycMem object against the unique_key while using robj, robj_gen through session’s Rpyc memory connection

Parameters
  • unique_key (Hashable) – The unique-key for syncing the remote object with Rpyc memory service.

  • robj (Any) – The remote object to use for memoization (One among robj, robj_gen should be passed).

  • robj_gen (Callable) – The remote object generator to use for memoization (One among robj, robj_gen should be passed).

Returns

Module contents