mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-19 23:04:21 +01:00
Create Client module
This commit is contained in:
7
bfxapi/Client.py
Normal file
7
bfxapi/Client.py
Normal file
@@ -0,0 +1,7 @@
|
||||
from .websockets.BfxWebsocket import BfxWebsocket
|
||||
|
||||
class Client:
|
||||
def __init__(self, API_KEY=None, API_SECRET=None,
|
||||
host='wss://test.bitfinex.com/ws/2', *args, **kwargs):
|
||||
self.ws = BfxWebsocket(API_KEY=API_KEY, API_SECRET=API_SECRET, host=host, *args, **kwargs)
|
||||
self.rest = None # Eventually will be the rest interface
|
||||
@@ -1,4 +1,4 @@
|
||||
name = 'bfxapi'
|
||||
|
||||
from bfxapi.websockets.LiveWebsocket import LiveBfxWebsocket
|
||||
from bfxapi.Client import Client
|
||||
from bfxapi.websockets.GenericWebsocket import GenericWebsocket
|
||||
|
||||
@@ -47,5 +47,5 @@ class Order:
|
||||
|
||||
def __str__(self):
|
||||
''' Allow us to print the Order object in a pretty format '''
|
||||
return "Order <'{0}' mtsCreate={1} {}>".format(self.symbol, self.mtsCreate,
|
||||
return "Order <'{0}' mtsCreate={1} {2}>".format(self.symbol, self.mtsCreate,
|
||||
self.status)
|
||||
|
||||
@@ -37,7 +37,7 @@ def _parse_trade(tData, symbol):
|
||||
'symbol': symbol
|
||||
}
|
||||
|
||||
class LiveBfxWebsocket(GenericWebsocket):
|
||||
class BfxWebsocket(GenericWebsocket):
|
||||
'''
|
||||
More complex websocket that heavily relies on the btfxwss module. This websocket requires
|
||||
authentication and is capable of handling orders.
|
||||
@@ -116,15 +116,14 @@ class LiveBfxWebsocket(GenericWebsocket):
|
||||
20061: 'Websocket server resync complete'
|
||||
}
|
||||
|
||||
def __init__(self, API_KEY=None, API_SECRET=None, backtest=False, host='wss://test.bitfinex.com/ws/2',
|
||||
def __init__(self, API_KEY=None, API_SECRET=None, host='wss://test.bitfinex.com/ws/2',
|
||||
onSeedCandleHook=None, onSeedTradeHook=None, *args, **kwargs):
|
||||
self.channels = {}
|
||||
self.API_KEY=API_KEY
|
||||
self.API_SECRET=API_SECRET
|
||||
self.backtest=backtest
|
||||
self.pendingOrders = {}
|
||||
|
||||
super(LiveBfxWebsocket, self).__init__(host, *args, **kwargs)
|
||||
super(BfxWebsocket, self).__init__(host, *args, **kwargs)
|
||||
|
||||
self._WS_DATA_HANDLERS = {
|
||||
'tu': self._trade_update_handler,
|
||||
@@ -397,7 +396,7 @@ class LiveBfxWebsocket(GenericWebsocket):
|
||||
self.logger.info("Websocket opened.")
|
||||
self._emit('connected')
|
||||
# Orders are simulated in backtest mode
|
||||
if not self.backtest and self.API_KEY and self.API_SECRET:
|
||||
if not self.API_KEY and self.API_SECRET:
|
||||
await self._ws_authenticate_socket()
|
||||
|
||||
async def send_auth_command(self, channel_name, data):
|
||||
@@ -16,13 +16,8 @@ def is_json(myjson):
|
||||
|
||||
class GenericWebsocket(object):
|
||||
|
||||
def __init__(self, host, symbol='tBTCUSD', onCandleHook=None, onTradeHook=None,
|
||||
logLevel='ERROR'):
|
||||
self.symbol = symbol
|
||||
def __init__(self, host, logLevel='ERROR'):
|
||||
self.host = host
|
||||
self.awaiting_request = False
|
||||
self.onCandleHook = onCandleHook
|
||||
self.onTradeHook = onTradeHook
|
||||
self.logger = CustomLogger('HFWebSocket', logLevel=logLevel)
|
||||
self.loop = asyncio.get_event_loop()
|
||||
self.events = EventEmitter(scheduler=asyncio.ensure_future, loop=self.loop)
|
||||
|
||||
Reference in New Issue
Block a user