dbt-selly/dbt-env/lib/python3.8/site-packages/agate/tableset/print_structure.py

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)