Use Self in tui (#4126)

This commit is contained in:
codefiles 2026-01-14 15:05:43 -05:00 committed by GitHub
parent c4de093122
commit e5a14c0cfe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 8 deletions

View File

@ -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)

View File

@ -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,