google / google/python-fire

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

オープン
#561 コメント 5 件 リアクション 1 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
28.2k
フォーク
1.5k
PR マージ指標
30日以内にマージされた PR はありません

説明

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.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。