diff options
Diffstat (limited to 'accounts/utils/console.py')
-rw-r--r-- | accounts/utils/console.py | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/accounts/utils/console.py b/accounts/utils/console.py index 1b539bd..cabfc08 100644 --- a/accounts/utils/console.py +++ b/accounts/utils/console.py @@ -1,10 +1,18 @@ # -*- coding: utf-8 -*- +from typing import Any, Optional, Callable + +from wtforms import Form + class TablePrinter: separator: str + headers: Optional[list[str]] + widths: list[int] - def __init__(self, headers=None, separator="|"): + def __init__( + self, headers: Optional[list[str]] = None, separator: str = "|" + ) -> None: self.headers = headers self.separator = separator @@ -14,11 +22,11 @@ class TablePrinter: if headers is not None: self._calulate_widths([headers]) - def _calulate_widths(self, rows) -> None: - def _get_column_count(rows: list): + def _calulate_widths(self, rows: list[list[str]]) -> None: + def _get_column_count(rows: list[list[str]]) -> int: return min([len(row) for row in rows]) - def _column_width(column: tuple, width: int) -> int: + def _column_width(column: tuple[str, ...], width: int) -> int: widths = [len(str(elem)) for elem in column] widths.append(width) return max(widths) @@ -41,7 +49,7 @@ class TablePrinter: self.separator, ) - def output(self, rows): + def output(self, rows: list[list[str]]) -> None: if len(rows) > 0: self._calulate_widths(rows) @@ -66,25 +74,27 @@ class TablePrinter: ) ) - def _print_row(self, row) -> None: + def _print_row(self, row: list[str]) -> None: print((self.format_string % tuple(row))) -class ConsoleForm(object): +class ConsoleForm: _ready = False - def __init__(self, formcls, **kwargs): + def __init__( + self, formcls: Callable[..., Form], **kwargs: dict[str, Any] + ) -> None: self.form = formcls(meta={"csrf": False}) self._fill(kwargs) self._ready = True - def _fill(self, data) -> None: + def _fill(self, data: dict[str, Any]) -> None: for key, value in list(data.items()): field = getattr(self.form, key, None) if field is not None: field.data = value - def print_errors(self): + def print_errors(self) -> None: for field, errors in list(self.form.errors.items()): if len(errors) > 1: print(("%s:" % field)) @@ -93,16 +103,16 @@ class ConsoleForm(object): else: print(("%s: %s" % (field, errors[0]))) - def __getattr__(self, name): + def __getattr__(self, name: str) -> Any: return getattr(self.form, name) - def __setattr__(self, name, value): + def __setattr__(self, name: str, value: Any) -> None: if self._ready and name not in self.__dict__: setattr(self.form, name, value) else: super(ConsoleForm, self).__setattr__(name, value) - def __delattr__(self, name): + def __delattr__(self, name: str) -> None: if self._ready and name not in self.__dict__: delattr(self.form, name) else: |