X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=ccxt_wrapper.py;h=d2c9b4ce26550b0074f6632ddc2bdc972eb17bd2;hb=18de421e455ab4b125a6684d703a296562097e6b;hp=97f359fa568c7fd813784dad922e431849dfb068;hpb=e967a372218df05424b1566a02cafe2432d57326;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FTrader.git diff --git a/ccxt_wrapper.py b/ccxt_wrapper.py index 97f359f..d2c9b4c 100644 --- a/ccxt_wrapper.py +++ b/ccxt_wrapper.py @@ -3,6 +3,8 @@ import decimal 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))]) @@ -21,7 +23,7 @@ class poloniexE(poloniex): Wrapped to allow retry of non-posting requests" """ - origin_request = super(poloniexE, self).request + origin_request = super().request kwargs = { "api": api, "method": method, @@ -38,17 +40,25 @@ class poloniexE(poloniex): 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__) @@ -223,7 +233,7 @@ class poloniexE(poloniex): 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': @@ -381,4 +391,14 @@ class poloniexE(poloniex): 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