带有线程安全连接池、文件投递等的异步http库。
yieldfrom.urllib3的Python项目详细描述
这是怎么回事?
yieldfrom是一个移植各种有用的python 3库的项目,包括标准库和其他库, 在异步模式下工作。其目的是使港口尽可能与原来的港口相似,以便 学习曲线最小,使依赖模块的移植尽可能简单。
此包是urllib3包的端口。
一些函数、方法和属性已成为协同程序。这份文件列举了一些 关于如何使用不同的注释。除了这里提到的,类、方法和函数 名字都一样,用的也一样。
由于'yield from coroutine'语句阻塞当前方法,直到语句完成,所以 可以用语句替换原来的语句,并且应用程序的架构不变。不 在任何地方回拨。
进口
而不是像这样导入:
from urllib.connections import HTTPConnection from urllib import connections
- 使用:
- 从yieldfrom.urllib.connections导入httpconnection from yieldfrom.urllib导入连接
类httpconnection和httpscoconnection
connect方法现在是一个协程。使用yield from调用它,比如“c=yield from conn.connect(…)”,然后 否则参数列表是相同的。
类httpconnectionpool、poolmanager和proxymanager
这些类都有特征方法urlopen,request,request编码,以及request编码,其中 变成了联程旅行。参数列表不变,功能不变。就这么叫吧 “屈服于”作为一种合作。
类HttpResponse
有一个新方法,init()是一个协程。它的函数是由 urllib3,但此处需要异步。协程构造函数会很困难,因此异步部分是 移到init()方法。在构造HttpResponse之后,将其作为协同程序运行。一般来说 模块不会直接创建httpresponse,所以这应该不是什么大问题。
read,readinto,stream方法都是协程的。属性data实际上是一个属性,现在 一个协程,应该用yieldfrom语法引用,比如'd=yield from resp.data'。
来自httplibclassmethod的也是一个协程,尽管您可能不会直接使用它。
stream方法实际上并不流,而是预加载主体并模拟流以实现兼容性 使用该方法的模块和应用程序。
否则
除上述更改外,API与原始版本相同,优秀文档可在以下网址找到: urllib3<;http://urllib3.readthedocs.org>;。
更改
2014年12月29日
0.1.2版
删除了导致“未验证连接”错误警报的错误 修复了从模块中明确导入yieldfrom的测试导入 在测试中修复错误。
2014年10月10日
0.1.1版
转换为异步