当前位置: 首页 > 工具软件 > Python Fire > 使用案例 >

15600+星的 Python Fire为什么这么火,用完你就知道了

浦德明
2023-12-01


今天给大家介绍的项目是来自谷歌开源的 Python Fire ,可以从任何 Python 代码生成命令行接口(command line interfaces (CLIs)), 简单地调用任意 Python 程序中的 Fire 函数以将那个程序自动地转化为 CLI。 截止发稿前,该项目已经在github获得 15600+⭐ ,接近 1000次fork 。为什么这个项目这么火爆呢?俩字:『好用』......

Github地址https://github.com/google/python-fire
获取方式:
  • 从 pypi 获取 `pip install fire`

  • 从conda获取`conda install fire -c conda-forge`

  • 从源码安装, clone代码库 & `python setup.py install`


Python Fire有哪些优点:
  • 不需要定义参数、设置帮助信息或写一个主函数定义代码如何运行。只需从主模块调用 `Fire` 函数即可;

  • 将任何 Python 对象(类、对象、字典、函数,甚至整个模块)转化为命令行接口,并输出标注标签和文档;

  • 指令行界面会随着编码的变化保持实时更新。


例子一
 
 
1 # calling Fire a function
2 import fire
3 def hello(name="World"):
4   return  "Hello %s!" % name
5
6 if __name__ ==  __main__ :
7  fire.Fire(hello)
8
9
10 # from the command line,then run:
11python hello.py   # Hello World!
12python hello.py --name=David   # Hello David!
13python hello.py --help   # Shows usage information.

例子二
 
 
1 # calling Fire on a class
2 import fire
3
4 class Calculator(object):
5   """A simple calculator class."""
6
7   def double(self, number):
8     return  2 * number
9
10 if __name__ ==  __main__ :
11  fire.Fire(Calculator)
12
13 # from the command line, then run:
14
15python calculator.py double  10   # 20
16python calculator.py double --number= 15   # 30

例子三
 
 
1 #!/usr/bin/env python
2 import fire
3 class Example(object):
4  def hello(self, name= world ):
5  """Says hello to the specified name."""
6  return  Hello {name}! .format(name=name)
7
8 def main():
9 fire.Fire(Example)
10
11 if __name__ ==  __main__ :
12 main()
13
14 ##########################
15 当 Fire 函数运行时,我们的命令被执行。
16仅仅通过调用 Fire,现在我们可以把样本类当作命令行工具来使用。

17
18
19$ ./example.py hello
20Hello world!
21
22$ ./example.py hello David
23Hello David!
24
25$ ./example.py hello --name=Google
26Hello Google!

每个 Fire CLI 都带有交互模式。
  • 运行 CLI 时使用「-interactive」旗标和命令行以及其他已定义的变量来登录 IPython REPL。

  • 请务必查看 Python Fire 的文档,从而了解 Fire 更多实用的特征。


因为 Python Fire 十分简单、普遍和强大,我希望能为你的项目提供一个十分有效的库。
英文链接:http://opensource.googleblog.com/2017/03/python-fire-command-line.html

推荐阅读


 类似资料: