上下文管理器,用于打印或记录代码块的执行时间
项目描述
supertimer
上下文管理器,用于打印或记录代码块的执行时间
原始网址: https://github.com/mariushelf/supertimer
词源
此软件包提供了一个计时器。但是“计时器”这个名字已经被占用。所以我需要一个新名字。受我对旧式超级任天堂的新鲜热情的启发,我想这个计时器也可以叫做“超级”。
用法
作为上下文管理器使用
用于记录代码块的持续时间
from supertimer import timer
import time
with timer("Sleeping a bit"):
time.sleep(2)
这将记录
Sleeping a bit starting at 2020-12-14 18:34:54.403371
Sleeping a bit finished successfully at 2020-12-14 18:34:56.404208 after 0:00:02.000837.
作为装饰器使用
from supertimer import timer
import time
@timer("Sleeping a bit")
def sleep_a_bit():
time.sleep(2)
sleep_a_bit()
每次装饰的函数被调用时,这将记录与上下文管理器相同的消息
Sleeping a bit starting at 2020-12-14 18:34:54.403371
Sleeping a bit finished successfully at 2020-12-14 18:34:56.404208 after 0:00:02.000837.
配置输出方法
默认情况下,输出记录在loglevel DEBUG
级别。
可以通过loglevel
参数更改loglevel。可以通过将print
参数设置为True
来激活将输出打印到stdout
。可以通过将log
设置为False
来禁用记录
with timer(loglevel=logging.INFO):
# logging at loglevel INFO, no printing
...
with timer(print=True, log=False):
# just printing, no logging
...
更改记录器
可以配置记录器
import logging
logger = logging.getLogger("my.custom.logger")
with timer(logger=logger):
do_something()
如果没有提供记录器,则使用名为supertimer
的记录器。
方便类
有一些方便的类,预先配置为特定的loglevel或仅打印
print_timer
debug_timer
info_timer
配置默认值
所有构造函数参数都有一个default_.*
类属性对应物,在省略参数的情况下指定默认值。
例如,要将默认loglevel更改为WARNING
,可以这样操作
timer.default_loglevel = logging.WARNING
with timer("Sleep warning"):
# log timings with loglevel `WARNING`
time.sleep(2)
with timer("Sleep debug", loglevel=logging.DEBUG):
# log timings with loglevel `DEBUG`
time.sleep(2)
如何测量时间
默认情况下,起始时间和结束时间使用 datetime.dateime.now
获取。持续时间通过计算起始时间和结束时间的差值来计算,结果是一个 datetime.timedelta
对象。
计时器函数可以被覆盖
import timeit
with timer(timer_func=timeit.default_timer):
...
timer_func
参数期望一个可调用的对象,当不带参数调用时,返回支持 minus
操作的值。
许可协议
变更日志
0.4.0
- 计时器现在可以用作装饰器
- 全局默认配置
- 额外的
log
参数 - 文档
- 将默认日志记录器的名称更改为
supertimer
0.3.0
- 方便的类
print_timer
、debug_timer
和info_timer
- 使计时器函数可配置
0.2.0
- 在执行后提及成功或错误
0.1.0
- 首次发布
作者
Marius Helf (helfsmarius@gmail.com)
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
supertimer-0.4.0.tar.gz (4.9 kB 查看哈希)
构建分发
supertimer-0.4.0-py3-none-any.whl (4.7 kB 查看哈希)
关闭
supertimer-0.4.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cd10100de792d4d287c8f6bf9a25e0eb3323fd11a8ba51e95995f5c9efe0f6f8 |
|
MD5 | 32f7a000b4bbb8dc1a7fca0655a95c79 |
|
BLAKE2b-256 | e0fb4df5fc7869b7d458ad883725def556e176792812ad560b9194dd20c7f684 |
关闭
supertimer-0.4.0-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bcebd3ecab37e8570bae44739a42d7d3b5504f6cea7b7c7fb4e1fa51ce8b2a52 |
|
MD5 | 76eb572da909c8252459c40778feb96f |
|
BLAKE2b-256 | 0510b4c1a8ff0cf870d7793fb9b31bfc76423c917eab57ed1e820a7626c1eecf |