Python Fire:一个可以自动生成命令行接口的库

关键时刻,第一时间送达!

今天我们很高兴地发布了开源的Python Fire,Python Fire可以从任何Python代码生成命令行接口(Command Line Interface,简称CLI)。 只需在Python程序里调用Fire函数,该函数会自动将程序转化为命令行接口。Python Fire库可以通过pypi中的”pip install fire”命令进行安装,源代码可以通过Github来进行访问。

Python Fire可以自动将代码转化为命令行接口,不需要任何多余的步骤,例如定义参数,设定帮助信息,或编写主函数来定义代码的运行。只需要在主模块里调用Fire函数,Python Fire将会自动检查并将任何用户定义的Python对象(例如类,对象,字典,函数,甚至是整个模块)转化为命令行接口,即使代码发生了变化,命令行接口也会随之更新。

下面是一个简单的Python Fire例子:

当Fire函数运行时, 我们的命令也将会被执行。调用Fire函数之后,我们可以将Example类当作命令行工具来使用。

当然,你也可以继续将这个模块当做普通的Python库来使用,这将可以使你在Bash和Python中使用同样的代码。如果你正在编写一个Python库,你将不需要在试验你的库时更新你的主模块;只需要用命令行从库中运行你需要的部分即可。即使你的库发生了变化,命令行工具也会随之自动更新。

在谷歌,工程师们使用Python Fire从Python库中生成命令行工具。我们拥有的一个图像控制工具就是使用Python图像处理库(Python Imaging Library,简称PIL)和Fire构成的。在谷歌大脑(Google Brain),我们使用一个Python Fire构建的实验管理工具来实现Python和Bash实验的统一管理。

每一个Fire命令行接口都拥有一个交互模式,在命令行接口中运行 “--interactive” flag,会启动一个IPython REPL,在这里你可以得到运行命令的结果,以及其他定义过的有用的变量。Python Fire的说明中提供了更多关于这些功能的信息。

Python Fire是一个简单,通俗,以及强大的库,我们希望你也可以在你的项目中发现它的有用之处。

David Bieber, 谷歌大脑软件工程师

来源:python部落

译者:Charmant

英文原文:https://opensource.googleblog.com/2017/03/python-fire-command-line.html

Python开发整理发布,转载请联系作者获得授权

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180602B1C56N00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券