google / google/python-fire

Tuple of strings parsed as string if one of the strings contains a hyphen

Ouverte
#561 5 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
28.2k
Forks
1.5k
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

When parsing in a tuple of strings i can normally pass in comma-separated values with no issues, however if one of the values contains a hyphen the arguments gets parsed as a string instead of a tuple of strings.

Using your provided **example.py** script
```python
import fire
fire.Fire(lambda obj: type(obj).__name__)
```

If i call it with multiple strings not containing hyphens i get the expected output
```repr
>>> python example.py '(foobar,baz)'
tuple
```
however, if I call it with a string containing a hyphen (`-`), I get this unexpected output
```repr
>>> python example.py '(foo-bar,baz)'
str
```

Is this to be expected? I also see that this is an issue with other symbols aswell.
Is there a way to work around this other than to pass in a repr-like string?

E.g, this works, but is not very human friendly:
```repr
>>> python example.py '("foo-bar","baz")'
tuple
```

Edit: This is also the case for lists, sets and dicts containing strings.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.