任意python函数的超时。

pto的Python项目详细描述


python的简单超时

Status Image

pto是麻省理工学院授权的图书馆,可以方便地对 不公开功能本身的函数的运行时。 我的灵感来自于一个需要阻止计划的工作也运行的需要 在我按小时付款的站台上。也许你只是需要 结束一个不稳定的网络呼叫。不管怎样,都很简单:

>>> from pto import timeout
>>> @timeout(5)
... def slow_func():
...     while True:
...         pass
...
>>> slow_func()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 2, in slow_func
  File "pto/__init__.py", line 97, in _timeout
    result = f(*args, **kwargs)
  File "<stdin>", line 3, in slow_func
  File "pto/__init__.py", line 89, in handle_timeout
    raise TimedOutException
pto.TimedOutException: u'Timed Out'

灵感

我是受Chris Wright’s recipe的启发才这么做的。我喜欢 食谱,但我厌倦了复制和粘贴,我不喜欢 装饰器没有保留签名、docstring等。

注意事项

这只适用于类unix平台。抱歉,Windows用户。我很乐意 为了支持windows,但是秘密的sauce(signal.alarm来自std lib)在windows上不起作用。

这并不是设计用来处理线程的,因为只有 主线程将用python接收信号。不管怎样,如果你用 线程,您可能有其他方法来处理超时。

如果要在静态方法或类方法上设置超时,则需要 首先在方法上设置超时,然后装饰包装的 使用@staticmethod@classmethod的方法。有一些例子 test_pto.py

我很确定lib在python 2.4中可以工作,但是我没有 安装在周围测试。如果有人想自愿核实 Lib 2.4,请联系我。

安装

要安装动力输出轴,只需:

$ pip install pto

或者,如果您必须这样做:

$ easy_install pto

但是,你真的不应该这么做。

历史记录

0.0.7(2013-03-14)

  • 增强忽略
  • 启用setup.py测试
  • 为Python3与Python2自定义依赖关系
  • 将Travis CI状态图像添加到readme.rst

0.0.6(2013-03-13)

  • 添加单元测试
  • 启用Travis CI
  • 在readme.rst中添加更多的注意事项/gotchas
  • 更新示例用法
  • 更新trove分类器

0.0.5(2013-03-13)

  • 在manifest.in中包含许可证的正确路径

0.0.4(2013-03-13)

  • 在PYPI页面上嵌入许可证。

0.0.3(2013-03-13)

  • pip可以实际安装的第一个版本。

0.0.2(2013-03-12)

  • 初稿

0.0.1(2013-03-11)

  • 概念

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

推荐PyPI第三方库


热门话题
具有x86javapath的x64机器上x86java上的java JNI未满足链接错误   java将Pixmap的一部分上传到GPU   图像Java位图RLE8格式   java Android studio谷歌广告崩溃应用程序   java如何创建包含未知数量对象的变量?   Java计算给定int数组的所有可能组合   java JDBC classnotfound异常   httpclient中的java将HttpEntity转换为字符串的最优雅/正确的方法是什么?   如何从Java程序运行nano?   java在安卓中调用自定义类/方法   调用方法和JOptionPane后,允许代码继续执行所需的java计时器或其他想法   关于侦听器的向量Java并发问题   线程池执行器Java线程池   java配置DTO上的Swagger javax验证约束   Java中用于按钮功能的swing操作命令   ServletOutputStream中的java设置状态代码   java打印输入数组的平均值