**kwargs unexpectedly parses flags for later chained method
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 55/100
Piste de recherche
Reproduisez le comportement avec la commande python -m fire montrée et les appels chaînés à transform et do_something. Commencez par suivre l’analyse des arguments pour les appels de méthodes chaînés ; le travail est terminé lorsque les flags placés après transform sont transmis à do_something au lieu d’être absorbés dans les kwargs de transform, avec une couverture pour cet exemple.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Suppose we have the following program
from dataclasses import dataclass
@dataclass
class MyClass:
x: int
def transform(self, **kwargs):
return MyClass(self.x * kwargs.get("multiplier", 2))
def do_something(self, msg):
print(f"{msg}: {self.x}")
my_obj = MyClass(3)
And we call it with python -m fire my_module my_obj transform --multiplier=3 do_something --msg="test", then the --msg is parsed when calling transform into the kwargs dict. Then it errors saying --msg is missing. Can we instead support parsing flags before the next chained method call? The kwargs is useful for example, to transform the object in ways that only implementation classes know what to do.
My current workarounds are (1) pass msg as positional arg to do_something, (2) have do_something take **kwargs and call transform within it. Neither is ideal as (1) would surprise anyone who uses my code and (2) adds extra plumbing that could be avoided.
- Langage dominant
- Python
- Étoiles
- 28.2k
- Forks
- 1.5k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Guide de contribution
Ouvrir 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 google/python-fire
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
google/python-fire#693 ·
-
Release 0.7.2? Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 38/100
google/python-fire#698 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 58/100
google/python-fire#672 · 5 commentaires ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
google/python-fire#665 · 2 commentaires ·
-
Releasing 3.14 Support Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
google/python-fire#643 · 4 commentaires · 5 réactions ·
Toutes les issues de google/python-fire
Issues similaires
-
essnmx good first issue
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
-
[Feature] 奇物选择添加优先级 Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
syfoud/Simulated_Scepter#174 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Giskard-AI/giskard-oss#2840 · 1 commentaire ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Ouvertearea: repo bug perceived difficulty: 2
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
yeti-platform/yeti#1380 ·