LUCIT-Systems-and-Development / unicorn-binance-websocket-api

A Python SDK by LUCIT to use the Binance Websocket API`s (com+testnet, com-margin+testnet, com-isolated_margin+testnet, com-futures+testnet, com-coin_futures, us, tr, dex/chain+testnet) in a simple, fast, flexible, robust and fully-featured way.

Home Page:https://unicorn-binance-websocket-api.docs.lucit.tech/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Doesn't work in 3.10

Rizhiy opened this issue · comments

Version of this library.

unicorn-binance-websocket-api==1.41.0
unicorn-fy==0.12.2

Solution to Issue cannot be found in the documentation or other Issues and also occurs in the latest version of this library.

  • I checked the documentation and other Issues. I am using the latest version of this library.

Hardware?

Local server/workstation

Operating System?

Linux

Python version?

Python3.10

Installed packages

aiohttp                       3.8.1
aiosignal                     1.2.0
aniso8601                     9.0.1
async-timeout                 4.0.2
attrs                         22.1.0
autoflake                     1.5.3
backtrader                    1.9.76.123
bayesian-optimization         1.2.0
bidict                        0.22.0
black                         22.8.0
certifi                       2022.6.15
charset-normalizer            2.1.1
cheroot                       8.6.0
click                         8.1.3
colorama                      0.4.5
cycler                        0.11.0
dateparser                    1.1.1
Deprecated                    1.2.13
Flask                         2.2.2
Flask-RESTful                 0.3.9
fonttools                     4.37.1
frozenlist                    1.3.1
idna                          3.3
iniconfig                     1.1.1
isort                         5.10.1
itsdangerous                  2.1.2
jaraco.functools              3.5.1
jedi                          0.18.1
Jinja2                        3.1.2
joblib                        1.1.0
kiwisolver                    1.4.4
MarkupSafe                    2.1.1
matplotlib                    3.5.3
more-itertools                8.14.0
mplfinance                    0.12.9b1
multidict                     6.0.2
mypy-extensions               0.4.3
nodeenv                       1.7.0
numpy                         1.23.3
packaging                     21.3
pandas                        1.4.4
parso                         0.8.3
pathspec                      0.10.1
Pillow                        9.2.0
pip                           22.1.2
platformdirs                  2.5.2
pluggy                        1.0.0
psutil                        5.9.2
pudb                          2022.1.2
py                            1.11.0
pyflakes                      2.5.0
Pygments                      2.13.0
pyparsing                     3.0.9
pyright                       1.1.270
pytest                        7.1.3
python-binance                1.0.16
python-dateutil               2.8.2
pytz                          2022.2.1
pytz-deprecation-shim         0.1.0.post0
redis                         4.3.4
regex                         2022.3.2
requests                      2.28.1
scikit-learn                  1.1.2
scipy                         1.9.1
setuptools                    63.4.1
six                           1.16.0
threadpoolctl                 3.1.0
toml                          0.10.2
tomli                         2.0.1
tqdm                          4.64.1
tzdata                        2022.2
tzlocal                       4.2
ujson                         5.4.0
unicorn-binance-websocket-api 1.41.0
unicorn-fy                    0.12.2
urllib3                       1.26.12
urwid                         2.1.2
urwid-readline                0.13
websocket-client              1.4.1
websockets                    9.1
Werkzeug                      2.2.2
wheel                         0.37.1
wrapt                         1.14.1
yarl                          1.8.1

Logging output

import unicorn_binance_websocket_api

ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
ubwa.create_stream(["trade"], ["btcusdt"])
while True:
    oldest_data_from_stream_buffer = ubwa.pop_stream_data_from_stream_buffer()
    if oldest_data_from_stream_buffer:
        print(oldest_data_from_stream_buffer)

Processing method?

process_stream_data

Used endpoint?

binance.com

Issue

Exception in thread _create_stream_thread: stream_id=c4f9acc5ecdf-f502-7cff-6d43-d9f88ff6, time=1663998042.0248468:
Traceback (most recent call last):
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/threading.py", line 1009, in _bootstrap_inner
self.run()
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/threading.py", line 946, in run
self._target(*self._args, **self._kwargs)
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/site-packages/unicorn_binance_websocket_api/manager.py", line 529, in _create_stream_thread
loop.run_until_complete(socket.start_socket())
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
return future.result()
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/site-packages/unicorn_binance_websocket_api/sockets.py", line 67, in start_socket
async with BinanceWebSocketApiConnection(self.manager,
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/site-packages/unicorn_binance_websocket_api/connection.py", line 138, in aenter
self.manager.websocket_list[self.stream_id] = await self._conn.aenter()
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/site-packages/websockets/legacy/client.py", line 604, in aenter
return await self
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/site-packages/websockets/legacy/client.py", line 622, in await_impl
transport, protocol = await self._create_connection()
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/asyncio/base_events.py", line 1089, in create_connection
transport, protocol = await self._create_connection_transport(
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/asyncio/base_events.py", line 1107, in _create_connection_transport
protocol = protocol_factory()
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/site-packages/websockets/legacy/client.py", line 160, in init
super().init(**kwargs)
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/site-packages/websockets/legacy/protocol.py", line 154, in init
self._drain_lock = asyncio.Lock(
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/asyncio/locks.py", line 78, in init
super().init(loop=loop)
File "/home/rizhiy/miniconda3/envs/binance-test/lib/python3.10/asyncio/mixins.py", line 17, in init
raise TypeError(
TypeError: As of 3.10, the loop parameter was removed from Lock() since it is no longer necessary

NVM, websockets was old version.