Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

String enum values containing ³ character do not get properly sanitized

Offen
#1,327 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
48/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
tooling

Rechercherichtung

Beginne mit der Spezifikation in repro.yaml und führe den dokumentierten Befehl python3 -m openapi_python_client generate mit dem angegebenen Ausgabepfad aus. Untersuche die generierte volume_unit.py und die zugehörige ruff-Ausgabe; abgeschlossen ist die Aufgabe, wenn aus Nm³, und ft³ abgeleitete Enum-Namen gültige Python-Bezeichner sind und die Generierung diese Fehler nicht mehr erzeugt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Describe the bug
The ³ character in string enum values does not get sanitized out before creating enum names, resulting in invalid generated code.

OpenAPI Spec File

openapi: 3.0.0
info:
  title: Test API for Nm³ Enum Issue
  version: 1.0.0
  description: Minimal API to reproduce enum generation issue with Unicode characters

servers:
  - url: https://api.example.com

paths:
  /volume:
    get:
      summary: Get volume measurements
      responses:
        '200':
          description: Volume measurement response
          content:
            application/json:
              schema:
                type: object
                properties:
                  unit:
                    $ref: '#/components/schemas/VolumeUnit'
                  value:
                    type: number

components:
  schemas:
    VolumeUnit:
      type: string
      enum:
        - "Nm³"
        - "m³"
        - "ft³"
        - "normal_value"
      description: Volume unit with problematic Unicode superscript characters

On WSL, I checked out the latest version of the generator and ran

pip3 install -e .
python3 -m openapi_python_client generate --path repro.yaml --output-path test_output

Which resulted in the following ./test_output/test_api_for_nm_³_enum_issue_client/models/volume_unit.py (along with a pile of ruff errors)

from enum import Enum

class VolumeUnit(str, Enum):
    FT³ = "ft³"
    M³ = "m³"
    NM³ = "Nm³"
    NORMAL_VALUE = "normal_value"

    def __str__(self) -> str:
        return str(self.value)

Which is not legal python.

Desktop (please complete the following information):

  • OS: Microsoft Windows Server 2022, WSL 2.1.5.0, Ubuntu 22.04.5
  • Python Version: Python 3.10.12
  • openapi-python-client version 0.26.1

Additional context
Add any other context about the problem here.

Vorherrschende Sprache
Python
Sterne
2k
Forks
293
Ø Merge
34 Min.
Gemergte PRs (30 T.)
1

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus openapi-generators/openapi-python-client

Alle Issues in openapi-generators/openapi-python-client

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.