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)
|