Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions archinstall/tui/menu_item.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from __future__ import annotations

from collections.abc import Callable
from dataclasses import dataclass, field
from enum import Enum
Expand All @@ -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)

Expand Down
5 changes: 3 additions & 2 deletions archinstall/tui/types.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import curses
from dataclasses import dataclass
from enum import Enum, auto
from typing import Self

SCROLL_INTERVAL = 10

Expand Down Expand Up @@ -75,15 +76,15 @@ 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,
FrameStyle.MAX,
)

@classmethod
def min(cls, header: str) -> 'FrameProperties':
def min(cls, header: str) -> Self:
return cls(
header,
FrameStyle.MIN,
Expand Down