openapi-generators / openapi-generators/openapi-python-client

feat: Add a enum_value_prefix similar to field_prefix and/or allow enum values that start with a bad chart to still be VALUE_$X

Ouverte
#1,043 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
2k
Forks
293
Merge moyen
34 min
PR mergées (30 j)
1

Description

Describe the bug
INT enums
enum: [1,10,20]
map to VALUE_1, VALUE_10, VALUE_20 ....
but you can't have mixed str&int enums.

I have some enums in an openapi file that take both numbers and strings. ex: 1,20,noop
So the numbers need to be strings as well.

But since they start with an invalid char ([0-9]) they're renamed VALUE_1, VALUE_2, etc regardless of the int/string value

I think a similar thing happens to strings that start as _.

It's worse then passing in a string(especially since you can't pass in the string/value instead).
Its better to keep the string value after the prefix.

basically I'd like to be able to have

enum: ["200", "10", "_11", "_ABC", "noop"]

map to

class MyEnum(str, Enum):
    VALUE_200 = "200"
    VALUE_10 = "10"
    VALUE_11 = "11"
    VALUE_ABC= "ABC"
    noop = "noop"

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

with
enum_value_prefix: V

class MyEnum(str, Enum):
    V_200 = "200"
    V_10 = "10"
    V_11 = "11"
    V_ABC= "ABC"
    noop = "noop"

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

OpenAPI Spec File
Openapi doesn't have great support for custom enum naming.
I think this would work better in many cases anyway
https://stackoverflow.com/questions/66465888/how-to-define-enum-mapping-in-openapi

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par reproduire le comportement demandé avec les valeurs d’enum mixtes de l’issue et examinez comment le générateur nomme actuellement les membres d’enum invalides. Considérez le travail terminé lorsque enum_value_prefix ou une convention de nommage équivalente est pris en charge, tout en préservant les valeurs d’origine, avec une couverture des chaînes numériques et des chaînes préfixées par un caractère de soulignement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
openapi, python
Domaine
backend-api-design
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.