String hinted arguments passed numerical values should not be coerced
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 70/100
Direzione di ricerca
L’issue fornisce una riproduzione minima in tp.py, ma non indica file del progetto né test. Inizia seguendo come Fire analizza i valori CLI e applica le annotazioni di tipo degli argomenti dei callable, poi individua i test pertinenti per gli argomenti annotati come string. Il lavoro è completato quando sia 1.10 sia '1.10' arrivano alla funzione come stringhe e un test di regressione copre questo comportamento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- Python
- Stelle
- 28.2k
- Fork
- 1.5k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di google/python-fire
-
External pager resets custom SIGINT handlers to SIG_DFLForse già presa @hugosmoreira l’ha presa 14 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
google/python-fire#723 · 1 commento ·
-
EllipsisMiddleTruncate exceeds requested width when only the ellipsis fitsForse già presa @hugosmoreira l’ha presa 14 giorni fa. Aperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
google/python-fire#722 · 1 commento ·
-
Windows ANSI initialization uses nonexistent subprocess.STD_OUTPUT_HANDLEForse già presa @Fire162 l’ha presa 11 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
google/python-fire#721 · 1 commento ·
-
Setup docs still say `python setup.py install`, but `setup.py` was removedForse già presa @GreedyC l’ha presa 18 giorni fa. Aperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 93/100
google/python-fire#718 · 1 commento ·
-
Calling an async command from an active event loop raises RuntimeError and leaves an unawaited coroutineForse già presa @aashish254 l’ha presa 20 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
google/python-fire#716 ·
Tutte le issue di google/python-fire
Issue simili
-
`destroy` sans terminal répond « Aborted. » au lieu de réclamer `--yes` comme `clean` et `reset`Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
stephrobert/dsoxlab#354 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
jasonacox/pypowerwall#472 ·
I maintainer di solito rispondono entro 1 giorno
-
[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 failsForse già presa @vrjdev l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
DoubleML/doubleml-for-py#455 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: Python mod.Box[T] annotation gets a false generic_arg edge that replaces the parameter_type one ('is' on tree-sitter nodes)Forse già presa @rohit-jsfreaky l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
Graphify-Labs/graphify#5110 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
assafelovic/gpt-researcher#2277 ·
I maintainer di solito rispondono entro 10 giorni