AdminScript.display_table: allow field formatter function
authorEgon Valdmees <egon.valdmees@skype.net>
Fri, 11 Feb 2011 11:35:19 +0000 (13:35 +0200)
committerMarko Kreen <markokr@gmail.com>
Fri, 11 Feb 2011 13:54:22 +0000 (15:54 +0200)
python/skytools/adminscript.py

index 713e184328dd1000857fca8cdbdc3185a2d2d1d3..ec81aa8fbd50051fc5b289d1396e42c687d08c22 100644 (file)
@@ -68,7 +68,8 @@ class AdminScript(DBScript):
             res = [r[keycol] for r in rows]
         return res
 
-    def display_table(self, db, desc, sql, args = [], fields = []):
+    def display_table(self, db, desc, sql, args = [], fields = [],
+                      fieldfmt = {}):
         """Display multirow query as a table."""
 
         self.log.debug("display_table: %s" % quote_statement(sql, args))
@@ -96,9 +97,14 @@ class AdminScript(DBScript):
         print(fmt % tuple(fields))
         print(fmt % tuple([ '-' * (w - 2) for w in widths ]))
         #print(fmt % tuple(['-'*15] * len(fields)))
-
         for row in rows:
-            print(fmt % tuple([row[k] for k in fields]))
+            vals = []
+            for field in fields:
+                val = row[field]
+                if field in fieldfmt:
+                    val = fieldfmt[field](val)
+                vals.append(val)
+            print(fmt % tuple(vals))
         print('\n')
         return 1