NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1598 most downloaded on PyPI
A better Protobuf / gRPC generator & library
Last release 2 years ago
no release in 18 months
Ships fairly regularly
a new release about every 5 months
Most releases are documented
notes for 8 of 9 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
16 releases · first in 2019
Add a warning when calling a deprecated message #596
Pydantic v2 and dropping support for v1 #588oneof now raises an AttributeError field. To see how to access oneof fields now, refer to #558 and README.md.Enum has been implemented to match the behaviour of being an open set. Any checks for isinstance(enum_member, enum.Enum) and issubclass(EnumSubclass, enum.Enum) will now return False. This change also has the side effect of preventing any passthrough of Enum members (i.e. Foo.RED.GREEN doesn't work any more). See #293 for more info, this fixed many bugs related to Enum handling.pickle methods #535Struct and Value types #551Rich package for pretty printing #508datetimes #534Message equality comparison #513Full Changelog: https://github.com/danielgtaylor/python-betterproto/compare/v.2.0.0b6...v.2.0.0b7
One column per quarter.
Pydantic v2 and dropping support for v1 #588oneof now raises an AttributeError field. To see how to access oneof fields now, refer to #558 and README.md.Enum has been implemented to match the behaviour of being an open set. Any checks for isinstance(enum_member, enum.Enum) and issubclass(EnumSubclass, enum.Enum) will now return False. This change also has the side effect of preventing any passthrough of Enum members (i.e. Foo.RED.GREEN doesn't work any more). See #293 for more info, this fixed many bugs related to Enum handling.pickle methods #535Struct and Value types #551Rich package for pretty printing #508datetimes #534Message equality comparison #513Full Changelog: v.2.0.0b6...v.2.0.0b7
Breaking: the minimum Python version has been bumped to 3.7 #444
Breaking: the minimum Python version has been bumped to 3.7 #444
Support generating Pydantic dataclasses. Pydantic dataclasses are are drop-in replacement for dataclasses in the standard library that additionally supports validation.
Pass --python_betterproto_opt=pydantic_dataclasses to enable this feature. Refer to #406 and README.md for more information.
Added support for @generated marker #382
Pull down the include_default_values argument to to_json() #405
Pythonize input_type name in py_input_message #436
Widen from_dict() to accept any Mapping #451
Replace pkg_resources with importlib #462
dict encoding for timezone-aware datetimes #468to_pydict() serialization for optional fields #495Thank you to all the contributors to this release and everyone for being so patient with its release.
Full Changelog: https://github.com/danielgtaylor/python-betterproto/compare/v2.0.0b5...v.2.0.0b6
Breaking: the minimum Python version has been bumped to 3.7 #444
Support generating Pydantic dataclasses. Pydantic dataclasses are are drop-in replacement for dataclasses in the standard library that additionally supports validation.
Pass --python_betterproto_opt=pydantic_dataclasses to enable this feature. Refer to #406 and README.md for more information.
Added support for @generated marker #382
Pull down the include_default_values argument to to_json() #405
Pythonize input_type name in py_input_message #436
Widen from_dict() to accept any Mapping #451
Replace pkg_resources with importlib #462
dict encoding for timezone-aware datetimes #468to_pydict() serialization for optional fields #495Thank you to all the contributors to this release and everyone for being so patient with its release.
Full Changelog: v2.0.0b5...v.2.0.0b6
Remove deprecation warnings when fields are initialised with non-default values #348
Breaking: Client and Service Stubs no longer pack and unpack the input message fields as parameters #331:
Update your client calls and server handlers as follows:
Clients before:
response = await service.echo(value="hello", extra_times=1)
Clients after:
response = await service.echo(EchoRequest(value="hello", extra_times=1))
Servers before:
async def echo(self, value: str, extra_times: int) -> EchoResponse: ...
Servers after:
async def echo(self, echo_request: EchoRequest) -> EchoResponse:
# Use echo_request.value
# Use echo_request.extra_times
...
Format field comments also as docstrings #304
Implement __deepcopy__ for Message #339
Implement to/from_pydict() for Message #203
Run isort on compiled code #355
Expose timeout, deadline and metadata parameters from grpclib #352
Make Message.__getattribute__ invisible to type checkers #359
NotImplementedError #325Message.from_dict() in the presence of optional datetime fields #329__init__.py #337Message.to_dict() mutating the underlying Message #378Breaking: the minimum Python version has been bumped to 3.6.2
Generate grpclib service stubs #170
Add support for deprecated message and fields #126
> Several bugfixes and improvements required or will require small breaking changes, necessitating a new version.
Several bugfixes and improvements required or will require small breaking changes, necessitating a new version.
2.0.0will be released once the interface is stable.
Add support for gRPC and stream-stream #83
Switch from pipenv to poetry for development #75
Fix two packages with the same name suffix should not cause naming conflict #25
Fix Import child package from root #57
Fix Import child package from package #58
Fix Import parent package from child package #59
Fix Import root package from child package #60
Fix Import root package from root #61
Fix ALL_CAPS message fields are parsed incorrectly. #11
Add .j2 suffix to python template names to avoid confusing certain build tools.
Enforce utf-8 for reading the readme in setup.py #67
Increment version to 1.2.3
Mention lack of Proto 2 support in README.
Fix comment indentation bug in rendered gRPC methods.
Generated code output auto-formatting via Black
Handle field names which clash with Python reserved words
README to the PyPI details page
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →