pyefun.模块.缓存工具 源代码

"""

.. Hint::
    缓存工具 用于快速缓存函数结果的

.. literalinclude:: ../../../pyefun/缓存工具_test.py
    :language: python
    :caption: 代码示例
    :linenos:
    :lines: 1-100

"""


import ubelt as ub
from os.path import basename


[文档]class 缓存(ub.Cacher): def __init__(self, 前缀='cache', key="", 缓存目录="./cache/", 扩展名=".pkl", 启用=True, 信息级别=3, 哈希类型="sha1", 协议版本=4, ): "显示 0 不显示 1结束显示 2概率显示 3全部显示" # ProgIter(iterable=迭代对象,total=总数, desc=描述, show_times=False, verbose=显示) super().__init__( fname=前缀, depends=ub.hash_data(key), dpath=缓存目录, # appname="my", ext=扩展名, verbose=信息级别, enabled=启用, hasher=哈希类型, protocol=协议版本, )
[文档] def 取缓存文件路径(self, cfgstr=None): return self.get_fpath(cfgstr)
[文档] def 是否存在(self, cfgstr=None): return self.exists(cfgstr)
[文档] def 取缓存文件列表(self, cfgstr=None): exist_fnames = list(map(basename, self.existing_versions())) return exist_fnames
[文档] def 清空(self, cfgstr=None): return self.clear(cfgstr)
[文档] def 读入(self, cfgstr=None): return self.tryload(cfgstr)
[文档] def 保存(self, data, cfgstr=None): self.save(data, cfgstr)
[文档]class 缓存标记(ub.CacheStamp): def __init__(self, 前缀='cache', key="", 缓存目录="./cache/", 启用=True, 信息级别=3, 哈希类型="sha1", ): "显示 0 不显示 1结束显示 2概率显示 3全部显示" # ProgIter(iterable=迭代对象,total=总数, desc=描述, show_times=False, verbose=显示) super().__init__( fname=前缀, depends=ub.hash_data(key), dpath=缓存目录, # appname="my", verbose=信息级别, enabled=启用, hasher=哈希类型, )
[文档] def 检查标记(self, cfgstr=None): return self.expired(cfgstr)
[文档] def 保存标记(self, cfgstr=None, product=None): return self.renew(cfgstr, product)