mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-14 08:17:13 +03:00
companion.py: Use custom type for CAPI Data.
This way if we get more stringent about it (could be a class) we don't need to edit all the references.
This commit is contained in:
parent
c12c739c11
commit
da2a582c46
17
companion.py
17
companion.py
@ -21,7 +21,7 @@ from email.utils import parsedate
|
||||
# TODO: see https://github.com/EDCD/EDMarketConnector/issues/569
|
||||
from http.cookiejar import LWPCookieJar # noqa: F401 - No longer needed but retained in case plugins use it
|
||||
from os.path import join
|
||||
from typing import TYPE_CHECKING, Any, Dict, List, Mapping, Union
|
||||
from typing import TYPE_CHECKING, Any, Dict, List, Mapping, NewType, Union
|
||||
|
||||
import requests
|
||||
|
||||
@ -35,6 +35,9 @@ if TYPE_CHECKING:
|
||||
_ = lambda x: x # noqa: E731 # to make flake8 stop complaining that the hacked in _ method doesnt exist
|
||||
|
||||
|
||||
# Define custom type for the dicts that hold CAPI data
|
||||
CAPIData = NewType('CAPIData', Mapping[str, Any])
|
||||
|
||||
holdoff = 60 # be nice
|
||||
timeout = 10 # requests timeout
|
||||
auth_timeout = 30 # timeout for initial auth
|
||||
@ -445,7 +448,7 @@ class Session(object):
|
||||
self.session.headers['User-Agent'] = USER_AGENT
|
||||
self.state = Session.STATE_OK
|
||||
|
||||
def query(self, endpoint: str) -> Mapping[str, Any]:
|
||||
def query(self, endpoint: str) -> CAPIData:
|
||||
"""Perform a query against the specified CAPI endpoint."""
|
||||
logger.debug(f'Performing query for endpoint "{endpoint}"')
|
||||
if self.state == Session.STATE_INIT:
|
||||
@ -512,11 +515,11 @@ class Session(object):
|
||||
|
||||
return data
|
||||
|
||||
def profile(self) -> Mapping[str, Any]:
|
||||
def profile(self) -> CAPIData:
|
||||
"""Perform general CAPI /profile endpoint query."""
|
||||
return self.query(URL_QUERY)
|
||||
|
||||
def station(self) -> Union[Mapping[str, Any], None]:
|
||||
def station(self) -> Union[CAPIData, None]:
|
||||
"""Perform CAPI /profile endpoint query for station data."""
|
||||
data = self.query(URL_QUERY)
|
||||
if not data['commander'].get('docked'):
|
||||
@ -569,7 +572,7 @@ class Session(object):
|
||||
logger.error(f'Frontier CAPI Auth: {r.url} {r.status_code} {r.reason and r.reason or "None"} {r.text}')
|
||||
|
||||
|
||||
def fixup(data: Mapping[str, Any]) -> Mapping[str, Any]: # noqa: C901, CCR001 # Can't be usefully simplified
|
||||
def fixup(data: CAPIData) -> CAPIData: # noqa: C901, CCR001 # Can't be usefully simplified
|
||||
"""
|
||||
Fix up commodity names to English & miscellaneous anomalies fixes.
|
||||
|
||||
@ -646,9 +649,9 @@ def fixup(data: Mapping[str, Any]) -> Mapping[str, Any]: # noqa: C901, CCR001 #
|
||||
return datacopy
|
||||
|
||||
|
||||
def ship(data: Mapping[str, Any]) -> Mapping[str, Any]:
|
||||
def ship(data: CAPIData) -> CAPIData:
|
||||
"""Construct a subset of the received data describing the current ship."""
|
||||
def filter_ship(d: Mapping[str, Any]) -> Mapping[str, Any]:
|
||||
def filter_ship(d: CAPIData) -> CAPIData:
|
||||
"""Filter provided ship data."""
|
||||
filtered = {}
|
||||
for k, v in d.items():
|
||||
|
Loading…
x
Reference in New Issue
Block a user