LazyFileCacheStore 类

由本地文件系统支持的缓存存储。

我们认为这是一个“惰性”存储,因为它不会预先提取 saved_as 信息。 只需改为加载元数据并利用文件扩展名来反序列化对象。

此缓存存储支持具有命名空间的键(作为 posix 路径),以帮助区分 b/w 重复键(即可以添加键“foo/bar/a”和“a”),因为前者位于与后者(默认命名空间下)不同的命名空间 (foo/bar) 下。 如果添加了多个具有相同名称和命名空间的键,则将覆盖这些值(即,以最后一次写入为准)。 基础存储机制会创建由命名空间表示的子目录,用于存储该键表示的序列化对象。 例如,完全限定的键(如“foo/bar/a”)将在根缓存文件夹下创建所需的子目录 “$CACHE_ROOT/foo/bar”,并将序列化的文件存储在该文件夹下。

若要将具有命名空间的键与此缓存存储一起使用,请在调用 add() 或 set() 方法时传入 posix 格式的键。 例如 cache_store.set(“a/new/directory/my_key”,这是 my_key 的值)

从缓存存储中检索键时(通过 . cache_store.get(...)),客户端可以选择包括或忽略默认命名空间。 例如,如果将“_foo”添加到缓存存储,cache_store.get([DEFAULT_NAMESPACE_foo]) 和 cache_store.get(["_foo"]) 都将导致缓存命中(通过 . cache_store.add(["_foo], ...))

继承
LazyFileCacheStore

构造函数

LazyFileCacheStore(path: str)

参数

path

方法

add

序列化值,并将其添加到缓存和本地文件系统。

add_dir

将有效的本地目录添加到缓存存储。

添加 dir 键后,将不允许使用任何 dir 键作为前缀的新键。 这是为了使 dir 键内的内容保持一致并防止任何文件冲突。 例如,如果添加 dir 键“/foo/bar”,然后添加“/foo/bar/a”,则会引发异常。

get

从存储中获取反序列化的对象。

get_available_keys

获取缓存存储中可用的文件,并创建指向其在基础存储上路径的键(带有文件扩展名)的映射。此方法通过指定的路径下的可用文件 以递归方式发现键。

get_dir

获取目录的本地路径。

load

从存储中加载。

remove

从存储区中删除键。

remove_all

从存储中删除所有缓存。

set

设置为“存储”。

unload

从存储中卸载。

add

序列化值,并将其添加到缓存和本地文件系统。

add(keys: Iterable[str], values: Iterable[Any]) -> None

参数

keys
必需

存储键

values
必需

存储值

add_dir

将有效的本地目录添加到缓存存储。

添加 dir 键后,将不允许使用任何 dir 键作为前缀的新键。 这是为了使 dir 键内的内容保持一致并防止任何文件冲突。 例如,如果添加 dir 键“/foo/bar”,然后添加“/foo/bar/a”,则会引发异常。

add_dir(key: str, path: str) -> None

参数

key
str
必需

存储键

path
str
必需

指向本地目录的有效路径

get

从存储中获取反序列化的对象。

get(keys: Iterable[str], default: Optional[Any] = None) -> Dict[str, Any]

参数

keys
必需

存储键

default
默认值: None

如果不存在,则返回默认值

返回

反序列化的对象

get_available_keys

获取缓存存储中可用的文件,并创建指向其在基础存储上路径的键(带有文件扩展名)的映射。此方法通过指定的路径下的可用文件 以递归方式发现键。

get_available_keys(path: str) -> Dict[str, str]

参数

path
必需

返回

存储上的键及其对应路径的字典

get_dir

获取目录的本地路径。

get_dir(key: str) -> Optional[str]

参数

key
必需

指向目录的键

返回

本地路径(如果存在 dir 键)或 None

load

从存储中加载。

load() -> None

remove

从存储区中删除键。

remove(key: str) -> None

参数

key
必需

存储键

remove_all

从存储中删除所有缓存。

remove_all() -> None

set

设置为“存储”。

set(key: str, value: Any) -> None

参数

key
必需

存储键

value
必需

store value

unload

从存储中卸载。

unload() -> None