如果现在有个工具,不需要你做任何额外工作,不必定义参数、设置帮助信息或写一个主函数定义代码如何运行,就能自动把你的代码转化成一个 CLI 的工具,你想要么?
学习Python中有不明白推荐加入交流群
号:516107834
群里有志同道合的小伙伴,互帮互助,
群里有不错的学习教程!
没错,说的就是 Python Fire,通过它,你只需从主模块调用 `Fire` 函数,Python Fire 会接管剩下的一切。它使用检索将任何 Python 对象(无论是类、对象、字典、函数,甚至是整个模块)转化为命令行接口,并输出标注标签和文档,并且指令行界面会随着编码的变化保持实时更新。
开源短短一年,Python Fire 已经获得了 12501 个「star」以及 696 个「fork」
(GitHub项目地址:https://github.com/google/python-fire)
看一个例子,你就知道它有多强大:
#!/usr/bin/env python
import fire
class Example(object):
def hello(self, name='world'):
"""Says hello to the specified name."""
return 'Hello {name}!'.format(name=name)
def main():
fire.Fire(Example)
if __name__ == '__main__':
main()
运行 Fire 函数时将会执行我们的命令。现在我们只需调用 Fire,就可以将 Example 类当作命令行实用程序来使用。
$ ./example.py hello
Hello world!
$ ./example.py hello David
Hello David!
$ ./example.py hello --name=Google
Hello Google!
当然,您可以继续像使用普通 Python 内容库那样使用此模块,从而能够从 Bash 和 Python 使用完全相同的代码。如果你要编写 Python 内容库,则试用就不再需要更新 main 方法或客户端;相反,你只需从命令行运行所试用的内容库片段。即使内容库发生变化,命令行工具也能即时更新。
那么,如何安装 Python Fire呢?
● 如用 pip,则运行: pip install fire
● 如用 conda, 则运行:conda install fire -c conda-forge
● 如从源码安装,则先要 clone 本 repo,然后运行: python setup.py install
如果你已经迫不及待想用 Python Fire,不妨仔细参阅 Python Fire 指南:https://github.com/google/python-fire/blob/master/docs/guide.md
网友评论