Source code for coinbase.websocket

import os
from typing import IO, Callable, Optional, Union

from coinbase.constants import API_ENV_KEY, API_SECRET_ENV_KEY, WS_USER_BASE_URL

from .types.websocket_response import WebsocketResponse
from .websocket_base import WSBase, WSClientConnectionClosedException, WSClientException


[docs] class WSClient(WSBase): """ **WSClient** _____________________________ Initialize using WSClient __________ **Parameters**: - **api_key | Optional (str)** - The API key - **api_secret | Optional (str)** - The API key secret - **key_file | Optional (IO | str)** - Path to API key file or file-like object - **base_url | (str)** - The websocket base url. Default set to "wss://advanced-trade-ws.coinbase.com" - **timeout | Optional (int)** - Set timeout in seconds for REST requests - **max_size | Optional (int)** - Max size in bytes for messages received. Default set to (10 * 1024 * 1024) - **on_message | Optional (Callable[[str], None])** - Function called when a message is received - **on_open | Optional ([Callable[[], None]])** - Function called when a connection is opened - **on_close | Optional ([Callable[[], None]])** - Function called when a connection is closed - **retry | Optional (bool)** - Enables automatic reconnections. Default set to True - **verbose | Optional (bool)** - Enables debug logging. Default set to False """ from .channels import ( candles, candles_async, candles_unsubscribe, candles_unsubscribe_async, futures_balance_summary, futures_balance_summary_async, futures_balance_summary_unsubscribe, futures_balance_summary_unsubscribe_async, heartbeats, heartbeats_async, heartbeats_unsubscribe, heartbeats_unsubscribe_async, level2, level2_async, level2_unsubscribe, level2_unsubscribe_async, market_trades, market_trades_async, market_trades_unsubscribe, market_trades_unsubscribe_async, status, status_async, status_unsubscribe, status_unsubscribe_async, ticker, ticker_async, ticker_batch, ticker_batch_async, ticker_batch_unsubscribe, ticker_batch_unsubscribe_async, ticker_unsubscribe, ticker_unsubscribe_async, user, user_async, user_unsubscribe, user_unsubscribe_async, )
[docs] class WSUserClient(WSBase): """ **WSUserClient** _____________________________ Initialize using WSUserClient __________ **Parameters**: - **api_key | Optional (str)** - The API key - **api_secret | Optional (str)** - The API key secret - **key_file | Optional (IO | str)** - Path to API key file or file-like object - **base_url | (str)** - The websocket base url. Default set to "wss://advanced-trade-ws.coinbase.com" - **timeout | Optional (int)** - Set timeout in seconds for REST requests - **max_size | Optional (int)** - Max size in bytes for messages received. Default set to (10 * 1024 * 1024) - **on_message | Optional (Callable[[str], None])** - Function called when a message is received - **on_open | Optional ([Callable[[], None]])** - Function called when a connection is opened - **on_close | Optional ([Callable[[], None]])** - Function called when a connection is closed - **retry | Optional (bool)** - Enables automatic reconnections. Default set to True - **verbose | Optional (bool)** - Enables debug logging. Default set to False """ from .channels import ( futures_balance_summary, futures_balance_summary_async, futures_balance_summary_unsubscribe, futures_balance_summary_unsubscribe_async, heartbeats, heartbeats_async, heartbeats_unsubscribe, heartbeats_unsubscribe_async, user, user_async, user_unsubscribe, user_unsubscribe_async, ) def __init__( self, api_key: Optional[str] = os.getenv(API_ENV_KEY), api_secret: Optional[str] = os.getenv(API_SECRET_ENV_KEY), key_file: Optional[Union[IO, str]] = None, base_url=WS_USER_BASE_URL, timeout: Optional[int] = None, max_size: Optional[int] = 10 * 1024 * 1024, on_message: Optional[Callable[[str], None]] = None, on_open: Optional[Callable[[], None]] = None, on_close: Optional[Callable[[], None]] = None, retry: Optional[bool] = True, verbose: Optional[bool] = False, ): super().__init__( api_key=api_key, api_secret=api_secret, key_file=key_file, base_url=base_url, timeout=timeout, max_size=max_size, on_message=on_message, on_open=on_open, on_close=on_close, retry=retry, verbose=verbose, )