谷歌开源 Python Fire:可自动生成命令行接口
2017-03-03 19:23
405 查看
选自Google Open Source
今天我们很高兴地宣布 Python Fire 开源。Python Fire 可从任何 Python 代码生成命令行接口(command line interfaces (CLIs)),简单地调用任意 Python 程序中的 Fire 函数以将那个程序自动地转化为 CLI。该库可通过 `pip install fire` 从 pypi 获取,也可参考 Github 上的资源。
项目地址:https://github.com/google/python-fire
Python Fire 自动把你的代码转化成一个 CLI,而不需要你做任何额外工作。你不必定义参数、设置帮助信息或写一个主函数定义代码如何运行。相反地,你只需从主模块调用 `Fire` 函数,Python Fire 会接管剩下的一切。它使用检索将任何 Python 对象(无论是类、对象、字典、函数,甚至是整个模块)转化为命令行接口,并输出标注标签和文档,并且指令行界面会随着编码的变化保持实时更新。
为了说明这一点,让我们看一个简单的例子
#!/usr/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 十分简单、普遍和强大,我希望能为你的项目提供一个十分有效的库。
今天我们很高兴地宣布 Python Fire 开源。Python Fire 可从任何 Python 代码生成命令行接口(command line interfaces (CLIs)),简单地调用任意 Python 程序中的 Fire 函数以将那个程序自动地转化为 CLI。该库可通过 `pip install fire` 从 pypi 获取,也可参考 Github 上的资源。
项目地址:https://github.com/google/python-fire
Python Fire 自动把你的代码转化成一个 CLI,而不需要你做任何额外工作。你不必定义参数、设置帮助信息或写一个主函数定义代码如何运行。相反地,你只需从主模块调用 `Fire` 函数,Python Fire 会接管剩下的一切。它使用检索将任何 Python 对象(无论是类、对象、字典、函数,甚至是整个模块)转化为命令行接口,并输出标注标签和文档,并且指令行界面会随着编码的变化保持实时更新。
为了说明这一点,让我们看一个简单的例子
#!/usr/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 十分简单、普遍和强大,我希望能为你的项目提供一个十分有效的库。
相关文章推荐
- 神奇的模块--谷歌开源 Python Fire:自动生成命令行接口
- 谷歌开源 Python Fire:可自动生成命令行接口
- Python Fire开源—用于自动生成命令行界面的内容库
- 【Python】自动生成命令行工具 - fire 简介
- 【Python】自动生成命令行工具 - fire 简介
- 【Python】自动生成命令行工具 - fire 简介
- 「python自动化运维」之自动生成配置文件并上传到目标服务器指定的位置
- 「python自动化运维」之自动生成配置文件并上传到目标服务器指定的位置
- Discuz开源论坛本地部署自动生成数据库
- 将C++代码全部写到头文件:)python脚本帮助自动生成相应的实现文件初始框架
- python 自动生成ip列表
- python学习重温(1)---自动case生成工具
- 【转】Oracle AWR 报告 每天自动生成并发送邮箱 Python脚本(一)
- Sublime-Text-2-pydocstring --- 自动生成python docstring的插件
- Python:在Linux下创建一个脚本并且自动修改权限,可以选择路径。批量生成脚本 。
- python写一段自动生成Objective-C模型对象的脚本
- python学习重温(1)---自动case生成工具
- Python在C/C++代码自动生成中的使用
- 自动生成Python初始模板——makecode.py增强版
- python自动生成易于阅读的html文档——使用Sphinx