google / google/python-fire

feature request: tell fire to stop parsing argument and pass the remaining unparsed args to function

未關閉
#403 2 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視
enhancement
主要語言
Python
星號
28.2k
分支
1.5k
PR 合併指標
30 天內沒有已合併 PR

描述

**Feature Description**

I am working on a tool to wrap some existed command line tools to make them easier to use (like auto install, inject argument automatically, etc). And I hope that I can have a way to tell Fire to stop parsing after encount some specific command.

**Example**
Here are some real world examples like `poetry run python3 ./my-scripts.py` or `conda run -n my-env python3 ./my-scripts.py`

Without this feature I can only put everything else as string, just like what `-c` option of `bash` does, e.g. `bash -c "echo 'hello world'" `, which could still work, but the user have to type extra string quote and dealing with escaping in some cases.

I am not sure if it is possbile to provide some decorator to archive this, for example

```python
class Conda:
def __init__(verbose=False):
...

@fire.decorators.SkipParse
def run(self, *argv):
print(argv)

fire.Fire(Conda)
```

And when running with `python fake-conda.py --verbose run which -a python3`, the output should be `('which', '-a', 'python3')`

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。