DictMixin is pretty cool. You just need to define getitem, setitem, delitem and keys and then you get a full dictionary interface (everything else being defined in terms of those methods). For example:
from UserDict import DictMixin
class Filesystem(DictMixin):
def __init__(self, dir):
self.dir = dir
def __getitem__(self, path):
new_path = os.path.join(self.dir, path)