Use Self in tui (#4126)
This commit is contained in:
parent
c4de093122
commit
e5a14c0cfe
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue