google / python-fire

Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
Other
27.13k stars 1.45k forks source link

Support Bash Arrays #182

Open wahrwolf opened 5 years ago

wahrwolf commented 5 years ago

Hi there, I love fire but I keep running in the same issue.

A lot of my scripts support a target directive so I can handover a list and it will iterate over the list.

If I combine that with Fire I need to write ugly python lists and can not use bash magic. E.g. I need to write python example.py count_lines '["file00", "file01", "file02"...]' instead of something like 'python example.py count_lines "file{00..10}"` and I can not use any tab completion.

My current workaround is adding:

def count_lines(files):
  if isinstance(files, str):
    files = files.split()
  ...

One idea was to add this line with a special param like --use-bash-arrays to the Fire parser so I can run the script like: python example.py count_lines "ffiles{00..}" -- --use-bash-arrays

siddharths2710 commented 5 years ago

Hello @dbieber and @wahrwolf , I would like to contribute to this enhancement, and to this end, I'd like to discuss how to resolve this issue. With the --use-bash-arrays parameter proposed by @wahrwolf , I have the following questions: