Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cfg = {
- 'level_1': {
- 'level_2': {
- 'item1': 10,
- 'item2': 20,
- }
- }
- }
- class Cache:
- def __init__(self, **data):
- self.nodes = data
- def get(self, uri=None):
- def walk(_uri, nodes):
- parts = _uri.split('/', 1)
- key = parts.pop(0)
- if key in nodes:
- node = nodes[key]
- if not parts:
- return node
- else:
- return walk(parts[0], node)
- return walk(uri, self.nodes)
- def set(self, uri, value=None):
- def walk(_uri, nodes):
- parts = _uri.split('/', 1)
- key = parts.pop(0)
- if key in nodes and parts:
- return walk(parts[0], nodes[key])
- elif len(_uri.split('/')) == 1:
- nodes[key] = value
- return walk(uri, self.nodes)
- c = cache = Cache(**cfg)
- print(c.get('level_1/level_2/item2'))
- c.set('level_1/level_2/item3', 100)
- print(c.get('level_1/level_2/item3'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement