cement.ext.ext_tabulate¶
The Tabulate Extension provides output handling based on the Tabulate library. It’s format is familiar to users of MySQL, Postgres, etc.
Requirements¶
- Tabulate (
pip install tabulate)
Configuration¶
This extension does not support any configuration settings.
Usage¶
from cement.core import foundation
class MyApp(foundation.CementApp):
class Meta:
label = 'myapp'
extensions = ['tabulate']
output_handler = 'tabulate'
with MyApp() as app:
app.run()
# create a dataset
headers = ['NAME', 'AGE', 'ADDRESS']
data = [
["Krystin Bartoletti", 47, "PSC 7591, Box 425, APO AP 68379"],
["Cris Hegan", 54, "322 Reubin Islands, Leylabury, NC 34388"],
["George Champlin", 25, "Unit 6559, Box 124, DPO AA 25518"],
]
app.render(data, headers=headers)
Looks like:
| NAME | AGE | ADDRESS |
|--------------------+-----+-----------------------------------------|
| Krystin Bartoletti | 47 | PSC 7591, Box 425, APO AP 68379 |
| Cris Hegan | 54 | 322 Reubin Islands, Leylabury, NC 34388 |
| George Champlin | 25 | Unit 6559, Box 124, DPO AA 25518 |
-
class
cement.ext.ext_tabulate.TabulateOutputHandler(*args, **kw)¶ Bases:
cement.core.output.CementOutputHandlerThis class implements the IOutput interface. It provides tabularized text output using the Tabulate module. Please see the developer documentation on Output Handling.
Note This extension has an external dependency on
tabulate. You must includetabulatein your applications dependencies as Cement explicitly does not include external dependencies for optional extensions.-
class
Meta¶ Bases:
objectHandler meta-data.
-
float_format= 'g'¶ String format to use for float values.
-
format= 'orgtbl'¶ Default template format. See the
tabulatedocumentation for all supported template formats.
-
headers= []¶ Default headers to use.
-
interface¶ alias of
IOutput
-
missing_value= ''¶ Default replacement for missing value.
-
numeric_alignment= 'decimal'¶ Default alignment for numeric columns. See the
tabulatedocumentation for all supportednumalignoptions.
-
overridable= False¶ Whether or not to include
tabulateas an available to choice to override theoutput_handlervia command line options.
-
padding= True¶ Whether or not to pad the output with an extra pre/post ‘n’
-
string_alignment= 'left'¶ Default alignment for string columns. See the
tabulatedocumentation for all supportedstralignoptions.
-
-
TabulateOutputHandler.render(data, **kw)¶ Take a data dictionary and render it into a table. Additional keyword arguments are passed directly to
tabulate.tabulate.Required Arguments:
Parameters: data_dict – The data dictionary to render. Returns: str (the rendered template text)
-
class