The DogeAPIClient is the low-level engine powering all API interactions.
It wraps the httpx.Client and provides retry logic, timeouts, and request abstraction.
Perform a REST request with retry logic for 429 and 5xx errors.
Source code in src/pydoge_api/client.py
25262728293031323334353637383940414243444546
def__init__(self,base_url:str="https://api.doge.gov",timeout:float=10.0,session:Optional[httpx.Client]=None,max_retries:int=5,backoff_factor:float=1.5,**httpx_kwargs):self.base_url=base_urlself.timeout=timeoutself.max_retries=max_retriesself.backoff_factor=backoff_factorifsession:ifnotisinstance(session,httpx.Client):raiseTypeError("Custom session must be an instance of httpx.Client")self.client=sessionself._owns_session=Falseelse:self.client=httpx.Client(base_url=base_url,timeout=timeout,**httpx_kwargs)self._owns_session=True