Skip to content

Namespaced enums yield incorrectly generated code #197

@Teivaz

Description

@Teivaz

Given following proto file

syntax = "proto3";
package namespaced_enum;

message ns { enum Type {
	NONE = 0;
	option_one = 1;
}}

message Msg {
	ns.Type t = 1;
}

The command python -m grpc_tools.protoc -I . --python_betterproto_out=lib ./test.proto generates following code:

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

import betterproto

from .namespaced_enum import ns


class NsType(betterproto.Enum):
    NONE = 0
    option_one = 1


@dataclass
class Ns(betterproto.Message):
    pass


@dataclass
class Msg(betterproto.Message):
    t: ns.Type = betterproto.enum_field(1)

It contains line from .namespaced_enum import ns and later on uses this as type t: ns.Type = betterproto.enum_field(1) instead of NsType


Python 3.8.2
betterproto 1.2.5
grpcio_tools 1.34.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions