datamodel-code-generator icon indicating copy to clipboard operation
datamodel-code-generator copied to clipboard

An unquoted `false` value in an enum of string type generates a python boolean enum option

Open saabeilin opened this issue 8 months ago • 2 comments
trafficstars

Describe the bug An unquoted false value in an enum of string type generates a python boolean enum option.

To Reproduce

Example schema:


      intersection_type:
        type: string
        enum:
          - regular
          - false
          - dead-end
          - fork

Generated model:

class IntersectionType(str, Enum):
    regular = "regular"
    false = False
    dead_end = "dead-end"
    fork = "fork"

Expected:

class IntersectionType(str, Enum):
    regular = "regular"
    false = "false"
    dead_end = "dead-end"
    fork = "fork"

Used commandline:

$ datamodel-codegen -i valhalla.yaml -o valhalla.py 

Expected behavior A string constant "false" is used as enum value.

Version:

  • OS: Ubuntu 24.04.2 LTS
  • Python version: Python 3.12.3
  • datamodel-code-generator version: 0.28.2

Additional context Example schema: https://github.com/Rallista/valhalla-openapi-models-kotlin/blob/main/client/openapi.yaml

saabeilin avatar Mar 10 '25 00:03 saabeilin