import time
from retry.api import retry_call
import re
+from requests.exceptions import RequestException
+from ssl import SSLError
def _cw_exchange_sum(self, *args):
return sum([arg for arg in args if isinstance(arg, (float, int, decimal.Decimal))])
Wrapped to allow retry of non-posting requests"
"""
- origin_request = super(poloniexE, self).request
+ origin_request = super().request
kwargs = {
"api": api,
"method": method,
return origin_request(path, **kwargs)
def __init__(self, *args, **kwargs):
- super(poloniexE, self).__init__(*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
+ kwargs["headers"]["X-market-id"] = str(self._parent._market.market_id)
+ kwargs["headers"]["X-user-id"] = str(self._parent._market.user_id)
+ try:
+ r = self.origin_request(*args, **kwargs)
+ self._parent._market.report.log_http_request(args[0],
+ args[1], kwargs["data"], kwargs["headers"], r)
+ return r
+ except (SSLError, RequestException) as e:
+ self._parent._market.report.log_http_request(args[0],
+ args[1], kwargs["data"], kwargs["headers"], e)
+ raise e
+
self.session.request = request_wrap.__get__(self.session,
self.session.__class__)
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':
else:
raise NotImplementedError
+ def common_currency_code(self, currency):
+ """
+ Wrapped to avoid the currency translation
+ """
+ return currency
+ def currency_id(self, currency):
+ """
+ Wrapped to avoid the currency translation
+ """
+ return currency