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(poloniexE, self).__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)