google/python-fire

Unexpected parsing behaviour for List of strings containing a string with a numeric initial

iorin0217 opened this issue · 1 comments

This is just a report. I hope it will be useful for development. I'm using fire v0.4.0.

# tmp.py
import fire
def main(keyword_list):
    print([(keyword,type(keyword)) for keyword in keyword_list])
fire.Fire(main)

Will give you:

> python tmp.py --keyword_list=tmp,0
[('tmp', <class 'str'>), (0, <class 'int'>)]

> python tmp.py --keyword_list=tmp,01
[('t', <class 'str'>), ('m', <class 'str'>), ('p', <class 'str'>), (',', <class 'str'>), ('0', <class 'str'>), ('1', <class 'str'>)]

> python tmp.py --keyword_list=tmp,0tmp
[('t', <class 'str'>), ('m', <class 'str'>), ('p', <class 'str'>), (',', <class 'str'>), ('0', <class 'str'>), ('t', <class 'str'>), ('m', <class 'str'>), ('p', <class 'str'>)]

The same as #229

You have to quote them --keyword_list=[tmp,\"01\"]