Skip to content

Commit 0bf2c86

Browse files
fixed exception on empty user response request
1 parent ebb0bb5 commit 0bf2c86

File tree

4 files changed

+15
-12
lines changed

4 files changed

+15
-12
lines changed

examples/examples.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def main() -> None:
3838
# print(user.get_orders_info(txid='someid')) # or txid='id1,id2,id3' or txid=['id1','id2']
3939
# print(user.get_trades_history())
4040
# print(user.get_trades_info(txid='someid'))
41-
# print(user.get_open_positions())#txid='someid'
41+
print(user.get_open_positions())#txid='someid'
4242
# print(user.get_ledgers_info())#asset='BTC' or asset='BTC,EUR' or asset=['BTC','EUR']
4343
# print(user.get_ledgers(id='LNBK7T-BLEFU-C6NGIS'))
4444
# print(user.get_trade_volume())#pair='BTC/EUR'

kraken/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
VERSION = (0, 5, 1)
1+
VERSION = (0, 5, 2)
22

33
__version__ = '.'.join(map(str, VERSION))

kraken/base_api/base_api.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def _request(self, method: str, uri: str, timeout: int=10, auth: bool=True, para
5454
headers['User-Agent'] = 'Kraken-Python-SDK'
5555
url = f'{self.url}{self._api_v}{uri}'
5656

57-
# logging.info(f'Request: {url}')
57+
# logging.debug(f'Request to: {url}')
5858

5959
if method in ['GET', 'DELETE']:
6060
return self.check_response_data(requests.request(method, url, headers=headers, timeout=timeout), return_raw)
@@ -75,15 +75,15 @@ def get_kraken_signature(self, urlpath: str, data: dict):
7575

7676
@staticmethod
7777
def check_response_data(response_data, return_raw: bool=False):
78-
if response_data.status_code == 200:
78+
if response_data.status_code in [ '200', 200 ]:
7979
if return_raw: return response_data
8080
try:
8181
data = response_data.json()
8282
except ValueError:
8383
raise Exception(response_data.content)
8484
else:
8585
if 'error' in data:
86-
if len(data.get('error')) == 0 and data.get('result'): return data['result']
86+
if len(data.get('error')) == 0 and 'result' in data: return data['result']
8787
else: raise Exception(f'{response_data.status_code}-{response_data.text}')
8888
else: return data
8989
else: raise Exception(f'{response_data.status_code}-{response_data.text}')

kraken/spot/websocket/websocket.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010

1111
class ConnectSpotWebsocket:
12-
MAX_RECONNECTS = 5
12+
MAX_SEND_MESSAGE_RETRIES = 5
1313
MAX_RECONNECT_SECONDS = 60
1414

1515
def __init__(self, client, endpoint: str, callback=None, private: bool=False, beta: bool=False):
@@ -30,6 +30,8 @@ def __init__(self, client, endpoint: str, callback=None, private: bool=False, be
3030

3131
asyncio.ensure_future(self.run_forever(), loop=asyncio.get_running_loop())
3232

33+
self.connected = False
34+
3335
@property
3436
def subscriptions(self) -> list:
3537
return self._subscriptions
@@ -51,6 +53,7 @@ async def _run(self, event: asyncio.Event):
5153
if self.private: self._client.websocket_priv = self
5254
else: self._client.websocket_pub = self
5355

56+
self.connected = True
5457
self._socket = socket
5558
self._reconnect_num = 0
5659

@@ -85,9 +88,9 @@ async def _reconnect(self):
8588

8689
self._reconnect_num += 1
8790
reconnect_wait = self._get_reconnect_wait(self._reconnect_num)
88-
logging.info(f'asyncio sleep reconnect_wait={reconnect_wait} s reconnect_num={self._reconnect_num}')
91+
logging.debug(f'asyncio sleep reconnect_wait={reconnect_wait} s reconnect_num={self._reconnect_num}')
8992
await asyncio.sleep(reconnect_wait)
90-
logging.info(f'asyncio sleep ok')
93+
logging.debug(f'asyncio sleep done')
9194
event = asyncio.Event()
9295

9396
tasks = {
@@ -143,9 +146,9 @@ async def send_ping(self):
143146

144147
async def send_message(self, msg, private: bool=False, retry_count: int=0):
145148
logging.info(f'send_message (private: {private}; tries: {retry_count}): {msg}')
146-
if not self._socket:
147-
if retry_count < self.MAX_RECONNECTS:
148-
await asyncio.sleep(1)
149+
if not self._socket: # if not connected
150+
if retry_count < self.MAX_SEND_MESSAGE_RETRIES:
151+
await asyncio.sleep(2)
149152
await self.send_message(msg, private=private, retry_count=retry_count + 1)
150153
else:
151154
msg['reqid'] = int(time.time() * 1000)
@@ -165,7 +168,7 @@ class KrakenSpotWSClient(object):
165168
def __init__(self, client, callback=None, beta: bool=False):
166169
self._callback = callback
167170
self._client = client
168-
171+
169172
self._pub_conn = ConnectSpotWebsocket(
170173
client=self._client,
171174
endpoint=self.PROD_ENV_URL if not beta else BETA_ENV_URL,

0 commit comments

Comments
 (0)