poljar / weechat-matrix

Weechat Matrix protocol script written in python
Other
957 stars 119 forks source link

Failure to load script with Python 3.10 due to upstream C API bug #307

Closed diabonas closed 2 years ago

diabonas commented 2 years ago

When trying to load this script in WeeChat with Python 3.10 installed, it fails with the following error:

13:55 python: stdout/stderr (?): Traceback (most recent call last):
13:55 python: stdout/stderr (?):   File "/home/diabonas/.local/share/weechat/python/autoload/weechat-matrix.py", line 53, in <module>
13:55 python: stdout/stderr (?):     from nio import RemoteProtocolError, RemoteTransportError, TransportType
13:55 python: stdout/stderr (?):   File "/usr/lib/python3.10/site-packages/nio/__init__.py", line 2, in <module>
13:55 python: stdout/stderr (?):     from .client import *
13:55 python: stdout/stderr (?):   File "/usr/lib/python3.10/site-packages/nio/client/__init__.py", line 3, in <module>
13:55 python: stdout/stderr (?):     from .base_client import Client, ClientConfig
13:55 python: stdout/stderr (?):   File "/usr/lib/python3.10/site-packages/nio/client/base_client.py", line 35, in <module>
13:55 python: stdout/stderr (?):     from ..crypto import ENCRYPTION_ENABLED
13:55 python: stdout/stderr (?):   File "/usr/lib/python3.10/site-packages/nio/crypto/__init__.py", line 32, in <module>
13:55 python: stdout/stderr (?):     from .key_request import OutgoingKeyRequest
13:55 python: stdout/stderr (?):   File "/usr/lib/python3.10/site-packages/nio/crypto/key_request.py", line 21, in <module>
13:55 python: stdout/stderr (?):     from ..responses import RoomKeyRequestResponse
13:55 python: stdout/stderr (?):   File "/usr/lib/python3.10/site-packages/nio/responses.py", line 26, in <module>
13:55 python: stdout/stderr (?):     from jsonschema.exceptions import SchemaError, ValidationError
13:55 python: stdout/stderr (?):   File "/usr/lib/python3.10/site-packages/jsonschema/__init__.py", line 21, in <module>
13:55 python: stdout/stderr (?):     from jsonschema._types import TypeChecker
13:55 python: stdout/stderr (?):   File "/usr/lib/python3.10/site-packages/jsonschema/_types.py", line 168, in <module>
13:55 python: stdout/stderr (?):     draft3_type_checker = TypeChecker(
13:55 python: stdout/stderr (?): TypeError: TypeChecker() takes no arguments
13:55 =!= python: unable to parse file "/home/diabonas/.local/share/weechat/python/autoload/weechat-matrix.py"

This is due to an upstream Python issue with its C API (that WeeChat uses to run Python scripts), which I reported as bpo-46047.

I don't think there is anything that can be done on the weechat-matrix side to fix this, instead this issue is intended as a tracking bug for others encountering the same issue.

diabonas commented 2 years ago

Sorry, I just found #293, closing as a duplicate of that.