Source code for abstract_api.core.bases._base_response

from abc import ABC
from typing import ClassVar, Type

import requests.models


[docs] class BaseResponseMeta(ABC): """Base response metadata for Abstract API service response.""" def __init__(self, response: requests.models.Response) -> None: """Initializes a new BaseResponseMeta.""" self._http_status: int = response.status_code self._body: bytes = response.content @property def http_status(self) -> int: """HTTP status code of API request.""" return self._http_status @property def body(self) -> bytes: """Raw response body returned from API request.""" return self._body
[docs] class BaseResponse(ABC): """Base Abstract API service response. Attributes: _meta_class: Class (type) of response metadata instance. """ _meta_class: ClassVar[Type[BaseResponseMeta]] def __init__(self, response: requests.models.Response) -> None: """Initializes a new BaseResponse.""" self._meta: BaseResponseMeta = self._meta_class(response) @property def meta(self) -> BaseResponseMeta: """Metadata about response.""" return self._meta