社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Instagram 开源用于 Python 3 的 MonkeyType 工具 | 软件推介

开源中国 • 6 年前 • 438 次点击  


Instagram 宣布将其 MonkeyType 工具开源。它是通过运行时跟踪类型自动将类型注释添加到您的 Python 3 代码的工具。


授权协议:BSD

开发语言:Python

操作系统:跨平台



该公司拥有数百名工程师,编译了超过一百万行代码。它不断地在生产环境中添加新的代码,所以公司需要一种方法来使开发人员更容易阅读和理解代码,同时减少潜在的错误代码。


“在 MonkeyType 的帮助下,我们已经在代码库中对三分之一的功能进行了注释,而且我们已经看到了类型检查会捕获更多的错误。”Instagram 基础设施团队工程师 Carl Meyer 在一篇文章中写道。



使用


在 MonkeyType 可以告诉我们任何有用的东西之前,我们需要让它跟踪一些函数调用。最简单的方法是 monkeytype run 在 MonkeyType 跟踪下运行任何 Python 脚本。例如,您可以在 MonkeyType 下轻松运行您的测试套件:


$ monkeytype run runtests.py


或者:


monkeytype run `which pytest`


当你的测试运行时,MonkeyType检查每个函数调用的参数类型和返回/ yield类型,并将它们记录在数据库中。(默认情况下,它将它们保存在本地SQLite数据库中,但像MonkeyType一样,这是可配置的。)


当然,你的测试套件可能不提供最好的类型信息 - 有时候测试使用的是假类型,而不是真正的类型,我们发现很多情况下类型检查显示我们的测试意外地从生产中传入不同的类型。


因此,如果您不想基于测试套件进行注释,则可以记录生产运行时的调用跟踪。对于这个用例,MonkeyType提供了一个上下文管理器API


from monkeytype import trace

with trace():

    # ...



推荐阅读

思维导图 | HTTP 超文本协议,让 HTTP 不再难懂

开发者不可错过的开源项目 —— 人工智能篇

专家预言 2040 年,机器将代替人类编写代码!程序员要下架啦?

要火!Python 纳入高考科目;PHP、JS 等主流编程语言爆安全漏洞

如何愉快的使用 MQ - 详述各种功能场景

点击“阅读原文”查看更多精彩内容


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/uIqhIRLkT2
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4847
 
438 次点击