]> git.donarmstrong.com Git - dak.git/blobdiff - dakweb/webregister.py
Merge remote-tracking branch 'origin/dakweb'
[dak.git] / dakweb / webregister.py
diff --git a/dakweb/webregister.py b/dakweb/webregister.py
new file mode 100644 (file)
index 0000000..d7e7990
--- /dev/null
@@ -0,0 +1,25 @@
+class QueryRegister(object):
+    __shared_state = {}
+
+    def __init__(self, *args, **kwargs):
+        self.__dict__ = self.__shared_state
+
+        if not getattr(self, 'initialised', False):
+            self.initialised = True
+
+            # Dictionary of query paths to help mappings
+            self.queries = {}
+
+    def register_path(self, path, func):
+        self.queries[path] = func.__doc__
+
+    def get_paths(self):
+        return sorted(self.queries.keys())
+
+    def get_path_help(self, path):
+        # We always register with the leading /
+        if not path.startswith('/'):
+            path = '/' + path
+        return self.queries.get(path, 'Unknown path')
+
+__all__ = ['QueryRegister']