一个简单但有用的秒表库。

swp的Python项目详细描述


swpy:一个简单而实用的python秒表库

PyPI - Python VersionPyPICircleCIcodecovPyPI - License

要求

  • Python3.6+

安装

只需使用pip安装。

pip install swpy

用法

基本用法

swpy导入Timer类,并使用with语句将块封装到需要计时的位置。

fromswpyimportTimerfromtimeimportsleepwithTimer():sleep(1)

或者使用start()stop()函数来控制计时器。

t=Timer()t.start()sleep(1)t.stop()

输出如下:

[timer-1557406243.3309178] started.
[timer-1557406243.3309178] finish time: 1.00 sec.

功能

命名计时器

你可以给计时器起个名字让它容易辨认。

withTimer(name='test timer'):sleep(1)

现在计时器被重命名为test timer

[test timer] started.
[test timer] finish time: 1.00 sec.

圈速和分割时间

测量不停车时间有两种类型:单圈时间和分段时间。下图可能有助于您理解这些差异。

split_lap_time

我们为这种用法准备了splitlap函数。示例如下。

# measure split timewithTimer('timer')ast:sleep(1)t.split()sleep(1)t.split()sleep(1)t.split()
# outptus
[timer] started.
[timer] split time:  1.00 sec.
[timer] split time:  2.01 sec.
[timer] split time:  3.01 sec.
[timer] finish time: 3.01 sec.
# measure lap timewithTimer('timer')ast:sleep(1)t.lap()sleep(1)t.lap()sleep(1)t.lap()
# outputs
[timer] started.
[timer] lap time:    1.00 sec.
[timer] lap time:    1.01 sec.
[timer] lap time:    1.00 sec.
[timer] finish time: 3.01 sec.

在一次跑步中测量多个任务的情况下,你可以将你的圈速/分程时间命名如下。

withTimer('task timer')ast:task1()t.lap('task1')task2()t.lap('task2')
# outputs
[task timer] started.
[task timer] [task1] lap time:    3.69 sec.
[task timer] [task2] lap time:    4.21 sec.
[task timer] finish time: 7.91 sec.

使用自己的记录器

您可以使用自己的记录器,而不是默认的print

fromlogzeroimportloggerimportloggingwithTimer(name='test timer',logger=logger,level=logging.DEBUG):sleep(1)

它将使用记录器输出。

[D 190510 14:41:59 swpy:15] [test timer] started.
[D 190510 14:42:00 swpy:15] [test timer] finish time: 1.01 sec.

定义自己的回调

有时,我们想在工作完成后做一些事情,比如通知结果松弛,执行下一个进程等等。回调功能将帮助您做到这些。

# define a slack notification functionimportrequests,jsondefsend_slack(msg):requests.post(SLACK_URL,json.dumps({'text':msg}))# just specify the callback argumentwithTimer(name='experiment-1',callback=send_slack):sleep(1)

许可证

MIT

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓如何对Java中声明为开关的数组求和?   使用java将32位2的补码转换为十进制   通过Javasocket使用BufferedStream通过数据流发送文件   如何从Java中的这个ArrayList快速了解大量字符串的ArrayList中的索引?   java Android动画错误,滑出并消除   java接口在扩展已经实现接口的抽象类的类上是必需的吗?   java如何编写一个类加载器来实现这一点?   Java/JavaFX:如何使用CSScommand访问resourcesfolder(路径)   java JLS的哪一部分说匿名类不能有公共/受保护/私有成员类   java可以将OnClickListener写入可打包文件吗?   java是否可以在同一台机器上运行socket服务器和socket客户端?   java Play framework 2.6.15(SBT1.1.6)   java如何声明返回泛型类的方法?   java为什么不支持线程。isInterrupted()即使在调用线程后也返回false。currentThread()。中断()   java查找2个数组的最大长度   java如何以编程方式在Android中的google drive中创建应用程序文件夹中的文件夹   java获取鼠标单击的坐标   java当我尝试访问wsdl时,为什么会得到“日志被禁用”?