bmoscon / cryptofeed

Cryptocurrency Exchange Websocket Data Feed Handler
Other
2.14k stars 668 forks source link

[phemex] fix symbol parsing #916

Closed GuillaumeDSM closed 1 year ago

GuillaumeDSM commented 1 year ago

Description of code - what bug does this fix / what feature does this add?

Phemex has a symbol that is incompatible and makes the feed constructor crash:

 2022-10-20 00:33:10,002 ERROR    WebSocket - CryptofeedWebSocketExchange not enough values to unpack (expected 2, got 1)
Traceback (most recent call last):
  File "C:\Users\gdsm\TradingBots\0.4\OctoBot-Trading\octobot_trading\exchanges\implementations\cryptofeed_websocket_exchange.py", line 38, in create_feeds
    connector = self.websocket_connector(config=self.config, exchange_manager=self.exchange_manager)
  File "C:\Users\gdsm\TradingBots\0.4\OctoBot-Trading\octobot_trading\exchanges\connectors\cryptofeed_websocket_connector.py", line 148, in __init__
    self.cryptofeed_exchange = cryptofeed_exchanges.EXCHANGE_MAP[self.get_feed_name()](
  File "C:\Users\gdsm\TradingBots\0.4\OctoBot\venv\lib\site-packages\cryptofeed\exchanges\phemex.py", line 65, in __init__
    super().__init__(**kwargs)
  File "C:\Users\gdsm\TradingBots\0.4\OctoBot\venv\lib\site-packages\cryptofeed\feed.py", line 63, in __init__
    super().__init__(**kwargs)
  File "C:\Users\gdsm\TradingBots\0.4\OctoBot\venv\lib\site-packages\cryptofeed\exchange.py", line 49, in __init__
    self.symbol_mapping()
  File "C:\Users\gdsm\TradingBots\0.4\OctoBot\venv\lib\site-packages\cryptofeed\exchange.py", line 105, in symbol_mapping
    syms, info = cls._parse_symbol_data(data if len(data) > 1 else data[0])
  File "C:\Users\gdsm\TradingBots\0.4\OctoBot\venv\lib\site-packages\cryptofeed\exchanges\phemex.py", line 53, in _parse_symbol_data
    base, quote = entry['displaySymbol'].split(" / ")
ValueError: not enough values to unpack (expected 2, got 1)
 2022-10-20 00:33:10,002 ERROR    WebSocket - CryptofeedWebSocketExchange Fail to create feed : not enough values to unpack (expected 2, got 1) (ValueError)

image