'Retrieve a value from the cache, using the given creation function
to generate a new value.
This function *must* return a value, either from
the cache, or via the given creation function.
If the creation function is called, the newly
created value should be populated into the cache
under the given key before being returned.
:param key: the value\'s key.
:param creation_function: function that when called generates
a new value.
:param \**kw: cache configuration arguments.'

def get_or_create(self, key, creation_function, **kw):

    raise NotImplementedError()
