@abc.abstractmethod<EOL><INDENT>def get_key(self, key):<DEDENT>
pass<EOL>
Returns the value associated with the ``key``.

TODO this should be named get_by_key or just simply get(key), get_key sounds like it would return a key