-
Notifications
You must be signed in to change notification settings - Fork 20
Closed
Description
I've tried to figure out a way to default initialize fields that are of protobuf message type.
Example:
syntax = "proto3";
package example;
message MyMessage1
{
optional string content = 1;
}
message MyMessage2
{
optional MyMessage1 my_message = 1;
}
Output of protobuf_to_pydantic would be:
from google.protobuf.message import Message # type: ignore
from pydantic import BaseModel
from pydantic import Field
import typing
class MyMessage1(BaseModel):
content: typing.Optional[str] = Field(default="")
class MyMessage2(BaseModel):
my_message: typing.Optional[MyMessage1] = Field(default=None)
Desired output would be:
from google.protobuf.message import Message # type: ignore
from pydantic import BaseModel
from pydantic import Field
import typing
class MyMessage1(BaseModel):
content: typing.Optional[str] = Field(default="")
class MyMessage2(BaseModel):
my_message: typing.Optional[MyMessage1] = Field(default=MyMessage1())
(The key change here is the default value of the my_message field in MyMessage2 class)
Is there a way to achieve this kind of behaviour?
(BTW I think that protobuf handles its protobuf message fields that way, but I'm not sure)
Metadata
Metadata
Assignees
Labels
No labels