mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-19 06:44:22 +01:00
Drop modules bfxapi.enums, bfxapi.rest.enums and bfxapi.websocket.enums.
This commit is contained in:
53
bfxapi/_client.py
Normal file
53
bfxapi/_client.py
Normal file
@@ -0,0 +1,53 @@
|
||||
from typing import \
|
||||
TYPE_CHECKING, List, Optional
|
||||
|
||||
from bfxapi._utils.logging import ColorLogger
|
||||
|
||||
from bfxapi._exceptions import IncompleteCredentialError
|
||||
|
||||
from bfxapi.rest import BfxRestInterface
|
||||
from bfxapi.websocket import BfxWebSocketClient
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from bfxapi.websocket._client.bfx_websocket_client import \
|
||||
_Credentials
|
||||
|
||||
REST_HOST = "https://api.bitfinex.com/v2"
|
||||
WSS_HOST = "wss://api.bitfinex.com/ws/2"
|
||||
|
||||
PUB_REST_HOST = "https://api-pub.bitfinex.com/v2"
|
||||
PUB_WSS_HOST = "wss://api-pub.bitfinex.com/ws/2"
|
||||
|
||||
class Client:
|
||||
def __init__(
|
||||
self,
|
||||
api_key: Optional[str] = None,
|
||||
api_secret: Optional[str] = None,
|
||||
*,
|
||||
rest_host: str = REST_HOST,
|
||||
wss_host: str = WSS_HOST,
|
||||
filters: Optional[List[str]] = None,
|
||||
timeout: Optional[int] = 60 * 15,
|
||||
log_filename: Optional[str] = None
|
||||
) -> None:
|
||||
credentials: Optional["_Credentials"] = None
|
||||
|
||||
if api_key and api_secret:
|
||||
credentials = \
|
||||
{ "api_key": api_key, "api_secret": api_secret, "filters": filters }
|
||||
elif api_key:
|
||||
raise IncompleteCredentialError( \
|
||||
"You must provide both an API-KEY and an API-SECRET (missing API-KEY).")
|
||||
elif api_secret:
|
||||
raise IncompleteCredentialError( \
|
||||
"You must provide both an API-KEY and an API-SECRET (missing API-SECRET).")
|
||||
|
||||
self.rest = BfxRestInterface(rest_host, api_key, api_secret)
|
||||
|
||||
logger = ColorLogger("bfxapi", level="INFO")
|
||||
|
||||
if log_filename:
|
||||
logger.register(filename=log_filename)
|
||||
|
||||
self.wss = BfxWebSocketClient(wss_host, \
|
||||
credentials=credentials, timeout=timeout, logger=logger)
|
||||
Reference in New Issue
Block a user