String hinted arguments passed numerical values should not be coerced
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 70/100
Línea de trabajo
El issue incluye una reproducción mínima en tp.py, pero no menciona archivos del proyecto ni pruebas. Empieza por seguir cómo Fire analiza los valores de CLI y aplica las anotaciones de tipo de los argumentos de los callables; después, localiza las pruebas relevantes para los argumentos anotados como string. Se considera terminado cuando tanto 1.10 como '1.10' llegan a la función como cadenas y una prueba de regresión cubre este comportamiento.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Python
- Estrellas
- 28.2k
- Forks
- 1.5k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de google/python-fire
-
External pager resets custom SIGINT handlers to SIG_DFLPosiblemente ocupada @hugosmoreira la tomó hace 14 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
google/python-fire#723 · 1 comentario ·
-
EllipsisMiddleTruncate exceeds requested width when only the ellipsis fitsPosiblemente ocupada @hugosmoreira la tomó hace 14 días. Abierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
google/python-fire#722 · 1 comentario ·
-
Windows ANSI initialization uses nonexistent subprocess.STD_OUTPUT_HANDLEPosiblemente ocupada @Fire162 la tomó hace 11 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
google/python-fire#721 · 1 comentario ·
-
Setup docs still say `python setup.py install`, but `setup.py` was removedPosiblemente ocupada @GreedyC la tomó hace 18 días. Abierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 93/100
google/python-fire#718 · 1 comentario ·
-
Calling an async command from an active event loop raises RuntimeError and leaves an unawaited coroutinePosiblemente ocupada @aashish254 la tomó hace 20 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
google/python-fire#716 ·
Todos los issues de google/python-fire
Issues similares
-
`destroy` sans terminal répond « Aborted. » au lieu de réclamer `--yes` comme `clean` et `reset`Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
stephrobert/dsoxlab#354 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
jasonacox/pypowerwall#472 ·
Los mantenedores suelen responder en 1 día
-
[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 failsPosiblemente ocupada @vrjdev la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
DoubleML/doubleml-for-py#455 ·
Los mantenedores suelen responder en 1 día
-
[Bug]: Python mod.Box[T] annotation gets a false generic_arg edge that replaces the parameter_type one ('is' on tree-sitter nodes)Posiblemente ocupada @rohit-jsfreaky la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Graphify-Labs/graphify#5110 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
assafelovic/gpt-researcher#2277 ·
Los mantenedores suelen responder en 10 días