面向人类的装饰器
项目描述
decorator模块的目标是使定义签名保留函数装饰器和装饰器工厂变得容易。它还包括多态和其他一些小玩意儿的实现(请查看文档)。它以两条款BSD许可证发布,即基本上你可以用它做任何你想做的事,但我对此不承担责任。
安装
如果你很懒,只需执行
$ pip install decorator
这将仅在你的系统上安装该模块。
如果你更喜欢从源代码安装完整分布,包括文档,克隆GitHub存储库或下载存档,解压它并在主目录中运行
$ pip install .
作为超级用户。
测试
如果你有源代码安装,你可以使用以下命令运行测试
$ python src/tests/test.py -v
或者(如果你已安装setuptools)
$ python setup.py test
请注意,如果在您的系统中存在装饰器模块的旧版本,您可能会遇到麻烦;在这种情况下,请删除旧版本。即使是复制模块decorator.py到现有的一个,也是安全的,因为我们保持了很长时间的向后兼容性。
存储库
项目托管在GitHub上。您可以在这里查看源代码
文档
文档已迁移至 https://github.com/micheles/decorator/blob/master/docs/documentation.md
您可以从那里通过使用浏览器中的打印功能获得PDF版本。
以下是模块先前版本的文档
https://github.com/micheles/decorator/blob/4.3.2/docs/tests.documentation.rst https://github.com/micheles/decorator/blob/4.2.1/docs/tests.documentation.rst https://github.com/micheles/decorator/blob/4.1.2/docs/tests.documentation.rst https://github.com/micheles/decorator/blob/4.0.0/documentation.rst https://github.com/micheles/decorator/blob/3.4.2/documentation.rst
对于急于了解的人
以下是如何定义一组跟踪慢操作的装饰器的示例
from decorator import decorator
@decorator
def warn_slow(func, timelimit=60, *args, **kw):
t0 = time.time()
result = func(*args, **kw)
dt = time.time() - t0
if dt > timelimit:
logging.warn('%s took %d seconds', func.__name__, dt)
else:
logging.info('%s took %d seconds', func.__name__, dt)
return result
@warn_slow # warn if it takes more than 1 minute
def preprocess_input_files(inputdir, tempdir):
...
@warn_slow(timelimit=600) # warn if it takes more than 10 minutes
def run_calculation(tempdir, outdir):
...
享受!
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。