设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

谷歌开源Python Fire:可自动生成命令行接口

2017-3-3 23:12| 发布者: joejoe0332| 查看: 1010| 评论: 0|原作者: 机器之心|来自: 机器之心

摘要: 今天我们很高兴地宣布 Python Fire 开源。Python Fire 可从任何 Python 代码生成命令行接口(command line interfaces (CLIs)),简单地调用任意 Python 程序中的 Fire 函数以将那个程序自动地转化为 CLI。该库可通 ...

今天我们很高兴地宣布 Python Fire 开源。Python Fire 可从任何 Python 代码生成命令行接口(command line interfaces (CLIs)),简单地调用任意 Python 程序中的 Fire 函数以将那个程序自动地转化为 CLI。该库可通过 `pip install fire` 从 pypi 获取,也可参考 Github 上的资源。

Python Fire 自动把你的代码转化成一个 CLI,而不需要你做任何额外工作。你不必定义参数、设置帮助信息或写一个主函数定义代码如何运行。相反地,你只需从主模块调用 `Fire` 函数,Python Fire 会接管剩下的一切。它使用检索将任何 Python 对象(无论是类、对象、字典、函数,甚至是整个模块)转化为命令行接口,并输出标注标签和文档,并且指令行界面会随着编码的变化保持实时更新。

为了说明这一点,让我们看一个简单的例子。

sr/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.py hello
Hello world!
$ ./example.py hello David
Hello David!
$ ./example.py hello --name=Google
Hello Google!

当然你可以继续像使用 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 十分简单、普遍和强大,我希望能为你的项目提供一个十分有效的库。

原文:opensource.googleblog.com


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部