tornado.util
— 通用实用程序¶
各种实用程序函数和类。
此模块由 Tornado 内部使用。不一定期望此处定义的函数和类对其他应用程序有用,但它们在此处记录以备不时之需。
此模块中面向公众的部分是 Configurable
类及其 configure
方法,它成为其子类的接口的一部分,包括 AsyncHTTPClient
、IOLoop
和 Resolver
.
- class tornado.util.TimeoutError[source]¶
由
gen.with_timeout
和IOLoop.run_sync
引发的异常。在版本 5.0 中更改: 统一
tornado.gen.TimeoutError
和tornado.ioloop.TimeoutError
为tornado.util.TimeoutError
。这两个旧名称仍然作为别名存在。在版本 6.2 中更改:
tornado.util.TimeoutError
是asyncio.TimeoutError
的别名
- class tornado.util.GzipDecompressor[source]¶
流式 gzip 解压缩器。
接口类似于
zlib.decompressobj
(没有一些可选参数,但它理解 gzip 头部和校验和)。
- tornado.util.import_object(name: str) Any [source]¶
按名称导入对象。
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] [source]¶
提供来自异常对象的 errno。
在某些情况下,errno 属性未设置,因此我们从 args 中提取 errno,但如果有人在没有任何 args 的情况下实例化异常,您将收到元组错误。因此,此函数抽象了所有这些行为,为您提供了一种获取 errno 的安全方法。
- tornado.util.re_unescape(s: str) str [source]¶
取消转义由
re.escape
转义的字符串。对于无法由
re.escape
生成的正则表达式(例如,包含\d
的字符串)可能会引发ValueError
。在版本 4.4 中新增。
- class tornado.util.Configurable(*args: Any, **kwargs: Any)[source]¶
可配置接口的基类。
可配置接口是一个(抽象)类,其构造函数充当其实现子类的工厂函数。实现子类以及可选的初始化关键字参数可以在运行时通过
configure
在全局范围内设置。通过将构造函数用作工厂方法,接口看起来像一个普通的类,
isinstance
像往常一样工作,等等。这种模式在实现的选择很可能是一个全局决策时最有用(例如,当epoll
可用时,始终使用它而不是select
),或者当以前单片类被拆分为专门的子类时。可配置子类必须定义类方法
configurable_base
和configurable_default
,并使用实例方法initialize
而不是__init__
。在版本 5.0 中更改: 现在可以在类层次结构的多个级别指定配置。
- classmethod configurable_base() Type[Configurable] [source]¶
返回可配置层次结构的基类。
这通常会返回定义它的类。(这不一定与
cls
类方法参数相同)。
- classmethod configurable_default() Type[Configurable] [source]¶
如果未配置,则返回要使用的实现类。
- initialize() None ¶
初始化
Configurable
子类实例。可配置类应该使用
initialize
而不是__init__
。在版本 4.2 中更改: 现在除了关键字参数之外还可以接受位置参数。
- classmethod configure(impl: Union[None, str, Type[Configurable]], **kwargs: Any) None [source]¶
设置基类实例化时要使用的类。
关键字参数将被保存并添加到传递给构造函数的参数中。这可用于为某些参数设置全局默认值。
- classmethod configured_class() Type[Configurable] [source]¶
返回当前配置的类。
- class tornado.util.ArgReplacer(func: Callable, name: str)[source]¶
替换
args, kwargs
对中的一个值。检查函数签名以按名称查找参数,无论它是按位置还是关键字传递的。用于装饰器和类似包装器。
- tornado.util.timedelta_to_seconds(td: datetime.timedelta) float [source]¶
等效于
td.total_seconds()
(在 Python 2.7 中引入)。