X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=histogram.py;h=87ef77340fd036b8ea29d5ddf3def5d902db3688;hb=e70297b7e29a07457d6c7195425e734a1290abeb;hp=7be643f3a038365f58c2522910a7d769ce398991;hpb=4198f76987184c774135860bfb22432c69d0714d;p=python_utils.git diff --git a/histogram.py b/histogram.py index 7be643f..87ef773 100644 --- a/histogram.py +++ b/histogram.py @@ -67,7 +67,7 @@ class SimpleHistogram(Generic[T]): all_true = all_true and self.add_item(item) return all_true - def __repr__(self, width: int = 80, *, label_formatter: str = '%5s') -> str: + def __repr__(self, *, width: int = 80, label_formatter: str = None) -> str: from text_utils import bar_graph max_population: Optional[int] = None @@ -92,6 +92,13 @@ class SimpleHistogram(Generic[T]): end = bucket[1] if highest_end is None or end > highest_end: highest_end = end + if label_formatter is None: + if type(start) == int and type(end) == int: + label_formatter = '%d' + elif type(start) == float and type(end) == float: + label_formatter = '%.2f' + else: + label_formatter = '%s' label = f'[{label_formatter}..{label_formatter}): ' % (start, end) label_width = len(label) if max_label_width is None or label_width > max_label_width: