file names and the values corresponding to the file contents.
"""
-import routefs
-from routes import Mapper
+
import os
+from routes import Mapper
+
+import routefs
+
+
class DictFS(routefs.RouteFS):
+ controllers = ['handler']
+
@property
def files(self):
"""
This property should be overridden in your DictFS descendant
"""
return dict()
-
+
def make_map(self):
m = Mapper()
-
+
m.connect('*path', controller='handler')
-
+
return m
-
+
def handler(self, path, **kwargs):
if path != '':
elements = path.split(os.path.sep)
else:
elements = []
-
+
try:
tree = self.files
for elt in elements:
tree = tree[elt]
except KeyError:
return
-
+
if type(tree) is dict:
- return routefs.Directory(tree.keys())
+ return tree.keys()
else:
return tree