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
¶
-