Wrapped to allow retry of non-posting requests"
"""
- origin_request = super(poloniexE, self).request
+ origin_request = super().request
kwargs = {
"api": api,
"method": method,
retriable = any(re.match(call, path) for call in self.RETRIABLE_CALLS)
if api == "public" or method == "GET" or retriable:
return retry_call(origin_request, fargs=[path], fkwargs=kwargs,
- tries=10, delay=1, exceptions=(RequestTimeout,))
+ tries=10, delay=1, exceptions=(RequestTimeout, InvalidNonce))
else:
return origin_request(path, **kwargs)
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+
+ # For requests logging
+ self.session.origin_request = self.session.request
+ self.session._parent = self
+
+ def request_wrap(self, *args, **kwargs):
+ r = self.origin_request(*args, **kwargs)
+ self._parent._market.report.log_http_request(args[0],
+ args[1], kwargs["data"], kwargs["headers"], r)
+ return r
+ self.session.request = request_wrap.__get__(self.session,
+ self.session.__class__)
+
@staticmethod
def nanoseconds():
return int(time.time() * 1000000000)
return all_balances
def create_exchange_order(self, symbol, type, side, amount, price=None, params={}):
- return super(poloniexE, self).create_order(symbol, type, side, amount, price=price, params=params)
+ return super().create_order(symbol, type, side, amount, price=price, params=params)
def create_margin_order(self, symbol, type, side, amount, price=None, lending_rate=None, params={}):
if type == 'market':