Skip to main content

tornado.util —通用实用程序

其他效用函数和类。

此模块由Tornado内部使用。不一定期望这里定义的函数和类将对其他应用程序有用,但是在这里它们被记录在案。

该模块的一个面向公众的部分是 Configurable 类及其 configure 方法,它成为其子类的接口的一部分,包括 AsyncHTTPClientIOLoopResolver

class tornado.util.ObjectDict[源代码]

使字典表现得像一个对象,具有属性样式访问。

class tornado.util.GzipDecompressor[源代码]

流式gzip解压缩程序。

接口类似于 zlib.decompressobj (没有一些可选参数,但它理解gzip头和校验和。

decompress(value, max_length=None)[源代码]

解压缩一个块,返回新的可用数据。

一些数据可以被缓冲用于以后的处理;当没有更多的输入数据时,必须调用 flush,以确保处理所有数据。

如果给出 max_length,则在 unconsumed_tail 中可能留下一些输入数据;您必须检索该值,并将其传递回将来调用 decompress 如果它不是空的。

unconsumed_tail

返回剩余的未使用部分

flush()[源代码]

返回解压缩尚未返回的任何剩余缓冲数据。

还检查错误,如截断的输入。在 flush 之后,不能对此对象调用其他方法。

tornado.util.import_object(name)[源代码]

按名称导入对象。

import_object(’x’)相当于’import x’。 import_object(’x.y.z’)等价于’from x.y import z’。

>>> import tornado.escape
>>> import_object('tornado.escape') is tornado.escape
True
>>> import_object('tornado.escape.utf8') is tornado.escape.utf8
True
>>> import_object('tornado') is tornado
True
>>> import_object('tornado.missing_module')
Traceback (most recent call last):
    ...
ImportError: No module named missing_module
tornado.util.errno_from_exception(e)[源代码]

从异常对象提供errno。

有些情况下,errno属性没有设置,所以我们把errno从args,但如果有人实例化一个没有任何参数的异常,你会得到一个元组错误。所以这个函数抽象所有的行为,给你一个安全的方式来获取errno。

tornado.util.re_unescape(s)[源代码]

取消转义由 re.escape 转义的字符串。

可以为不能由 re.escape 生成的正则表达式生成 ValueError (例如,包含 \d 的字符串不能被转义)。

4.4 新版功能.

class tornado.util.Configurable[源代码]

可配置接口的基类。

可配置接口是(抽象)类,其构造函数作为其实现子类之一的工厂函数。实现子类以及其初始化器的可选关键字参数可以在运行时使用 configure 在全局设置。

通过使用构造函数作为工厂方法,接口看起来像一个普通的类,isinstance 像往常一样工作等。当实现的选择可能是一个全局决定时,这种模式是最有用的(例如,当 epoll 可用时,总是使用它而不是 select),或者当一个以前的整体类已经拆分成专门的子类。

可配置子类必须定义类方法 configurable_baseconfigurable_default,并使用实例方法 initialize 而不是 __init__

classmethod configurable_base()[源代码]

返回可配置层次结构的基类。

这通常返回它被定义的类。 (这是 not 必须与cls classmethod参数相同)。

classmethod configurable_default()[源代码]

返回如果未配置任何配置则要使用的实现类。

initialize()[源代码]

初始化 Configurable 子类实例。

可配置类应该使用 initialize 而不是 __init__

在 4.2 版更改: 现在除了关键字参数外,还接受位置参数。

classmethod configure(impl, **kwargs)[源代码]

设置在实例化基类时要使用的类。

关键字参数将被保存并添加到传递给构造函数的参数中。这可以用于设置某些参数的全局默认值。

classmethod configured_class()[源代码]

返回当前配置的类。

class tornado.util.ArgReplacer(func, name)[源代码]

替换 args, kwargs 对中的一个值。

检查函数签名以按名称查找参数,以查找它是通过位置还是关键字传递。用于装饰和类似的包装。

get_old_value(args, kwargs, default=None)[源代码]

返回命名参数的旧值,而不替换它。

如果参数不存在,则返回 default

replace(new_value, args, kwargs)[源代码]

args, kwargs 中的命名参数替换为 new_value

返回 (old_value, args, kwargs)。返回的 argskwargs 对象可能与输入对象不同,或者输入对象可能会发生突变。

如果未找到命名参数,则 new_value 将添加到 kwargs,None将作为 old_value 返回。

tornado.util.timedelta_to_seconds(td)[源代码]

相当于td.total_seconds()(在python 2.7中介绍)。