mirror of
https://github.com/KevinMidboe/tableprint.git
synced 2025-10-29 01:40:17 +00:00
Adds Table() contextmanager for easy dynamic tables 🌸
This commit is contained in:
@@ -14,6 +14,7 @@ from __future__ import print_function, unicode_literals
|
||||
from six import string_types
|
||||
from collections import namedtuple
|
||||
from numbers import Number
|
||||
from contextlib import ContextDecorator
|
||||
import sys
|
||||
import re
|
||||
import numpy as np
|
||||
@@ -68,6 +69,22 @@ WIDTH = 11
|
||||
FMT = '5g'
|
||||
|
||||
|
||||
class Table(ContextDecorator):
|
||||
def __init__(self, headers, width=WIDTH, style=STYLE, add_hr=True):
|
||||
self.headers = header(headers, width=WIDTH, style=STYLE, add_hr=add_hr)
|
||||
self.bottom = bottom(len(headers), width=WIDTH, style=STYLE)
|
||||
|
||||
def __call__(self, data):
|
||||
print(row(data), flush=True)
|
||||
|
||||
def __enter__(self):
|
||||
print(self.headers, flush=True)
|
||||
return self
|
||||
|
||||
def __exit__(self, *exc):
|
||||
print(self.bottom, flush=True)
|
||||
|
||||
|
||||
def table(data, headers=None, format_spec=FMT, width=WIDTH, style=STYLE, out=sys.stdout):
|
||||
"""Print a table with the given data
|
||||
|
||||
|
||||
Reference in New Issue
Block a user