danielgtaylor / danielgtaylor/python-betterproto

Importing well known types

Open
#9 11 comments 9 reactions 1 assignee Claimed by @boukeversteegh View on GitHub
bug has test medium medium priority
Dominant language
Python
Stars
1.8k
Forks
234
PR merge metrics
No merged PRs in 30d

Description

Hello,

I'm not sure how to work with well known types.

Having a proto file like this:

```
syntax = "proto3";

package simple;

import "google/protobuf/empty.proto";

service SimpleSender {
rpc Send(SendParams) returns (google.protobuf.Empty) {}
}

message SendParams {
string body = 1;
}
```

I get output like this:

```python
# Generated by the protocol buffer compiler. DO NOT EDIT!
# sources: Simple.proto
# plugin: python-betterproto
from dataclasses import dataclass

import betterproto
import grpclib

from .google import protobuf


@dataclass
class SendParams(betterproto.Message):
body: str = betterproto.string_field(1)


class SimpleSenderStub(betterproto.ServiceStub):
async def send(self, *, body: str = "") -> protobuf.Empty:
request = SendParams()
request.body = body

return await self._unary_unary(
"/simple.SimpleSender/Send", request, protobuf.Empty,
)
```

There is ofcourse no `google` package. I tried to generate code from proto files included in `grpc_tools` but I'm not able to get any python code.

What is the best way to work with well known types?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.