Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regenerate config_pb2.py with libprotoc 3.21.12 #22

Merged
merged 1 commit into from
Jan 26, 2025

Conversation

nicdumz
Copy link
Contributor

@nicdumz nicdumz commented Aug 14, 2023

Otherwise Python3 is unhappy with this file:

Traceback (most recent call last):
  File "beangrow/configure.py", line 23, in <module>
    from beangrow.config_pb2 import Config
  File "beangrow/config_pb2.py", line 36, in <module>
    _descriptor.FieldDescriptor(
  File "<venv>/lib/python3.11/site-packages/google/protobuf/descriptor.py", line 561, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot not be created directly.
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.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

More information:
https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates

Otherwise Python3 is unhappy with this file:

```
/home/ndumazet/code/finances/bean/lib/python3.11/site-packages/beancount/__init__.py:25: UserWarning: Unable to import v3 extension module.
  warnings.warn("Unable to import v3 extension module.")
Traceback (most recent call last):
  File "/home/ndumazet/code/finances/bean/lib/python3.11/site-packages/beangrow/configure.py", line 23, in <module>
    from beangrow.config_pb2 import Config
  File "/home/ndumazet/code/finances/bean/lib/python3.11/site-packages/beangrow/config_pb2.py", line 36, in <module>
    _descriptor.FieldDescriptor(
  File "/home/ndumazet/code/finances/bean/lib/python3.11/site-packages/google/protobuf/descriptor.py", line 561, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot not be created directly.
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.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

More information:
https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
```
@andreasgerstmayr
Copy link
Contributor

@blais could we get this merged? I tested the changes with a recent protobuf version (5.29.3) and it works fine.

@blais blais merged commit d1a93b0 into beancount:master Jan 26, 2025
@andreasgerstmayr
Copy link
Contributor

Thanks a lot for merging this!
Could you create a new release on PyPI when you have time?
I'd like to add the new modified dietz algorithm from beangrow to my fava plugin :)

@blais
Copy link
Member

blais commented Jan 26, 2025

The pyproject.toml file was borked by an invalid change introduced 8 mths ago, the license was changed.
I'll have to be more careful with reviews in here in the future.

@blais
Copy link
Member

blais commented Jan 26, 2025

Struggling with this new poetry setup, it won't publish.

@blais
Copy link
Member

blais commented Jan 26, 2025 via email

@andreasgerstmayr
Copy link
Contributor

I suggest we switch back to a PEP 621-compliant pyproject.toml, to have the same build chain like the other beancount projects (beancount/beangulp/beanquery). I'll work on a PR shortly.

@andreasgerstmayr
Copy link
Contributor

I just spent over 30 minutes trying to figure out how to make "poetry" work and failed. Some interaction problem with Unix keyring. This exceeded my timebox, I have other things to do.

I created #38 to use the same buildchain as beanquery and beangulp. I didn't use mesonpy like in core beancount, as afaics Meson is only required if we want to include C/C++ code.
I hope this makes the release simple.

Thanks for your time and effort, let me now if I can do anything to assist on my side.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants