各种装饰功能。
cs.deco的Python项目详细描述
最新版本20190830.2: 打一些可靠的getattr电话。
各种装饰功能。
函数缓存(*da,**dkw)
decorator以缓存方法的结果并保留修订 记录更改。
缓存的值存储在实例上(self
)。
修订计数器支持修订后的装饰符。
这个装饰器可以在两种模式下使用。 直接:
@cached
def method(self, ...)
或间接地:
@cached(poll_delay=0.25)
def method(self, ...)
可选关键字参数:
attr_name
:支持属性的基名称。 默认值:方法的名称。轮询延迟
:轮询之间的最短时间;在第一次轮询之后 访问,在轮询延迟
过去之前的后续访问 将返回缓存的值。 默认值:无
,表示无轮询延迟。sig_func
:一个签名函数,它应该是 比这种方法便宜。如果签名不变,则 将返回缓存值。签名函数 期望实例(self
)作为其第一个参数。 默认值:无
,表示无签名功能; 第一个计算值将被保留且永不更新。未设置值
:方法之前要返回的值 调用成功。 默认值:无
如果该方法引发异常,则将记录该异常并 方法将返回先前缓存的值, 除非还没有缓存值 在这种情况下,将引发异常。
如果签名函数引发异常 然后发出日志消息,签名被视为未更改。
使用这个装饰器的一个例子可能是保持一个"live" 配置数据结构,从配置中分析 程序启动后可能被修改的文件。一 可能会提供一个签名函数,该函数调用 在调用完全读取和 分析文件。
功能decorator(deco)
装饰函数的包装器,以支持可选参数。
实际的decorator函数最终被调用为:
mydeco(func, *da, **dkw)
允许da
和dkw
影响装饰器的行为mydeco
示例:
@decorator
def mydeco(func, *da, kw=None):
... decorate func subject to the values of da and kw
@mydeco
def func1(...):
...
@mydeco('foo', arg2='bah')
def func2(...):
...
功能fmtdoc(func)
用该字符串替换函数的docstring的decorator 根据函数的模块格式化
它支持简单的格式化文档字符串:
ENVVAR_NAME = 'FUNC_DEFAULT'
@fmtdoc
def func():
"""Do something with os.environ[{ENVVAR_NAME}]."""
print(os.environ[ENVVAR_NAME])
这将提供func
此文档字符串:
Do something with os.environ[FUNC_DEFAULT].
警告:此装饰器用于连接"常量" 进入docstring,而不是动态值。用于其他类型 的值应该考虑到恐惧。
函数可观察类(属性名,仅不相等=false)
类装饰器,使各种实例属性可见。
参数:
属性名称
: 要设置为 可观察的特性。特殊情况下,单个str
可以 只提供一个要观察的属性。只有不相等的
: 仅当新属性值不是 等于上一个proerty值。这需要属性 不平等的可比值。 默认值:false
,表示将报告所有更新。
功能strable(*da,**dkw)
可接受str
而不是他们的核心类型。
参数:
函数
:要修饰的函数打开函数:用于生成核心类型的"打开"工厂 如果提供了字符串; 默认值是内置的"打开"功能
通常(默认)的例子是处理
打开文件,设计为可递一个文件对象,但是它可以
用文件名调用。如果第一个参数是astr
然后打开该文件并用
打开文件。
示例:
@strable
def count_lines(f):
return len(line for line in f)
class Recording:
"Class representing a video recording."
...
@strable(open_func=Recording)
def process_video(r):
... do stuff with `r` as a Recording instance ...
发布日志
版本20190830.2: 打一些可靠的getattr电话。
发布日期20190830.1: @decorator:设置包装的模块。
发布日期20190830:
@decorator:从修饰的目标aids cs.distinf设置包装的模块
发布日期20190729:
@缓存:侧步未初始化值。 发布日期20190601.1:
@strable:修复docstring中的示例。 发布日期20190601:
bugfix@decorator以正确传播子decorator的docstring。
改进其他文档字符串。 发布日期20190526:
@decorator:添加对位置参数的支持并重写-更简单、更清晰。 发布日期20190512:
@fmtdoc:请注意不要误用此装饰器。 发布日期20190404:
新的@fmtdoc decorator,根据模块的全局设置函数的doctsring格式。 发布日期20190403:
@缓存:错误修复:避免在第一次传递时使用unset sig_func值。
@可观察类:进一步调整。 发布日期20190322.1:
@可观察类:bugfixinit包装函数。 发布日期20190322:
新类decorator@observate_class。
"警告"的错误修复导入 发布日期20190309:
@缓存:改进异常处理。 发布日期20190307.2:
修复docstring错误。 发布日期20190307.1:
bugfix@decorator:装饰装修的最后一步。 发布日期20190307:
@decorator:删除未使用的参数,它们将被返回的decorator使用。
重新设计@cached逻辑。 发布日期20190220:
bugfix@decorator decorator,不要装饰两次。
继承修饰过的函数的docstring有一个切入点。 发布日期20181227:
新decortor@strable for函数,它可以接受str而不是其主类型。
对@cached的改进。 发布日期20171231:
初始PYPI版本。推荐PyPI第三方库