timeutils¶
与时间相关的工具和辅助函数。
- class oslo_utils.timeutils.Split(elapsed, length)¶
一个不可变的秒表分段。
参见: http://en.wikipedia.org/wiki/Stopwatch 了解其含义/代表的内容。
1.4 版本中添加。
- property elapsed¶
从秒表开始算起的时长。
- property length¶
自上次分段以来的秒数(如果没有先前的分段,则为经过的时间)。
- class oslo_utils.timeutils.StopWatch(duration=None)¶
一个简单的计时器/秒表辅助类。
灵感来自: apache-commons-lang java 秒表。
非线程安全的(当单个秒表被多个线程同时修改时)。当由单个线程使用(不共享)或通过锁在这些对象上以线程安全的方式执行操作时,它是线程安全的。
1.4 版本中添加。
- __enter__()¶
启动秒表。
- __exit__(type, value, traceback)¶
停止秒表(如果停止失败则忽略错误)。
- elapsed(maximum=None)¶
返回经过的秒数。
- expired()¶
返回秒表是否已过期(即,提供的持续时间已过去)。
- has_started()¶
返回 True 如果秒表处于启动状态。
- has_stopped()¶
返回 True 如果秒表处于停止状态。
- leftover(return_none=False)¶
返回直到秒表过期还剩多少秒。
- 参数:
return_none (布尔值) – 当
True时,如果没有设置持续时间,此调用将返回None而不是引发RuntimeError。
- restart()¶
从启动/停止状态重新启动秒表。
- resume()¶
从停止状态恢复秒表。
- split()¶
捕获一个分段/自开始以来的经过时间(并且不停止)。
- property splits¶
访问器,用于所有/任何已捕获的分段。
- start()¶
启动秒表(如果尚未启动)。
注意(harlowja): 重置先前捕获的任何分段(如果有)。
- stop()¶
停止秒表。
- oslo_utils.timeutils.advance_time_delta(timedelta)¶
使用 datetime.timedelta 推进被覆盖的时间。
- oslo_utils.timeutils.advance_time_seconds(seconds)¶
按秒推进被覆盖的时间。
- oslo_utils.timeutils.clear_time_override()¶
移除被覆盖的时间。
- oslo_utils.timeutils.delta_seconds(before, after)¶
返回两个时间对象之间的差值。
计算两个日期、时间或 datetime 对象之间的秒数差(以微秒为单位,作为浮点数)。
- oslo_utils.timeutils.is_newer_than(after, seconds)¶
如果 after 比 seconds 更新,则返回 True。
版本 1.7 中更改: 接受带有时区信息的 datetime 字符串。修复与时区感知 datetime 的比较。
- oslo_utils.timeutils.is_older_than(before, seconds)¶
如果 before 比 seconds 更旧,则返回 True。
版本 1.7 中更改: 接受带有时区信息的 datetime 字符串。修复与时区感知 datetime 的比较。
- oslo_utils.timeutils.is_soon(dt, window)¶
确定时间是否会在接下来的 window 秒内发生。
- 参数:
dt – 时间
window – 剩余的最小秒数,以认为时间不快
- 返回值:
如果到期时间在给定的持续时间内,则返回 True。
- oslo_utils.timeutils.marshall_now(now=None)¶
创建一个具有微秒的 rpc 安全的 datetime。
版本 1.6 中更改: 现在序列化时区信息,而不是将其剥离。
- oslo_utils.timeutils.normalize_time(timestamp)¶
将任意时区中的时间标准化为 UTC 无知对象。
- oslo_utils.timeutils.parse_isotime(timestr)¶
从 ISO 8601 格式解析时间。
- oslo_utils.timeutils.parse_strtime(timestr, fmt='%Y-%m-%dT%H:%M:%S.%f')¶
将格式化的时间转换回 datetime。
- oslo_utils.timeutils.set_time_override(override_time=None)¶
覆盖 utils.utcnow。
使其返回一个常量时间或一个列表,一次一个。
参见
oslo_utils.fixture.TimeFixture。- 参数:
override_time – datetime 实例或列表。如果未提供,则默认为当前 UTC 时间。
- time_it(logger, log_level=10, message="运行函数 '%(func_name)s' 耗时 %(seconds).02f 秒", enabled=True, min_duration=0.01)¶
装饰器,将记录其装饰的函数运行所需的时间。
如果装饰的函数出现异常,则此装饰器不会输出日志。
- 参数:
logger – 用于记录经过时间的日志记录器实例
log_level – 用于记录经过时间的日志记录器日志级别
message – 用于记录经过时间的自定义消息,如果找到这些值有用,该消息可以使用自动提供的
%(seconds)和%(func_name)值enabled – 是否启用此装饰器(有用的是用此装饰器装饰一个函数,然后通过一些配置或其他值轻松地关闭该装饰器)
min_duration – 一个参数,用于确定是否触发日志记录,默认设置为 0.01 秒,以避免在持续时间和/或经过的函数调用时间小于 0.01 秒时进行日志记录,要禁用任何
min_duration检查,此值应设置为小于或等于零或设置为 None
- oslo_utils.timeutils.unmarshall_time(tyme)¶
取消序列化 datetime 字典。
版本 1.5 中更改: 删除闰秒。
版本 1.6 中更改: 添加了对时区信息的支持。
- oslo_utils.timeutils.utcnow(with_timezone=False)¶
可重写的 utils.utcnow 版本,可以返回一个 TZ 感知 datetime。
参见
oslo_utils.fixture.TimeFixture。版本 1.6 中更改: 添加了 with_timezone 参数。
- oslo_utils.timeutils.utcnow_ts(microsecond=False)¶
utcnow 函数的时间戳版本。
参见
oslo_utils.fixture.TimeFixture。版本 1.3 中更改: 添加了可选的 microsecond 参数。