danielgtaylor / danielgtaylor/python-betterproto
Disappears from the generated `ServiceBase` if there is a `ID` in the name [2.0.0b3]
- Dominant language
- Python
- Stars
- 1.8k
- Forks
- 234
- PR merge metrics
- No merged PRs in 30d
Description
## Env
Python: 3.9
protoc: 3.15.6
betterproto: 2.0.0b3
OS: linux
---
### Given proto
```proto
syntax = "proto3";
package com.test.v1;
import "google/protobuf/empty.proto";
service TestService {
rpc Test(PublisherUserID) returns (google.protobuf.Empty);
}
message PublisherUserID {
int64 publisher_user_id = 1;
}
```
### Generated `TestServiceBase`
Parameter `PublisherUserID` of `test()` disappered.
```py3
class TestServiceBase(ServiceBase):
async def test(self) -> "betterproto_lib_google_protobuf.Empty":
raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
async def __rpc_test(self, stream: grpclib.server.Stream) -> None:
request = await stream.recv_message()
request_kwargs = {}
response = await self.test(**request_kwargs)
await stream.send_message(response)
def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
return {
"/com.test.v1.TestService/Test": grpclib.const.Handler(
self.__rpc_test,
grpclib.const.Cardinality.UNARY_UNARY,
PublisherUserId,
betterproto_lib_google_protobuf.Empty,
),
}
```
---
### Midified proto
Rename `ID` to `Id`
```proto
syntax = "proto3";
package com.test.v1;
import "google/protobuf/empty.proto";
service TestService {
rpc Test(PublisherUserId) returns (google.protobuf.Empty);
}
message PublisherUserId {
int64 publisher_user_id = 1;
}
```
### Generated `TestServiceBase`
```py3
class TestServiceBase(ServiceBase):
async def test(
self, publisher_user_id: int
) -> "betterproto_lib_google_protobuf.Empty":
raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
async def __rpc_test(self, stream: grpclib.server.Stream) -> None:
request = await stream.recv_message()
request_kwargs = {
"publisher_user_id": request.publisher_user_id,
}
response = await self.test(**request_kwargs)
await stream.send_message(response)
def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
return {
"/com.test.v1.TestService/Test": grpclib.const.Handler(
self.__rpc_test,
grpclib.const.Cardinality.UNARY_UNARY,
PublisherUserId,
betterproto_lib_google_protobuf.Empty,
),
}
```
Contributor guide
Assessment
This issue has not been assessed yet.