Skip to content

In generated field name, an undescore is introduced after a number #657

Open
@YodaEmbedding

Description

@YodaEmbedding

Summary

Underscore is added after a number in the field name, e.g. c2s becomes c2_s.

Reproduction Steps

syntax = "proto3";

message Example {
  string c2s = 1;
}
protoc --python_betterproto_out=lib example.proto

Expected Results

Expecting c2s.

# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: example.proto
# plugin: python-betterproto
# This file has been @generated

from dataclasses import dataclass

import betterproto


@dataclass(eq=False, repr=False)
class Example(betterproto.Message):
    c2s: str = betterproto.string_field(1)

Actual Results

Generates c2_s instead.

# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: example.proto
# plugin: python-betterproto
# This file has been @generated

from dataclasses import dataclass

import betterproto


@dataclass(eq=False, repr=False)
class Example(betterproto.Message):
    c2_s: str = betterproto.string_field(1)

System Information

libprotoc 27.1
Python 3.8.20
Name: betterproto
Version: 2.0.0b7
Location: /Users/.../demo/.venv/lib/python3.8/site-packages
Requires: grpclib, python-dateutil, typing-extensions
Required-by: demo

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have verified this issue occurs on the latest prelease of betterproto which can be installed using pip install -U --pre betterproto, if possible.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions