X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=text_utils.py;h=1a8fa18499193084db27f4be02e8a985f877fe1a;hb=1574e8a3a8982fab9278ad534f9427d464e4bffb;hp=93e4b638ba9c840dfd05a27a83d01865643352bd;hpb=0e451d3b3bf899b3d9ac0c38e3c3cd9d9be170ba;p=python_utils.git diff --git a/text_utils.py b/text_utils.py index 93e4b63..1a8fa18 100644 --- a/text_utils.py +++ b/text_utils.py @@ -5,7 +5,7 @@ from collections import defaultdict import math import sys -from typing import List, NamedTuple +from typing import List, NamedTuple, Optional from ansi import fg, reset @@ -171,15 +171,24 @@ def generate_padded_columns(text: List[str]) -> str: class Indenter: """ - with Indenter() as i: - i.print('test') - with i: - i.print('-ing') + with Indenter(pad_count = 8) as i: + i.print('test') with i: - i.print('1, 2, 3') + i.print('-ing') + with i: + i.print('1, 2, 3') """ - def __init__(self): + def __init__(self, + *, + pad_prefix: Optional[str] = None, + pad_char: str = ' ', + pad_count: int = 4): self.level = -1 + if pad_prefix is not None: + self.pad_prefix = pad_prefix + else: + self.pad_prefix = '' + self.padding = pad_char * pad_count def __enter__(self): self.level += 1 @@ -193,4 +202,4 @@ class Indenter: def print(self, *arg, **kwargs): import string_utils text = string_utils.sprintf(*arg, **kwargs) - print(" " * self.level + text) + print(self.pad_prefix + self.padding * self.level + text, end='')