support tornado 6.x or wdb won't run on python 3.10+
- Dominant language
- Python
- Stars
- 1.6k
- Forks
- 120
- PR merge metrics
- No merged PRs in 30d
Description
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
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
from tornado.httpserver import HTTPServer
File "/tcwa/venv/py3.10.4/lib/python3.10/site-packages/tornado/httpserver.py", line 33, in
from tornado.http1connection import HTTP1ServerConnection, HTTP1ConnectionParameters
File "/tcwa/venv/py3.10.4/lib/python3.10/site-packages/tornado/http1connection.py", line 30, in
from tornado import httputil
File "/tcwa/venv/py3.10.4/lib/python3.10/site-packages/tornado/httputil.py", line 107, in
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+
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the dependency declaration for wdb-server and the entry point shown in the report, wdb.server.py. Run it under Python 3.10 with Tornado 6.1 or newer and verify that WDB starts without the collections.MutableMapping traceback. Done means the supported Tornado range allows the newer release and the server runs successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100