Comments (4)
v.2.0.0b4 has just been released and includes support for this.
from python-betterproto.
+1 - as a quick(er) fix, even just internally treating the optional field as a oneof
with only one option would allow betterproto
to be used with protobuf definitions that can currently be handled by other language generators like protoc-gen-go
and prost
(Rust). On-the-wire that should be compatible, IIUC, and then it would just be a matter of improving ergonomics in Python as time allows.
As it stands, if we select betterproto
as our Python generator, we have to remove optional
from all of its source proto definitions, even if all other generators can handle it.
from python-betterproto.
Explicitly representing field optionality makes sense. Actually enforcing it at runtime with python dataclasses would be a bit tricky.
from python-betterproto.
I just had a PR in my project reverted because it used optional int32
and a consumer of the proto files uses betterproto.
I wasn't even aware of betterproto, but it looks better in almost every way — except that it doesn't support the new(ish) optional
keyword for primitives. Please consider adding this support. (I don't need it to enforce that I only put "None" on optional fields; I just need it to be interoperable with the rest of the protobuf ecosystem. Essentially, what @kalzoo said.)
from python-betterproto.
Related Issues (20)
- Nested message with repeated field not in to_json when mutated after initialization
- gRPC server example not working HOT 1
- Code Quality: mypy check failed HOT 1
- Complex protos w/ Enums? HOT 2
- Empty fields which one of None HOT 3
- `Struct().from_dict(...)` has no effect HOT 5
- Missing import in generated code when using well known types HOT 1
- Generated code has non-existent relative import HOT 3
- Error parsing proto with map field HOT 3
- Type error on server-side unary-unary handler code
- Invalid code generated when package name contains uppercase letter HOT 1
- Support proto3 optional fields HOT 1
- Warning for optional fields HOT 1
- Make `grpclib` dependency optional HOT 1
- deepcopy with betterproto.Enum fields fails HOT 2
- Enums are set as integers instead of enums when parsing betterproto.Message HOT 1
- why I use from_json method Missing field? HOT 1
- Bug: Empty string in object is not serialized HOT 3
- Optional fields in proto3 HOT 5
- module 'google.protobuf' has no attribute 'Any' HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from python-betterproto.