]> git.decadent.org.uk Git - dak.git/blobdiff - dakweb/queries/madison.py
Instead of doing our own (bad) help, simply use existing epydoc foo and redirect...
[dak.git] / dakweb / queries / madison.py
index d27d4784864caa1fbf9b2696dfbf1bcbe6d93eba..023f67d03bcadd64475a0b9c738aa309cc408797 100644 (file)
@@ -1,3 +1,11 @@
+""" "Madison" interface
+
+@contact: Debian FTPMaster <ftpmaster@debian.org>
+@copyright: 2014  Ansgar Burchardt <ansgar@debian.org>
+@copyright: 2014  Joerg Jaspert <joerg@debian.org>
+@license: GNU General Public License version 2 or later
+"""
+
 import bottle
 import json
 
@@ -6,6 +14,23 @@ from dakweb.webregister import QueryRegister
 
 @bottle.route('/madison')
 def madison():
+    """
+    Display information about B{package(s)}.
+
+    @since: December 2014
+
+    @keyword package: Space seperated list of packages.
+    @keyword b: only show info for a binary type. I{deb/udeb/dsc}
+    @keyword c: only show info for specified component(s). I{main/contrib/non-free}
+    @keyword s: only show info for this suite.
+    @keyword S: show info for the binary children of source pkgs. I{true/false}
+    @keyword f: output json format. I{json}
+    @see: L{I{suites}<dakweb.queries.suite.suites>} on how to receive a list of valid suites.
+
+    @rtype: text/plain or application/json
+    @return: Text or Json format of the data
+    """
+
     r = bottle.request
 
     packages = r.query.get('package', '').split()
@@ -24,12 +49,19 @@ def madison():
         kwargs['source_and_binary'] = True
     #if 'r' in r.query:
     #    kwargs['regex'] = True
+    format = r.query.get('f', None)
+    if format is not None:
+        kwargs['format'] = 'python'
 
     result = list_packages(packages, **kwargs)
 
-    bottle.response.content_type = 'text/plain'
-    for row in result:
-        yield row
-        yield "\n"
+    if format is None:
+        bottle.response.content_type = 'text/plain'
+        for row in result:
+            yield row
+            yield "\n"
+    else:
+        yield json.dumps(list(result))
+
 
 QueryRegister().register_path('/madison', madison)