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

为什么80%的码农都做不了架构师?>>>   hot3.png

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

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

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

#coding: utf-8import fireclass Example(object):def hello(self, name='world'):"""Says hello to the specified name."""return 'Hello {name}!'.format(name=name)def demo(self, key):return keydef main():fire.Fire(Example)if __name__ == '__main__':  main()

执行:

 

$ python fire_demo.py hello
Hello world!
$ python fire_demo.py demo
Fire trace:
1. Initial component
2. Instantiated class "Example" (fire_demo.py:5)
3. Accessed property "demo" (fire_demo.py:10)
4. ('The function received no value for the required argument:', 'key')Type:        instancemethod
String form: <bound method Example.demo of <__main__.Example object at 0x037C33D0>>
File:         fire_demo.py
Line:        10Usage:       fire_demo.py demo KEYfire_demo.py demo --key KEY$ python fire_demo.py demo
test

 

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

 

转载于:https://my.oschina.net/yehun/blog/870925

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tcp ip计算机网络协议,一篇文章带你熟悉 TCP/IP 协议-(一)

一、 计算机网络体系结构分层不难看出&#xff0c;TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”&#xff0c;而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。二、 TCP/IP 基础1. TCP/IP 的具体含义从字面意义上讲&#xff…

Random Forest算法参数解释及调优

文章介绍了如何对随机森林模型进行参数调优 原文来自&#xff1a;http://www.analyticsvidhya.com/blog/2015/06/tuning-random-forest-model/ 为什么要调整机器学习算法&#xff1f; 一个月以前&#xff0c;我在kaggle上参加了一个名为TFI的比赛。 我第一次提交的结果在50%…

Random Forest随机森林概述

引言 在机器学习中&#xff0c;随机森林由许多的决策树组成&#xff0c;因为这些决策树的形成采用了随机的方法&#xff0c;因此也叫做随机决策树。随机森林中的树之间是没有关联的。当测试数据进入随机森林时&#xff0c;其实就是让每一颗决策树进行分类&#xff0c;最后取所…

kd tree学习笔记 (最近邻域查询)

https://zhuanlan.zhihu.com/p/22557068 http://blog.csdn.net/zhjchengfeng5/article/details/7855241 KD树在算法竞赛中主要用来做各种各样的平面区域查询&#xff0c;包含则累加直接返回&#xff0c;相交则继续递归&#xff0c;相离的没有任何贡献也直接返回。可以处理圆&am…

图像影音型计算机主板选择什么,电脑主板型号在哪里看? 每日一答

电脑主板型号在哪里看&#xff1f;想要看主板的型号其实非常简单&#xff0c;一般来说&#xff0c;主板上都会有一个专门的身份标识&#xff0c;位于PCI-E显卡插槽之间&#xff0c;比如下方这张图&#xff0c;就清晰地写明了MAXIMUS X APEX的标识&#xff0c;熟悉的玩家一眼就能…

使用叶神模拟器无法访问本机服务器的问题(报错:java.net.ConnectException: failed to connect to /127.0.0.1 (port 5000) )

最近打算用夜神模拟器来和本机服务器做一些信息交互的功能&#xff0c;但是服务器搭建好了&#xff0c;用叶神模拟器却无法访问。折腾了大半天才发现原来是模拟器的问题。 具体过程如下&#xff1a; 搭建好服务器后&#xff0c;在本机上访问“http://127.0.0.1:5000/”&#…

初学大数据之如何选择机器学习算法

最近在国外网站看到一篇不错的文章&#xff0c;所以就翻译过来给大家分享一下。主要介绍初学者怎么选择机器学习算法,希望对各位初学者有帮助。 原文如下: 一个初学者面临各种机器学习算法的典型问题是“我应该使用哪种算法&#xff1f;”问题的答案取决于许多因素&#xff0…

Django查询 – id vs pk

当编写django查询时&#xff0c;可以使用id / pk作为查询参数。 Object.objects.get(id1) Object.objects.get(pk1) pk代表主键(primary key)&#xff0c; pk更加独立于实际的主键字段&#xff0c;即不必关心主键字段是否被称为id或object_id或其他。 如果您具有不同主键字…

Tomcat的Session管理(三)

摘要&#xff1a;PersistentManager与StandardManager的异同。 之前两篇关于session的文章主要讨论了session相关的创建、查询、过期处理。而我们查看源码的时候都是默认实现是StandardManager类&#xff0c;实际上实现也可以是PersistentManager类&#xff0c;下面我们就查看下…

稳定和性能如何兼顾?58大数据平台的技术演进与实践

作者&#xff5c;赵健博 编辑&#xff5c;尚剑 本文将为你分享58大数据平台在最近一年半内技术演进的过程&#xff0c;包括&#xff1a;58大数据平台目前的整体架构是怎么样的&#xff1b;最近一年半的时间内我们面临的问题、挑战以及技术演进过程&#xff1b;以及未来的规划。…

Random Forest算法简介

转自JoinQuant量化课堂 一、相关概念 分类器&#xff1a;分类器就是给定一个样本的数据&#xff0c;判定这个样本属于哪个类别的算法。例如在股票涨跌预测中&#xff0c;我们认为前一天的交易量和收盘价对于第二天的涨跌是有影响的&#xff0c;那么分类器就是通过样本的交易量…

简单交互

控件有着各种事件&#xff0c;例如被点击的时候&#xff0c;我们可以在事件里面添加动作和命令&#xff0c;让控件可以和用户交互&#xff0c;这里我们演示一个简单的交互&#xff1a;当用户点击文字控件的时候&#xff0c;它开始动画向下移动然后动画旋转&#xff0c;效果入下…

综合素质计算机考点,教师资格证小学综合素质考点及考试真题:信息处理能力...

小学综合素质考点及考试真题——信息处理能力大纲要求&#xff1a;具有运用工具书检索信息、资料的能力。具有运用网络检索、交流信息的能力。具有对信息进行筛选、分类、存储和应用的能力。具有运用教育测量知识进行数据分析与处理的能力。具有根据教育教学的需要&#xff0c;…

API文档自动生成

本文主要讲述自动化API文档生成——apidoc。网上有几个篇文章都只是介绍apidoc的&#xff0c;具体怎么在自己的项目中使用以及与其他配合使用都是没介绍的。最近开始玩服务器&#xff0c;了解到了有Windows与Linux之间共享文件的方法&#xff0c;就是samba。然后具体和apidoc结…

机器学习笔记之SVM(SVR)算法

学过SVM后&#xff0c;看了那么多别人的文章&#xff0c;是时候自己总结一波了。权当写的笔记供自己日后再回顾吧。 PS:结合自己在工作过程中&#xff08;我这里用SVR做股票预测&#xff09;用到的知识来写的&#xff0c;不会很全面&#xff0c;若有些知识这里没提及读者可自行…

[转]基于图的机器学习技术:谷歌众多产品和服务背后的智能

近来机器学习领域实现了很多重大的进展&#xff0c;这些进展让计算机系统具备了解决复杂的真实世界问题的能力。其中&#xff0c;谷歌的机器学习又是怎样的 &#xff1f; 近来机器学习领域实现了很多重大的进展&#xff0c;这些进展让计算机系统具备了解决复杂的真实世界问题的…

安装mysql后在安装目录下只有my-default.ini没有my.ini文件 解决-The MySQL server is running with the --secure-file-priv

WIN10 系统环境 安装mysql后在安装目录下只有my-default.ini没有my.ini文件 。 mysql报错 ---------- The MySQL server is running with the --secure-file-priv option so it cannot execute this statement -------- 但是更改或想要查找配置文件就需要如下操作 在 安装…

loewe测试软件,实测Loewe三角包 最轻的小包最贴心的设计

原标题&#xff1a;实测Loewe三角包 最轻的小包最贴心的设计导语&#xff1a;每周一期的“包治百病”又跟大家见面来啦&#xff01;“包治百病”全方位评测包包的容量、重量、背法、在不同身高妹子身上的效果、各种惊人的小细节以及可能存在的问题&#xff0c;为有意购买这些包…

hadoop集群的搭建(分布式安装)

集群 计算机集群是一种计算机系统&#xff0c;他通过一组松散集成的计算机软件和硬件连接起来高度紧密地协同完成计算工作。集群系统中的单个计算机通常称为节点&#xff0c;通常通过局域网连接。集群技术的特点&#xff1a;1、通过多台计算机完成同一个工作。达到更高的效率 2…

解决:Error establishing a database connection阿里云修改数据库密码

今天闲来无事想把所有的二级密码改成一致的&#xff0c;所以就把阿里云的mysql数据库的密码改了&#xff0c;结果&#xff0c;打开页面报错了&#xff0c;下边的截图是我问题解决后&#xff0c;重新复现的。如果修复这个问题后wordpress登录页面白板&#xff0c;此时不要着急&a…