"""
Stockbit API — Unofficial Python Wrapper
"""
from typing import Optional
import requests
from .auth import AuthManager
from .exodus import ExodusAPI
from .carina import CarinaAPI
from .websocket_client import StockbitWebSocket
from .utils import RateLimiter
class StockbitClient:
def __init__(
self,
main_token: str,
trading_pin: Optional[str] = None,
rate_limit_rpm: int = 60,
auto_retry: bool = True,
max_retries: int = 3,
):
self._session = requests.Session()
self._session.headers.update({
"Authorization": f"Bearer {main_token}",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
"Accept": "application/json",
})
self._rate_limiter = RateLimiter(rpm=rate_limit_rpm)
self.auth = AuthManager(main_token=main_token, trading_pin=trading_pin)
self.exodus = ExodusAPI(self.auth, self._session, self._rate_limiter)
self.carina = CarinaAPI(self.auth, self._session, self._rate_limiter)
self.websocket = StockbitWebSocket(self.auth)
def close(self):
self._session.close()