String hinted arguments passed numerical values should not be coerced
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 70/100
Piste de recherche
L’issue fournit une reproduction minimale dans tp.py, mais ne nomme aucun fichier du projet ni aucun test. Commence par suivre la façon dont Fire analyse les valeurs de CLI et applique les annotations de type des arguments des callables, puis trouve les tests pertinents pour les arguments annotés comme string. Le travail est terminé lorsque 1.10 et '1.10' parviennent tous deux à la fonction sous forme de chaînes et qu’un test de régression couvre ce comportement.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Observed behavior
If a callable command function defines an argument with a string hint, e.g. arg: str, and a value of 1.10 is passed to it, then it receives an argument of type float with value 1.1 which has different meaning than the passed value.
This is particularly troublesome when dealing with versions since 1.1 is much different than 1.10.
Expected behavior
Fire should not coerce the value to a type different than the type hint, regardless of its format.
Reproduction
Code
# tp.py
import fire
def main(arg: str):
print(f"Hello! {type(arg)} {arg}")
if __name__ == "__main__":
fire.Fire(main)
Execution
$ python tp.py 1.10
Hello! <class 'float'> 1.1
or
$ python tp.py '1.10'
Hello! <class 'float'> 1.1
Metadata
fire version v0.7.1
- Langage dominant
- Python
- Étoiles
- 28.2k
- Forks
- 1.5k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun 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 google/python-fire
-
External pager resets custom SIGINT handlers to SIG_DFLPeut-être pris @hugosmoreira l’a pris il y a 14 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
google/python-fire#723 · 1 commentaire ·
-
EllipsisMiddleTruncate exceeds requested width when only the ellipsis fitsPeut-être pris @hugosmoreira l’a pris il y a 14 jours. Ouverte
Difficulté 1/5 1-3 heures Accessibilité débutants 88/100
google/python-fire#722 · 1 commentaire ·
-
Windows ANSI initialization uses nonexistent subprocess.STD_OUTPUT_HANDLEPeut-être pris @Fire162 l’a pris il y a 11 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
google/python-fire#721 · 1 commentaire ·
-
Setup docs still say `python setup.py install`, but `setup.py` was removedPeut-être pris @GreedyC l’a pris il y a 18 jours. Ouverte
Difficulté 1/5 1-3 heures Accessibilité débutants 93/100
google/python-fire#718 · 1 commentaire ·
-
Calling an async command from an active event loop raises RuntimeError and leaves an unawaited coroutinePeut-être pris @aashish254 l’a pris il y a 20 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
google/python-fire#716 ·
Toutes les issues de google/python-fire
Issues similaires
-
`destroy` sans terminal répond « Aborted. » au lieu de réclamer `--yes` comme `clean` et `reset`Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
stephrobert/dsoxlab#354 ·
Les mainteneurs répondent en général sous 1 jour
-
hardware help wanted testing
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
jasonacox/pypowerwall#472 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: DoubleMLRDDData accepts a score_col that is no data column (as in its docstring example); the running variable then becomes a covariate and RDFlex failsPeut-être pris @vrjdev l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
DoubleML/doubleml-for-py#455 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: Python mod.Box[T] annotation gets a false generic_arg edge that replaces the parameter_type one ('is' on tree-sitter nodes)Peut-être pris @rohit-jsfreaky l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Graphify-Labs/graphify#5110 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours