Fix most of the mypy errors in archinstall/tui/ (#2638)

This commit is contained in:
correctmost 2024-08-27 10:55:53 -04:00 committed by GitHub
parent 7835784be5
commit 1e7f1194d7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 45 additions and 45 deletions

View File

@ -25,15 +25,15 @@ if TYPE_CHECKING:
class AbstractCurses(metaclass=ABCMeta):
def __init__(self):
def __init__(self) -> None:
self._help_window: Optional[Viewport] = None
self._set_help_viewport()
@abstractmethod
def resize_win(self):
def resize_win(self) -> None:
pass
def clear_help_win(self):
def clear_help_win(self) -> None:
if self._help_window:
self._help_window.erase()
@ -41,7 +41,7 @@ class AbstractCurses(metaclass=ABCMeta):
def kickoff(self, win: 'curses._CursesWindow') -> Result:
pass
def _set_help_viewport(self):
def _set_help_viewport(self) -> None:
max_height, max_width = tui.max_yx
width = max_width - 10
height = max_height - 10
@ -73,7 +73,7 @@ class AbstractCurses(metaclass=ABCMeta):
def help_entry(self) -> ViewportEntry:
return ViewportEntry(str(_('Press Ctrl+h for help')), 0, 0, STYLE.NORMAL)
def _show_help(self):
def _show_help(self) -> None:
if not self._help_window:
return
@ -118,10 +118,10 @@ class AbstractCurses(metaclass=ABCMeta):
@dataclass
class AbstractViewport:
def __init__(self):
def __init__(self) -> None:
pass
def add_str(self, screen: Any, row: int, col: int, text: str, color: STYLE):
def add_str(self, screen: Any, row: int, col: int, text: str, color: STYLE) -> None:
try:
screen.addstr(row, col, text, tui.get_color(color))
except curses.error:
@ -214,7 +214,7 @@ class AbstractViewport:
dim: _FrameDim,
h_bar: str,
scroll_pct: Optional[int] = None
):
) -> ViewportEntry:
if scroll_pct is None:
bottom = Chars.Lower_left + h_bar + Chars.Lower_right
else:
@ -290,7 +290,7 @@ class EditViewport(AbstractViewport):
y_start: int,
process_key: Callable[[int], int],
frame: FrameProperties
):
) -> None:
super().__init__()
self._max_height, self._max_width = tui.max_yx
@ -308,7 +308,7 @@ class EditViewport(AbstractViewport):
self._init_wins()
def _init_wins(self):
def _init_wins(self) -> None:
self._main_win = curses.newwin(self.height, self.width, self.y_start, self.x_start)
self._main_win.nodelay(False)
@ -319,7 +319,7 @@ class EditViewport(AbstractViewport):
self.x_start + 1
)
def update(self):
def update(self) -> None:
if not self._main_win:
return
@ -337,12 +337,12 @@ class EditViewport(AbstractViewport):
self._main_win.refresh()
def erase(self):
def erase(self) -> None:
if self._main_win:
self._main_win.erase()
self._main_win.refresh()
def edit(self):
def edit(self) -> None:
if not self._edit_win or not self._main_win:
return
@ -373,7 +373,7 @@ class Viewport(AbstractViewport):
y_start: int,
enable_scroll: bool = False,
frame: Optional[FrameProperties] = None
):
) -> None:
super().__init__()
self.width = width
@ -389,7 +389,7 @@ class Viewport(AbstractViewport):
def getch(self):
return self._main_win.getch()
def erase(self):
def erase(self) -> None:
self._main_win.erase()
self._main_win.refresh()
@ -398,7 +398,7 @@ class Viewport(AbstractViewport):
entries: List[ViewportEntry],
cursor_pos: int = 0,
scroll_pos: Optional[int] = 0
):
) -> None:
visible_rows, percentage = self._find_visible_rows(entries, cursor_pos, scroll_pos)
if self._frame:
@ -529,7 +529,7 @@ class EditMenu(AbstractCurses):
self._last_state: Optional[Result] = None
self._help_active = False
def _init_viewports(self):
def _init_viewports(self) -> None:
x_offset = 0
y_offset = 0
edit_width = 50
@ -565,10 +565,10 @@ class EditMenu(AbstractCurses):
self._clear_all()
return result
def resize_win(self):
def resize_win(self) -> None:
self._draw()
def _clear_all(self):
def _clear_all(self) -> None:
if self._help_vp:
self._help_vp.erase()
if self._header_vp:
@ -592,7 +592,7 @@ class EditMenu(AbstractCurses):
return text
def _draw(self):
def _draw(self) -> None:
if self._help_vp:
self._help_vp.update([self.help_entry()], 0)
@ -767,10 +767,10 @@ class SelectMenu(AbstractCurses):
if self._handle_interrupt():
return Result(ResultType.Reset, None)
def resize_win(self):
def resize_win(self) -> None:
self._draw()
def _clear_all(self):
def _clear_all(self) -> None:
self.clear_help_win()
if self._header_vp:
@ -791,7 +791,7 @@ class SelectMenu(AbstractCurses):
return []
def _init_viewports(self, arg_prev_size: float | Literal['auto']):
def _init_viewports(self, arg_prev_size: float | Literal['auto']) -> None:
footer_height = 2 # possible filter at the bottom
y_offset = 0
@ -862,7 +862,7 @@ class SelectMenu(AbstractCurses):
return prev_size
def _draw(self):
def _draw(self) -> None:
footer_entries = self._footer_entries()
vp_entries = self._get_row_entries()
@ -890,7 +890,7 @@ class SelectMenu(AbstractCurses):
viewport: Viewport,
entries: List[ViewportEntry],
cursor_pos: int = 0
):
) -> None:
if entries:
viewport.update(entries, cursor_pos=cursor_pos)
else:
@ -994,7 +994,7 @@ class SelectMenu(AbstractCurses):
return entries
def _update_preview(self):
def _update_preview(self) -> None:
if not self._preview_vp:
return
@ -1017,7 +1017,7 @@ class SelectMenu(AbstractCurses):
self._preview_vp.update(entries, scroll_pos=self._prev_scroll_pos)
def _calc_prev_scroll_pos(self, entries: List[ViewportEntry]):
def _calc_prev_scroll_pos(self, entries: List[ViewportEntry]) -> None:
total_rows = max([e.row for e in entries]) + 1 # rows start with 0 and we need the count
if self._prev_scroll_pos >= total_rows:
@ -1134,7 +1134,7 @@ class SelectMenu(AbstractCurses):
self._draw()
return None
def _focus_item(self, key: MenuKeys):
def _focus_item(self, key: MenuKeys) -> None:
focus_item = self._item_group.focus_item
next_row = 0
next_col = 0
@ -1178,14 +1178,14 @@ class SelectMenu(AbstractCurses):
class Tui:
def __init__(self):
def __init__(self) -> None:
self._screen: Any = None
self._colors: Dict[str, int] = {}
self._component: Optional[AbstractCurses] = None
signal.signal(signal.SIGWINCH, self._sig_win_resize)
def init(self):
def init(self) -> None:
self._screen = curses.initscr()
curses.noecho()
@ -1212,7 +1212,7 @@ class Tui:
def run(self, component: AbstractCurses) -> Result:
return self._main_loop(component)
def _sig_win_resize(self, signum: int, frame):
def _sig_win_resize(self, signum: int, frame) -> None:
if self._component:
self._component.resize_win()
@ -1220,14 +1220,14 @@ class Tui:
self._screen.refresh()
return component.kickoff(self._screen)
def _reset_terminal(self):
def _reset_terminal(self) -> None:
os.system("reset")
def _soft_clear_terminal(self):
def _soft_clear_terminal(self) -> None:
print(chr(27) + "[2J", end="")
print(chr(27) + "[1;1H", end="")
def _set_up_colors(self):
def _set_up_colors(self) -> None:
curses.init_pair(STYLE.NORMAL.value, curses.COLOR_WHITE, curses.COLOR_BLACK)
curses.init_pair(STYLE.CURSOR_STYLE.value, curses.COLOR_CYAN, curses.COLOR_BLACK)
curses.init_pair(STYLE.MENU_STYLE.value, curses.COLOR_WHITE, curses.COLOR_BLUE)

View File

@ -63,7 +63,7 @@ class MenuItemGroup:
_filter_pattern: str = ''
def __post_init__(self):
def __post_init__(self) -> None:
if len(self.menu_items) < 1:
raise ValueError('Menu must have at least one item')
@ -118,19 +118,19 @@ class MenuItemGroup:
def filter_pattern(self):
return self._filter_pattern
def set_filter_pattern(self, pattern: str):
def set_filter_pattern(self, pattern: str) -> None:
self._filter_pattern = pattern
self.reload_focus_itme()
def append_filter(self, pattern: str):
def append_filter(self, pattern: str) -> None:
self._filter_pattern += pattern
self.reload_focus_itme()
def reduce_filter(self):
def reduce_filter(self) -> None:
self._filter_pattern = self._filter_pattern[:-1]
self.reload_focus_itme()
def set_focus_item_index(self, index: int):
def set_focus_item_index(self, index: int) -> None:
items = self.items
non_empty_items = [item for item in items if not item.is_empty()]
if index < 0 or index >= len(non_empty_items):
@ -141,14 +141,14 @@ class MenuItemGroup:
self.focus_item = item
return
def reload_focus_itme(self):
def reload_focus_itme(self) -> None:
if self.focus_item not in self.items:
self.focus_first()
def is_item_selected(self, item: MenuItem) -> bool:
return item in self.selected_items
def select_current_item(self):
def select_current_item(self) -> None:
if self.focus_item:
if self.focus_item in self.selected_items:
self.selected_items.remove(self.focus_item)
@ -179,17 +179,17 @@ class MenuItemGroup:
rev_items = list(reversed(items))
return self._first(rev_items, ignore_empty)
def focus_first(self):
def focus_first(self) -> None:
first_item = self.get_first_item()
if first_item:
self.focus_item = first_item
def focus_last(self):
def focus_last(self) -> None:
last_item = self.get_last_item()
if last_item:
self.focus_item = last_item
def focus_prev(self, skip_empty: bool = True):
def focus_prev(self, skip_empty: bool = True) -> None:
items = self.items
if self.focus_item not in items:
@ -203,7 +203,7 @@ class MenuItemGroup:
if self.focus_item.is_empty() and skip_empty:
self.focus_prev(skip_empty)
def focus_next(self, skip_empty: bool = True):
def focus_next(self, skip_empty: bool = True) -> None:
items = self.items
if self.focus_item not in items: