From 52b73880f95be5cf51742fec10cde0a2e4b23de4 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Fri, 27 May 2022 18:38:26 +0200 Subject: [PATCH] requirements: pin protobuf "<4" protobuf 4.x introduced breaking changes compared to 3.20. To adapt, we would have to regenerate paymentrequest_pb2.py, using protoc>=3.19.0, however ubuntu does not have new enough protoc. Also, unsure if newly generated paymentrequest_pb2.py would be supported by older versions of protobuf. Best to just wait for things to settle. ``` electrum/__init__.py:20: in from .wallet import Wallet electrum/wallet.py:70: in from . import transaction, bitcoin, coinchooser, paymentrequest, ecc, bip32 electrum/paymentrequest.py:37: in from . import paymentrequest_pb2 as pb2 electrum/paymentrequest_pb2.py:36: in _descriptor.FieldDescriptor( .tox/py3/lib/python3.9/site-packages/google/protobuf/descriptor.py:560: in __new__ _message.Message._CheckCalledFromGeneratedFile() E TypeError: Descriptors cannot not be created directly. E If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. E If you cannot immediately regenerate your protos, some other possible workarounds are: E 1. Downgrade the protobuf package to 3.20.x or lower. E 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower). E E More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates ``` https://github.com/protocolbuffers/protobuf/blob/ceaae1b6a3acca823acc40380a96f94cecc6e6a9/CHANGES.txt#L47 --- contrib/requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/requirements/requirements.txt b/contrib/requirements/requirements.txt index 04b0a77f3..0f2dd7b5c 100644 --- a/contrib/requirements/requirements.txt +++ b/contrib/requirements/requirements.txt @@ -1,5 +1,5 @@ qrcode -protobuf>=3.12 +protobuf>=3.12,<4 qdarkstyle>=2.7 aiorpcx>=0.22.0,<0.23 aiohttp>=3.3.0,<4.0.0