|
|
|
@ -10,8 +10,7 @@ from .utils.logs import get_nonce, shortify_log_value
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BaseAPIClient(ABC):
|
|
|
|
|
name: str
|
|
|
|
|
_base_url: HttpUrl
|
|
|
|
|
base_url: HttpUrl
|
|
|
|
|
_session: requests.Session
|
|
|
|
|
_nonce: str
|
|
|
|
|
_logger: logging.Logger
|
|
|
|
@ -49,7 +48,7 @@ class BaseAPIClient(ABC):
|
|
|
|
|
return self._request("CONNECT", endpoint, params=params, **kwargs)
|
|
|
|
|
|
|
|
|
|
def _make_full_url(self, endpoint: str) -> str:
|
|
|
|
|
return f"{self._base_url}{endpoint}"
|
|
|
|
|
return f"{self.base_url}{endpoint}"
|
|
|
|
|
|
|
|
|
|
def _request(self, method: str, endpoint: str, **kwargs: Any) -> requests.Response:
|
|
|
|
|
full_url = self._make_full_url(endpoint)
|
|
|
|
@ -88,16 +87,21 @@ class BaseAPIClient(ABC):
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
def _info(self, msg: str, *args: Any, **kwargs: Any) -> None:
|
|
|
|
|
self._logger.info(f"[{self._nonce}] {msg}", *args, stacklevel=2, **kwargs)
|
|
|
|
|
self._log("INFO", f"[{self._nonce}] {msg}", *args, **kwargs)
|
|
|
|
|
|
|
|
|
|
def _debug(self, msg: str, *args: Any, **kwargs: Any) -> None:
|
|
|
|
|
self._logger.debug(f"[{self._nonce}] {msg}", *args, stacklevel=2, **kwargs)
|
|
|
|
|
self._log("DEBUG", f"[{self._nonce}] {msg}", *args, **kwargs)
|
|
|
|
|
|
|
|
|
|
def _warn(self, msg: str, *args: Any, **kwargs: Any) -> None:
|
|
|
|
|
self._logger.warning(f"[{self._nonce}] {msg}", *args, stacklevel=2, **kwargs)
|
|
|
|
|
self._log("WARNING", f"[{self._nonce}] {msg}", *args, **kwargs)
|
|
|
|
|
|
|
|
|
|
def _error(self, msg: str, *args: Any, **kwargs: Any) -> None:
|
|
|
|
|
self._logger.error(f"[{self._nonce}] {msg}", *args, stacklevel=2, **kwargs)
|
|
|
|
|
self._log("ERROR", f"[{self._nonce}] {msg}", *args, **kwargs)
|
|
|
|
|
|
|
|
|
|
def _critical(self, msg: str, *args: Any, **kwargs: Any) -> None:
|
|
|
|
|
self._logger.critical(f"[{self._nonce}] {msg}", *args, stacklevel=2, **kwargs)
|
|
|
|
|
self._log("CRITICAL", f"[{self._nonce}] {msg}", *args, **kwargs)
|
|
|
|
|
|
|
|
|
|
def _log(self, level: str, msg: object, *args: object, stacklevel: int = 3, extra: dict | None = None, **kwargs: Any) -> None:
|
|
|
|
|
extra = extra or {}
|
|
|
|
|
extra.update(nonce=self._nonce)
|
|
|
|
|
self._logger.log(logging.getLevelNamesMapping()[level], msg, *args, stacklevel=stacklevel, extra=extra, **kwargs)
|
|
|
|
|