proper support of __get_pydantic_core_schema__
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez dans src/betterproto/enum.py, autour de la restriction des attributs liés, et examinez la manière dont les classes Enum générées gèrent setattr. Comparez ce comportement avec les indications sur les types personnalisés de Pydantic liées dans l’issue, puis vérifiez si le fait d’autoriser get_pydantic_core_schema affecte d’autres chemins Enum. Le travail est terminé lorsque les méthodes d’intégration privées fonctionnent sans autoriser d’autres attributs publics.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
I'd like to dynamically add non-public methods to my Enums
What is the feature request for?
The core library
The Problem
I'm mixing up betterproto.Enum with pydantic classes for easier conversion between my database objects and protobuf messages. To use pydantic, I have to add validator based on this instruction. Thus, I decided to dynamically add a class method to a generated betterproto.Enum. However, betterproto.enum does not allow it by this
Are there any other parts of the code affected by adding a custom function __get_pydantic_core_schema__ to my generated Enum?
The Ideal Solution
I'd like __set_attr__ to accept new attributes if the new attributes are private (i.e.,starting with __) I can contribute if this direction is acceptable.
The Current Solution
If no other solutions, I will fork this repo and just remove the constraint. I don't like to fork for a hack.
- Langage dominant
- Python
- Étoiles
- 1.8k
- Forks
- 235
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de danielgtaylor/python-betterproto
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
-
bug investigation needed
Difficulté 3/5 1-2 jours Accessibilité débutants 42/100
-
bug investigation needed
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
-
bug investigation needed
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
danielgtaylor/python-betterproto#676 · 3 commentaires ·
Toutes les issues de danielgtaylor/python-betterproto
Issues similaires
-
parse names a key after a top-level multi() threshold Bitcoin Core v31.1 refuses as not validOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
btclib-org/btclib-wallet#587 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Judgment-Pack/judgment-pack-spec#275 ·
Les mainteneurs répondent en général sous 1 jour
-
ai-generated
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
Les mainteneurs répondent en général sous 1 jour
-
documentation good first issue priority: low size: XS
Difficulté 1/5 1-3 heures Accessibilité débutants 92/100
yeongseon/azure-functions-doctor-python#651 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Changaco/python-libarchive-c#146 ·