Module misty2py.information
This module's function is to send information requests via the information keywords matching to Misty's API endpoints, sending information requests and matching data shortcuts.
Classes
class Get (ip: str, protocol: str, custom_allowed_infos: Dict = {})
-
Expand source code
class Get: """A class representing the GET url request method. Attributes: ip (str): The IP address for the URL where the requests are sent. protocol (str): The protocol for the URL where the requests are sent. allowed_infos (dict): The dictionary of information keywords matching to the Misty's API endpoints. """ def __init__(self, ip: str, protocol: str, custom_allowed_infos: Dict = {}) -> None: """Initialises a Get object. Args: ip (str): The IP address for the URL where the requests are sent. protocol (str): The protocol for the URL where the requests are sent. custom_allowed_infos (Dict, optional): The dictionary of custom information keywords. Defaults to `{}`. """ self.ip = ip self.protocol = protocol allowed_infos = custom_allowed_infos f = open(INFOS_JSON) allowed_infos.update(json.loads(f.read())) f.close() self.allowed_infos = allowed_infos def get_info(self, endpoint: str, params: Dict) -> Misty2pyResponse: """Sends a GET request. Args: endpoint (str): The API endpoint to which the request is sent. Returns: Misty2pyResponse: A Misty2pyResponse object with Misty2py sub-response and Misty REST API sub-response. """ r = requests.get( "%s://%s/%s" % (self.protocol, self.ip, endpoint), params=params ) try: return Misty2pyResponse(True, rest_response=r.json()) except Exception as e: return Misty2pyResponse( False, rest_response=r.content, error_msg=e, error_type=Misty2pyErrorType.UNKNOWN, )
A class representing the GET url request method.
Attributes
ip
:str
- The IP address for the URL where the requests are sent.
protocol
:str
- The protocol for the URL where the requests are sent.
allowed_infos
:dict
- The dictionary of information keywords matching to the Misty's API endpoints.
Initialises a Get object.
Args
ip
:str
- The IP address for the URL where the requests are sent.
protocol
:str
- The protocol for the URL where the requests are sent.
custom_allowed_infos
:Dict
, optional- The dictionary of custom information keywords. Defaults to
{}
.
Subclasses
Methods
def get_info(self, endpoint: str, params: Dict) ‑> Misty2pyResponse
-
Expand source code
def get_info(self, endpoint: str, params: Dict) -> Misty2pyResponse: """Sends a GET request. Args: endpoint (str): The API endpoint to which the request is sent. Returns: Misty2pyResponse: A Misty2pyResponse object with Misty2py sub-response and Misty REST API sub-response. """ r = requests.get( "%s://%s/%s" % (self.protocol, self.ip, endpoint), params=params ) try: return Misty2pyResponse(True, rest_response=r.json()) except Exception as e: return Misty2pyResponse( False, rest_response=r.content, error_msg=e, error_type=Misty2pyErrorType.UNKNOWN, )
Sends a GET request.
Args
endpoint
:str
- The API endpoint to which the request is sent.
Returns
Misty2pyResponse
- A Misty2pyResponse object with Misty2py sub-response and Misty REST API sub-response.
class Info (ip: str, protocol: str, custom_allowed_infos: Dict = {})
-
Expand source code
class Info(Get): """A class representing an information request from Misty. A subclass of Get().""" def get_info(self, info_name: str, params: Dict = {}) -> Misty2pyResponse: """Sends an information request to Misty. Args: info_name (str): The information keyword specifying which information is requested. params (Dict): dict of parameter name and parameter value. Defaults to `{}`. Returns: Misty2pyResponse: A Misty2pyResponse object with Misty2py sub-response and Misty REST API sub-response. """ if info_name not in self.allowed_infos.keys(): return Misty2pyResponse( False, error_msg="Command `%s` not supported." % info_name, error_type=Misty2pyErrorType.COMMAND, ) endpoint = self.allowed_infos[info_name] try: return super().get_info(endpoint, params) except Exception as e: return unknown_error(e)
A class representing an information request from Misty. A subclass of Get().
Initialises a Get object.
Args
ip
:str
- The IP address for the URL where the requests are sent.
protocol
:str
- The protocol for the URL where the requests are sent.
custom_allowed_infos
:Dict
, optional- The dictionary of custom information keywords. Defaults to
{}
.
Ancestors
Methods
def get_info(self, info_name: str, params: Dict = {}) ‑> Misty2pyResponse
-
Expand source code
def get_info(self, info_name: str, params: Dict = {}) -> Misty2pyResponse: """Sends an information request to Misty. Args: info_name (str): The information keyword specifying which information is requested. params (Dict): dict of parameter name and parameter value. Defaults to `{}`. Returns: Misty2pyResponse: A Misty2pyResponse object with Misty2py sub-response and Misty REST API sub-response. """ if info_name not in self.allowed_infos.keys(): return Misty2pyResponse( False, error_msg="Command `%s` not supported." % info_name, error_type=Misty2pyErrorType.COMMAND, ) endpoint = self.allowed_infos[info_name] try: return super().get_info(endpoint, params) except Exception as e: return unknown_error(e)
Sends an information request to Misty.
Args
info_name
:str
- The information keyword specifying which information is requested.
params
:Dict
- dict of parameter name and parameter value. Defaults to
{}
.
Returns
Misty2pyResponse
- A Misty2pyResponse object with Misty2py sub-response and Misty REST API sub-response.