Source code for helium_py.api.api

"""Base API Class for Helium Blockchain API."""
from typing import Optional

from .client import Client


[docs]class API: """Base API class for Helium Blockchain API. https://docs.helium.com/api/ """ host: Optional[str] = None port: Optional[int] = None user_agent: Optional[str] = None base_path: Optional[str] = None _client: Optional[Client] = None
[docs] def __init__(self, host=None, port=None, user_agent=None, base_path=None): """Allow for overriding API details at instantiation.""" self.host = host if host else self.host self.port = port if port else self.port self.user_agent = user_agent if user_agent else self.user_agent self.base_path = base_path if base_path else self.base_path
@property def client(self) -> Client: """Return a client singleton per API.""" if self._client is None: self._client = Client( host=self.host, port=self.port, user_agent=self.user_agent, base_path=self.base_path, ) return self._client