enhance formatters

This commit is contained in:
Christophe Benz 2010-07-11 22:00:18 +02:00
commit 5547e14e11
8 changed files with 196 additions and 65 deletions

View file

@ -43,7 +43,8 @@ class IFormatter(object):
call it. It can be used to specify the fields order.
@param obj [object] object to format
@param selected_fields [list] fields to display. If None, all fields are selected.
@param backend_name [str] name of backend, used to create object ID
@param selected_fields [tuple] fields to display. If None, all fields are selected
@param condition [Condition] condition to objects to display
@return a string of the formatted object
"""

View file

@ -15,30 +15,28 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
from .multiline import MultilineFormatter
from .simple import SimpleFormatter
__all__ = ['load_formatter']
__all__ = ['formatters']
formatters = ('htmltable', 'multiline', 'simple', 'table', 'webkit')
formatters = dict(
multiline=MultilineFormatter(),
simple=SimpleFormatter(),
)
try:
from .table import TableFormatter
formatters.update(dict(
table=TableFormatter(),
htmltable=TableFormatter(result_funcname='get_html_string'),
))
try:
def load_formatter(name):
if name not in formatters:
raise Exception(u'Formatter "%s" not found' % name)
if name in ('htmltable', 'table'):
from .table import TableFormatter
if name == 'htmltable':
return TableFormatter(result_funcname='get_html_string')
elif name == 'table':
return TableFormatter()
elif name == 'simple':
from .simple import SimpleFormatter
return SimpleFormatter()
elif name == 'multiline':
from .multiline import MultilineFormatter
return MultilineFormatter()
elif name == 'webkit':
from .webkit import WebkitGtkFormatter
formatters.update(dict(
webkit=WebkitGtkFormatter(),
))
except ImportError:
pass
except ImportError:
pass
return WebkitGtkFormatter()

View file

@ -48,7 +48,7 @@ class TableFormatter(IFormatter):
elif self.result_funcname == 'get_html_string':
s+= '<p>%s</p>' % self.header
s += "\n"
table = PrettyTable(self.column_headers)
table = PrettyTable(list(self.column_headers))
for column_header in self.column_headers:
table.set_field_align(column_header, 'l')
for line in self.queue: