diff options
Diffstat (limited to 'python/skytools/adminscript.py')
-rw-r--r-- | python/skytools/adminscript.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/python/skytools/adminscript.py b/python/skytools/adminscript.py index 713e1843..ec81aa8f 100644 --- a/python/skytools/adminscript.py +++ b/python/skytools/adminscript.py @@ -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 |