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

今天我们很高兴地宣布 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 十分简单、普遍和强大,我希望能为你的项目提供一个十分有效的库。

本文来自开源中国社区 [http://www.oschina.net]

时间: 2024-11-05 18:57:51

谷歌开源 Python Fire:可自动生成命令行接口的相关文章

谷歌开源 Python Fire;一张图读懂 Python、R 的大数据应用等 | AI 开发者头条

▲ 内容预览: 谷歌开源 Python Fire NASA 发布 2017-2018 软件目录,供开发者免费使用 一张图看懂大数据中 R 语言的应用 一张图看懂大数据中 Python 的应用 每日推荐阅读 谷歌搜索技术分析,如何一步步实现"不止于关键词"? █ 谷歌开源 Python Fire 昨晚谷歌公布了新的 Python 工具包--Python Fire.它的功能很简单:能从任何 Python 代码生成命令行接口(CLI).开发者面对任意一个 Python 程序,仅需调用 Pyt

python pyq...-pyqt5自动生成界面类无法显示,请大牛们帮帮忙!!

问题描述 pyqt5自动生成界面类无法显示,请大牛们帮帮忙!! 本人新手,采用Qt Designer自动生成界面类Ui_MainWindow后,采用下面两种方法结果为何不同,其中通过多重继承来显示界面的方法却没有显示预期效果,问题在哪里,纠结了好几天了!!请大牛们帮帮忙!!

谷歌开源 Wycheproof,可自动检测加密库漏洞

12月19日,谷歌发布了 Wycheproof 项目,它包含一系列安全测试,用来检测加密库(cryptographic libraries)软件是否存在已知的攻击漏洞.该项目以世界上最小的山 Wycheproof (位于澳大利亚)命名,并已开源. Wycheproof 项目包括 80多种测试案例,已能检测出的安全漏洞超过40处.测试包括最流行的加密算法,如 AES-EAX.AES-GCM.DH DHIES.DSA.ECDH.ECDSA.ECIES 和 RSA. 这些测试可以检测加密库是否容易受到

为 Python 项目自动生成的依赖文件 Pigar

Pigar 详细介绍 Pigar 是为 Python 项目自动生成精确无误的依赖文件. 用 pip 安装: $ [sudo] pip install pigar pigar 能找区别不同 Python 版本之间的差异,非常精确,并找出依赖包在代码中的哪些位置引用了,这非常方便,可以发现某些无用却引用了的包: $ pigar # example/e1.py: 18 pkg_a == 3.3.3 # example/e2.py: 10 pkg_b == 1.1.1 如果你折腾别人的项目的时候遇到"I

python+flask+html/css+mysql+BAE 打造CSDN简历自动生成系统(附网站完全源码)

1.背景        一直想自己动手写个web app玩玩,前几天看了一个github的resume自动生成的web-app,所以就动手仿造了一个csdn的简历生成器.结构很简单,前端是html/css文件(这个模仿了github的那个网页,因为博主不太懂前端).后台是一个爬虫软件,可以把csdn的个人信息爬下来,然后显示出来,最后部署到了百度云.百度的云数据库,真是坑爹.......,我调试了半天,目前还无法insert数据.好了,先上个图,项目地址http://resumecsdn.dua

谷歌推出YouTube字幕自动生成功能(图)

YouTube字幕自动生成功能界面 北京时间3月5日上午消息,据国外媒体报道,谷歌周四发布了一项新功能,可以为YouTube视频自动生成字幕. 谷歌去年11月便面向部分视频推出了字幕自动生成功能.该功能利用语音识别技术自动生成字幕,帮助聋哑人了解视频中的 对话.目前,谷歌将把该功能推广到所有的YouTube英语视频中. 谷歌软件工程师肯·哈伦斯坦(Ken Harrenstein)表示,配合着谷歌的翻译功能,还可以将英语字幕翻译成其他语言,让全球各地的聋哑人都能够观看YouTube视频.但他也指出

Genesis-3D开源游戏引擎完整实例教程之跑酷游戏篇01:道路的自动生成

1.道路的自动生成 道路自动生成概述: 3D跑酷游戏的核心就是跑,在跑这一过程中增加趣味性使得游戏具有更多的可玩性.道路的自动生成和自由拼接,为 游戏增设了更多的不可预见性.这种不可预见性使得玩家在游戏中更多的体验到探索精神,进而开发玩家对游戏的兴趣 .因此在跑酷游戏中,并不建议开发者设定好固定的场景道路,道路的自动生成模式更能吸引玩家.开发者可以通过不 同的方式来实现道路的自动生成,将角色固定点场景后移的方式实现:或者固定道路的坐标,通过角色的向前奔跑产生 位移变化. 原理: 通过使角色不断奔

以正确的方式开源 Python 项目(转)

大多数Python开发者至少都写过一个像工具.脚本.库或框架等对其他人也有用的工具.我写这篇文章的目的是让现有Python代码的开源过程尽可能清晰和无痛.我不是简单的指--"创建一个GitHub库,提交,在Reddit上发布,每天调用它".在本文的结尾,你可以把现有的代码转换成一个能够鼓励他人使用和贡献的开源项目. 然而每一个项目都是不同的,但其中将现有代码开源的流程对所有的Python项目都是类似的.在另一个受欢迎的文章系列里我写了"以正确方式开始一个Django项目&qu

谷歌开源深度学习系统TensorFlow 的图片文字说明模型

谷歌开源深度学习系统TensorFlow 的图片文字说明模型 责任编辑:editor007 作者:aiko |  2016-09-23 22:27:27 本文摘自:36kr   今天,谷歌宣布开源图片文字说明模型 Show and Tell,该模型具有自动生成图片文字说明的功能,准确率达 93.9%. 谷歌于 2014 年发表论文首次介绍了 Show and Tell 这一系统模型,在 2015 年又对其进行了内容更新,对相关技术做了更加准确的改进.之后,谷歌一直在完善这一技术,最终作为谷歌 T