tornado.util
——通用工具¶
其他实用程序函数和类。
此模块由Tornado内部使用。不一定期望这里定义的函数和类对其他应用程序有用,但是如果它们是这样的话,它们会被记录在这里。
本单元中面向公众的部分是 Configurable
类及其 configure
方法,它成为其子类的接口的一部分,包括 AsyncHTTPClient
, IOLoop
和 Resolver
.
- class tornado.util.TimeoutError[源代码]¶
异常由以下人员引发
gen.with_timeout
和IOLoop.run_sync
。在 5.0 版更改: 统一的
tornado.gen.TimeoutError
和tornado.ioloop.TimeoutError
作为tornado.util.TimeoutError
. 两个以前的名字仍然是别名。在 6.2 版更改:
tornado.util.TimeoutError
is an alias toasyncio.TimeoutError
- class tornado.util.GzipDecompressor[源代码]¶
流式gzip解压缩程序。
接口类似于
zlib.decompressobj
(没有一些可选参数,但它了解gzip头和校验和。
- tornado.util.import_object(name: str) Any [源代码]¶
按名称导入对象。
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: BaseException) Optional[int] [源代码]¶
从异常对象提供errno。
有些情况下没有设置errno属性,因此我们将errno从参数中拉出,但如果有人在没有任何参数的情况下实例化异常,则会得到元组错误。所以这个函数抽象了所有的行为,为您提供一个安全的方法来获取errno。
- tornado.util.re_unescape(s: str) str [源代码]¶
逃过一条线
re.escape
.可以提高
ValueError
对于无法由生成的正则表达式re.escape
(例如,包含\d
不能取消捕获)。4.4 新版功能.
- class tornado.util.Configurable(*args: Any, **kwargs: Any)[源代码]¶
可配置接口的基类。
可配置接口是一个(抽象)类,其构造函数充当其实现子类之一的工厂函数。可以在运行时使用全局设置其初始值设定项的实现子类以及可选关键字参数
configure
.通过使用构造函数作为工厂方法,接口看起来像一个普通类,
isinstance
像往常一样工作,等等。当实施的选择可能是一个全局决策时(例如,当epoll
是可用的,总是使用它而不是select
或者当以前的单块类被拆分成专门的子类时。可配置的子类必须定义类方法
configurable_base
andconfigurable_default
, and use the instance methodinitialize
instead of_ _init__
.在 5.0 版更改: 现在可以在类层次结构的多个级别上指定配置。
- initialize() None ¶
初始化
Configurable
子类实例。可配置类应该使用
initialize
instead of_ _init__
.在 4.2 版更改: 现在除了关键字参数外,还接受位置参数。