summaryrefslogtreecommitdiffstats
path: root/accounts/utils/console.py
diff options
context:
space:
mode:
Diffstat (limited to 'accounts/utils/console.py')
-rw-r--r--accounts/utils/console.py36
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: