traversalkit.cache
¶
Cache¶
-
class
traversalkit.cache.
Cache
(*args, **kw)¶ Resource cache.
Provides regular mutable mapping interface with additional
readonly
method. Thereadonly
returns a context manager, that can be used to temporary freeze cache state.>>> cache = Cache() >>> cache['x'] = 1 >>> cache['y'] = 2 >>> cache == {'x': 1, 'y': 2} True >>> with cache.readonly(): ... cache['x'] = 3 ... del cache['y'] >>> cache == {'x': 1, 'y': 2} True
It is useful when you do not want to cache child resources:
>>> from traversalkit import Resource, DEC_ID >>> class Users(Resource): ... ''' Collection of users ''' >>> @Users.mount_set(DEC_ID, metaname='user_id') ... class User(Resource): ... ''' User resource ''' >>> users = Users() >>> with users.__cache__.readonly(): ... user_1 = users['1'] >>> user_2 = users['2'] >>> users['2'] is user_2 True >>> users['1'] is user_1 False