From e5a14c0cfea9054e5ee9ac71cd6dab08944a502c Mon Sep 17 00:00:00 2001 From: codefiles <11915375+codefiles@users.noreply.github.com> Date: Wed, 14 Jan 2026 15:05:43 -0500 Subject: [PATCH] Use Self in tui (#4126) --- archinstall/tui/menu_item.py | 10 ++++------ archinstall/tui/types.py | 5 +++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/archinstall/tui/menu_item.py b/archinstall/tui/menu_item.py index 14c95e86..7ec50307 100644 --- a/archinstall/tui/menu_item.py +++ b/archinstall/tui/menu_item.py @@ -1,5 +1,3 @@ -from __future__ import annotations - from collections.abc import Callable from dataclasses import dataclass, field from enum import Enum @@ -25,22 +23,22 @@ class MenuItem: preview_action: Callable[[Any], str | None] | None = None key: str | None = None - _yes: ClassVar[MenuItem | None] = None - _no: ClassVar[MenuItem | None] = None + _yes: ClassVar[Self | None] = None + _no: ClassVar[Self | None] = None def get_value(self) -> Any: assert self.value is not None return self.value @classmethod - def yes(cls, action: Callable[[Any], Any] | None = None) -> 'MenuItem': + def yes(cls, action: Callable[[Any], Any] | None = None) -> Self: if cls._yes is None: cls._yes = cls(tr('Yes'), value=True, key='yes', action=action) return cls._yes @classmethod - def no(cls, action: Callable[[Any], Any] | None = None) -> 'MenuItem': + def no(cls, action: Callable[[Any], Any] | None = None) -> Self: if cls._no is None: cls._no = cls(tr('No'), value=False, key='no', action=action) diff --git a/archinstall/tui/types.py b/archinstall/tui/types.py index 363627a3..956d91c5 100644 --- a/archinstall/tui/types.py +++ b/archinstall/tui/types.py @@ -1,6 +1,7 @@ import curses from dataclasses import dataclass from enum import Enum, auto +from typing import Self SCROLL_INTERVAL = 10 @@ -75,7 +76,7 @@ class FrameProperties: h_frame_style: FrameStyle = FrameStyle.MAX @classmethod - def max(cls, header: str) -> 'FrameProperties': + def max(cls, header: str) -> Self: return cls( header, FrameStyle.MAX, @@ -83,7 +84,7 @@ class FrameProperties: ) @classmethod - def min(cls, header: str) -> 'FrameProperties': + def min(cls, header: str) -> Self: return cls( header, FrameStyle.MIN,