jarpc 0.4.0a0 Documentation

API Documentation

API Documentation

Submodules

jarpc.client module

class jarpc.client.Client(*args, default_timeout: Optional[int] = None, default_expect_responses: Optional[int] = None, **kwargs)

Bases: jarpc.connection.Connection, jarpc.abc.ABCClient

Sends commands to servers and listens for responses.

call(command_index: int, data: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, expect_responses: Optional[int] = None) → jarpc.abc.ResponsesIterator

Calls command and returns received responses. Skips response processing completely if timeout is None.

class jarpc.client.EmptyResponses

Bases: jarpc.abc.ResponsesIterator

Behaves the same way as ResponsesWithTimeout, except it is empty.

class jarpc.client.ResponsesWithTimeout(client: jarpc.client.Client, queue: jarpc.types.TypedQueue[jarpc.response.Response][jarpc.response.Response], address: str, timeout: float, expect_responses: Optional[int] = None)

Bases: jarpc.abc.ResponsesIterator

Provides access to command responses for limited time.

responses_seen

Amount of yielded responses.

time_remaining

Remaining time until iterator is closed.

jarpc.server module

class jarpc.server.Server(*args, **kwargs)

Bases: jarpc.connection.Connection, jarpc.abc.ABCServer

Listens for commands from clients and sends responses.

add_command(index: int, fn: Any) → int

Registers new command. Raises ValueError if index already used.

command(index: int) → Callable[[Any], None]

Flask-style decorator used to register commands. Calls register_command.

remove_command(index: int) → Any

Removes existing command. Raises ValueError if index not found.

coroutine reply(*, address: Optional[str], status: jarpc.enums.StatusCode, data: Any) → None

Sends response to address (if address is present).

jarpc.slient module

class jarpc.slient.Slient(*args, default_timeout: Optional[int] = None, default_expect_responses: Optional[int] = None, **kwargs)

Bases: jarpc.client.Client, jarpc.server.Server

Slient combines functionality of Client and Server.

jarpc.abc module

class jarpc.abc.ResponsesIterator

Bases: abc.ABC

Provides access to command responses.

Instances can be awaited to get all responses at once or used as async iterator to process responses as soon as they arrive.

class jarpc.abc.ABCConnection

Bases: abc.ABC

RPC Connection.

close() → None

Closes connection.

name

Connection name.

node

Node identifier.

coroutine start(redis_address: Union[Tuple[str, int], str], **kwargs) → None

Starts processing messages.

class jarpc.abc.ABCClient

Bases: jarpc.abc.ABCConnection

Calls commands.

call(command_index: int, data: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, expect_responses: int = 0) → jarpc.abc.ResponsesIterator

Calls command by index.

class jarpc.abc.ABCServer

Bases: jarpc.abc.ABCConnection

Responds to commands.

add_command(index: int, fn: Any) → int

Registers new command.

remove_command(index: int) → Any

Removes existing command.

coroutine reply(*, address: Optional[str], status: jarpc.enums.StatusCode, data: Any) → None

Sends response to address.

jarpc.request module

class jarpc.request.Request(server: jarpc.abc.ABCServer, command_index: int, node: str, data: Any, address: Optional[str])

Bases: object

command_index
classmethod from_data(server: jarpc.abc.ABCServer, payload: Dict[str, Any]) → jarpc.request.Request
node
coroutine reply(data: Any) → None
server

jarpc.response module

class jarpc.response.Response(status: jarpc.enums.StatusCode, node: str, data: Any, address: str)

Bases: object

data
classmethod from_data(payload: Dict[str, Any]) → jarpc.response.Response
node
status
Free document hosting provided by Read the Docs.