今天我们很高兴地宣布 python fire 开源。python fire 可从任何 python 代码生成命令行接口(command line interfaces (clis)),简单地调用任意 python 程序中的 fire 函数以将那个程序自动地转化为 cli。该库可通过 <code>pip install fire</code> 从 pypi 获取,也可参考 github 上的资源。
python fire 自动把你的代码转化成一个 cli,而不需要你做任何额外工作。你不必定义参数、设置帮助信息或写一个主函数定义代码如何运行。相反地,你只需从主模块调用 <code>fire</code> 函数,python fire 会接管剩下的一切。它使用检索将任何 python 对象(无论是类、对象、字典、函数,甚至是整个模块)转化为命令行接口,并输出标注标签和文档,并且指令行界面会随着编码的变化保持实时更新。
为了说明这一点,让我们看一个简单的例子。
当 fire 函数运行时,我们的命令被执行。仅仅通过调用 fire,现在我们可以把样本类当作命令行工具来使用。
当然你可以继续像使用 python 普通库那样使用这个模块,从而你可以使用跟 bash 和 python 完全一样的的代码。如果你正在写一个 python 库,那么在试验这个模块的时候你就不需要更新你的主要方法(method)或客户端。仅仅只需要以命令行的方式运行一部分你正在试验的库。即使这些库改变了,该命令行工具仍然保持更新。
在 google,工程师们使用 python fire 从 python 库生成命令行工具。因为我们有使用 python 图像库(python imaging library/pil)和 fire 建立的图像处理工具。在谷歌大脑,我们使用由 fire 构建的实验管理工具,该工具能够和 python 或 bash 同等程度地管理实验。
每个 fire cli 都带有交互模式。运行 cli 时使用「-interactive」旗标和命令行以及其他已定义的变量来登录 ipython repl。请务必查看 python fire 的文档,从而了解 fire 更多实用的特征。
因为 python fire 十分简单、普遍和强大,我希望能为你的项目提供一个十分有效的库。