Source code for objcache.logic.subpath
from typing import Sequence
from BTrees.OOBTree import OOBTree
[docs]def get_result_subpath(root, cache_path: Sequence[str], create_oobtree: bool = False):
result_path = root
for part in cache_path[:-1]:
try:
result_path = result_path[part]
except KeyError as e:
if create_oobtree:
# Creates collections on the way to getting nested key
result_path[part] = OOBTree()
result_path = result_path[part]
else:
raise e
return result_path