33 lines
907 B
Python
33 lines
907 B
Python
|
#!/usr/bin/env python
|
||
|
|
||
|
import sys
|
||
|
|
||
|
from agate.data_types import Text
|
||
|
from agate.table import Table
|
||
|
|
||
|
|
||
|
def print_structure(self, max_rows=20, output=sys.stdout):
|
||
|
"""
|
||
|
Print the keys and row counts of each table in the tableset.
|
||
|
|
||
|
:param max_rows:
|
||
|
The maximum number of rows to display before truncating the data.
|
||
|
Defaults to 20.
|
||
|
:param output:
|
||
|
The output used to print the structure of the :class:`Table`.
|
||
|
:returns:
|
||
|
None
|
||
|
"""
|
||
|
max_length = min(len(self.items()), max_rows)
|
||
|
|
||
|
name_column = self.keys()[0:max_length]
|
||
|
type_column = [str(len(table.rows)) for key, table in self.items()[0:max_length]]
|
||
|
rows = zip(name_column, type_column)
|
||
|
column_names = ['table', 'rows']
|
||
|
text = Text()
|
||
|
column_types = [text, text]
|
||
|
|
||
|
table = Table(rows, column_names, column_types)
|
||
|
|
||
|
return table.print_table(output=output, max_column_width=None)
|