跳转到主要内容

面向人类的装饰器

项目描述

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

文档

文档已迁移至 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):
    ...

享受!

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码发行版

decorator-5.1.1.tar.gz (35.0 kB 查看哈希)

上传时间 源代码

构建发行版

decorator-5.1.1-py3-none-any.whl (9.1 kB 查看哈希)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面