duniterpy.api package¶
Subpackages¶
Submodules¶
duniterpy.api.client module¶
-
class
duniterpy.api.client.API(connection_handler: duniterpy.api.endpoint.ConnectionHandler, headers: Union[dict, NoneType] = None)¶ Bases:
objectAPI is a class used as an abstraction layer over the request library (AIOHTTP).
-
connect_ws(path: str) → aiohttp.client._WSRequestContextManager¶ Connect to a websocket in order to use API parameters
In reality, aiohttp.session.ws_connect returns a aiohttp.client._WSRequestContextManager instance. It must be used in a with statement to get the ClientWebSocketResponse instance from it (__aenter__). At the end of the with statement, aiohttp.client._WSRequestContextManager.__aexit__ is called and close the ClientWebSocketResponse in it.
Parameters: path – the url path Returns:
-
requests_get(path: str, **kwargs) → aiohttp.client_reqrep.ClientResponse¶ Requests GET wrapper in order to use API parameters.
Parameters: path – the request path Returns:
-
requests_post(path: str, **kwargs) → aiohttp.client_reqrep.ClientResponse¶ Requests POST wrapper in order to use API parameters.
Parameters: path – the request path Returns:
-
reverse_url(scheme: str, path: str) → str¶ Reverses the url using scheme and path given in parameter.
Parameters: - scheme – Scheme of the url
- path – Path of the url
Returns:
-
-
class
duniterpy.api.client.Client(_endpoint: Union[str, duniterpy.api.endpoint.Endpoint], session: aiohttp.client.ClientSession = None, proxy: str = None)¶ Bases:
objectMain class to create an API client
-
close()¶ Close aiohttp session
Returns:
-
connect_ws(path: str) → aiohttp.client._WSRequestContextManager¶ Connect to a websocket in order to use API parameters
Parameters: path – the url path Returns:
-
get(url_path: str, params: dict = None, rtype: str = 'json', schema: dict = None) → Any¶ GET request on self.endpoint + url_path
Parameters: - url_path – Url encoded path following the endpoint
- params – Url query string parameters dictionary
- rtype – Response type
- schema – Json Schema to validate response (optional, default None)
Returns:
-
post(url_path: str, params: dict = None, rtype: str = 'json', schema: dict = None) → Any¶ POST request on self.endpoint + url_path
Parameters: - url_path – Url encoded path following the endpoint
- params – Url query string parameters dictionary
- rtype – Response type
- schema – Json Schema to validate response (optional, default None)
Returns:
-
-
duniterpy.api.client.parse_error(text: str) → Any¶ Validate and parse the BMA answer from websocket
Parameters: text – the bma error Returns: the json data
-
duniterpy.api.client.parse_response(response: aiohttp.client_reqrep.ClientResponse, schema: dict) → Any¶ Validate and parse the BMA answer
Parameters: - response – Response of aiohttp request
- schema – The expected response structure
Returns: the json data
-
duniterpy.api.client.parse_text(text: str, schema: dict) → Any¶ Validate and parse the BMA answer from websocket
Parameters: - text – the bma answer
- schema – dict for jsonschema
Returns: the json data
duniterpy.api.endpoint module¶
-
class
duniterpy.api.endpoint.BMAEndpoint(server: str, ipv4: str, ipv6: str, port: int)¶ Bases:
duniterpy.api.endpoint.Endpoint-
API= 'BASIC_MERKLED_API'¶
-
conn_handler(session: aiohttp.client.ClientSession, proxy: str = None) → duniterpy.api.endpoint.ConnectionHandler¶ Return connection handler instance for the endpoint
Parameters: - session – AIOHTTP client session instance
- proxy – Proxy url
Returns:
-
classmethod
from_inline(inline: str) → BMAEndpointType¶ Return BMAEndpoint instance from endpoint string
Parameters: inline – Endpoint string Returns:
-
inline() → str¶ Return endpoint string
Returns:
-
re_inline= re.compile('^BASIC_MERKLED_API(?: ([a-z0-9-_.]*(?:.[a-zA-Z])?))?(?: ((?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])))?(?: ((?:(?:[0-9A-Fa-f]{1,4}:))¶
-
-
class
duniterpy.api.endpoint.ConnectionHandler(http_scheme: str, ws_scheme: str, server: str, port: int, path: str, session: aiohttp.client.ClientSession, proxy: Union[str, NoneType] = None)¶ Bases:
objectHelper class used by other API classes to ease passing server connection information.
-
class
duniterpy.api.endpoint.ESCoreEndpoint(server: str, port: int)¶ Bases:
duniterpy.api.endpoint.Endpoint-
API= 'ES_CORE_API'¶
-
conn_handler(session: aiohttp.client.ClientSession, proxy: str = None) → duniterpy.api.endpoint.ConnectionHandler¶ Return connection handler instance for the endpoint
Parameters: - session – AIOHTTP client session instance
- proxy – Proxy url
Returns:
-
classmethod
from_inline(inline: str) → ESCoreEndpointType¶ Return ESCoreEndpoint instance from endpoint string
Parameters: inline – Endpoint string Returns:
-
inline() → str¶ Return endpoint string
Returns:
-
re_inline= re.compile('^ES_CORE_API ((?:[a-z0-9-_.]*(?:.[a-zA-Z])?)|(?:(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))) ([0-9]+)$')¶
-
-
class
duniterpy.api.endpoint.ESSubscribtionEndpoint(server: str, port: int)¶ Bases:
duniterpy.api.endpoint.Endpoint-
API= 'ES_SUBSCRIPTION_API'¶
-
conn_handler(session: aiohttp.client.ClientSession, proxy: str = None) → duniterpy.api.endpoint.ConnectionHandler¶ Return connection handler instance for the endpoint
Parameters: - session – AIOHTTP client session instance
- proxy – Proxy url
Returns:
-
classmethod
from_inline(inline: str) → ESSubscribtionEndpointType¶ Return ESSubscribtionEndpoint instance from endpoint string
Parameters: inline – Endpoint string Returns:
-
inline() → str¶ Return endpoint string
Returns:
-
re_inline= re.compile('^ES_SUBSCRIPTION_API ((?:[a-z0-9-_.]*(?:.[a-zA-Z])?)|(?:(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))) ([0-9]+)$')¶
-
-
class
duniterpy.api.endpoint.ESUserEndpoint(server: str, port: int)¶ Bases:
duniterpy.api.endpoint.Endpoint-
API= 'ES_USER_API'¶
-
conn_handler(session: aiohttp.client.ClientSession, proxy: str = None) → duniterpy.api.endpoint.ConnectionHandler¶ Return connection handler instance for the endpoint
Parameters: - session – AIOHTTP client session instance
- proxy – Proxy url
Returns:
-
classmethod
from_inline(inline: str) → ESUserEndpointType¶ Return ESUserEndpoint instance from endpoint string
Parameters: inline – Endpoint string Returns:
-
inline() → str¶ Return endpoint string
Returns:
-
re_inline= re.compile('^ES_USER_API ((?:[a-z0-9-_.]*(?:.[a-zA-Z])?)|(?:(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))) ([0-9]+)$')¶
-
-
class
duniterpy.api.endpoint.Endpoint¶ Bases:
object-
conn_handler(session: aiohttp.client.ClientSession, proxy: str = None) → duniterpy.api.endpoint.ConnectionHandler¶
-
classmethod
from_inline(inline: str) → EndpointType¶
-
inline() → str¶
-
-
class
duniterpy.api.endpoint.SecuredBMAEndpoint(server: str, ipv4: str, ipv6: str, port: int, path: str)¶ Bases:
duniterpy.api.endpoint.BMAEndpoint-
API= 'BMAS'¶
-
conn_handler(session: aiohttp.client.ClientSession, proxy: str = None) → duniterpy.api.endpoint.ConnectionHandler¶ Return connection handler instance for the endpoint
Parameters: - session – AIOHTTP client session instance
- proxy – Proxy url
Returns:
-
classmethod
from_inline(inline: str) → SecuredBMAEndpointType¶ Return SecuredBMAEndpoint instance from endpoint string
Parameters: inline – Endpoint string Returns:
-
inline() → str¶ Return endpoint string
Returns:
-
re_inline= re.compile('^BMAS(?: ([a-z0-9-_.]*(?:.[a-zA-Z])?))?(?: ((?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])))?(?: ((?:(?:[0-9A-Fa-f]{1,4}:){6}(?:[0-9A-F)¶
-
-
class
duniterpy.api.endpoint.UnknownEndpoint(api: str, properties: list)¶ Bases:
duniterpy.api.endpoint.Endpoint-
API= None¶
-
conn_handler(session: aiohttp.client.ClientSession, proxy: str = None) → duniterpy.api.endpoint.ConnectionHandler¶ Return connection handler from session
Parameters: - session – AIOHTTP Session
- proxy – Proxy server
Returns:
-
classmethod
from_inline(inline: str) → UnknownEndpointType¶ Return UnknownEndpoint instance from endpoint string
Parameters: inline – Endpoint string Returns:
-
inline() → str¶ Return endpoint string
Returns:
-
-
class
duniterpy.api.endpoint.WS2PEndpoint(ws2pid: str, server: str, port: int, path: str)¶ Bases:
duniterpy.api.endpoint.Endpoint-
API= 'WS2P'¶
-
conn_handler(session: aiohttp.client.ClientSession, proxy: str = None) → duniterpy.api.endpoint.ConnectionHandler¶ Return connection handler instance for the endpoint
Parameters: - session – AIOHTTP client session instance
- proxy – Proxy url
Returns:
-
classmethod
from_inline(inline: str) → WS2PEndpointType¶ Return WS2PEndpoint instance from endpoint string
Parameters: inline – Endpoint string Returns:
-
inline() → str¶ Return endpoint string
Returns:
-
re_inline= re.compile('^WS2P ([0-9a-f]{8}) ((?:[a-z0-9-_.]*(?:.[a-zA-Z])?)|(?:(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))) ([0-9]+)?(?: ([/\\w \\.-]*/?))?)¶
-
-
duniterpy.api.endpoint.endpoint(value: Any) → Any¶ Convert a endpoint string to the corresponding Endpoint instance type
Parameters: value – Endpoint string or subclass Returns:
duniterpy.api.errors module¶
-
exception
duniterpy.api.errors.DuniterError(data: dict)¶ Bases:
ExceptionHandle duniter error