wdb icon indicating copy to clipboard operation
wdb copied to clipboard

support tornado 6.x or wdb won't run on python 3.10+

Open massimiliano-della-rovere opened this issue 3 years ago • 0 comments

Currently wdb-server 3.3.0 requires tornado<6.0,>=5.0. The newest version of tornado is v6.1.

In Python 3.10 MutableMapping was moved

  • from collections.MutableMapping
  • to collections.abc.MutableMapping and this causes the following error when starting WDB (which uses tornado 5.1.1)
(py3.10.4) root@a321832d390a:/# wdb.server.py 
Traceback (most recent call last):
  File "/tcwa/venv/py3.10.4/bin/wdb.server.py", line 9, in <module>
    from tornado_systemd import SYSTEMD_SOCKET_FD, SystemdHTTPServer
  File "/tcwa/venv/py3.10.4/lib/python3.10/site-packages/tornado_systemd/__init__.py", line 4, in <module>
    from tornado.httpserver import HTTPServer
  File "/tcwa/venv/py3.10.4/lib/python3.10/site-packages/tornado/httpserver.py", line 33, in <module>
    from tornado.http1connection import HTTP1ServerConnection, HTTP1ConnectionParameters
  File "/tcwa/venv/py3.10.4/lib/python3.10/site-packages/tornado/http1connection.py", line 30, in <module>
    from tornado import httputil
  File "/tcwa/venv/py3.10.4/lib/python3.10/site-packages/tornado/httputil.py", line 107, in <module>
    class HTTPHeaders(collections.MutableMapping):
AttributeError: module 'collections' has no attribute 'MutableMapping'

Of course you can't patch tornado v5.x since it's not the newest major version and it was correctly developed before python 3.10 came out.

So wdb should use Tornado 6.1+