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 collections.abc import Callable
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
@ -25,22 +23,22 @@ class MenuItem:
|
||||||
preview_action: Callable[[Any], str | None] | None = None
|
preview_action: Callable[[Any], str | None] | None = None
|
||||||
key: str | None = None
|
key: str | None = None
|
||||||
|
|
||||||
_yes: ClassVar[MenuItem | None] = None
|
_yes: ClassVar[Self | None] = None
|
||||||
_no: ClassVar[MenuItem | None] = None
|
_no: ClassVar[Self | None] = None
|
||||||
|
|
||||||
def get_value(self) -> Any:
|
def get_value(self) -> Any:
|
||||||
assert self.value is not None
|
assert self.value is not None
|
||||||
return self.value
|
return self.value
|
||||||
|
|
||||||
@classmethod
|
@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:
|
if cls._yes is None:
|
||||||
cls._yes = cls(tr('Yes'), value=True, key='yes', action=action)
|
cls._yes = cls(tr('Yes'), value=True, key='yes', action=action)
|
||||||
|
|
||||||
return cls._yes
|
return cls._yes
|
||||||
|
|
||||||
@classmethod
|
@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:
|
if cls._no is None:
|
||||||
cls._no = cls(tr('No'), value=False, key='no', action=action)
|
cls._no = cls(tr('No'), value=False, key='no', action=action)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import curses
|
import curses
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from enum import Enum, auto
|
from enum import Enum, auto
|
||||||
|
from typing import Self
|
||||||
|
|
||||||
SCROLL_INTERVAL = 10
|
SCROLL_INTERVAL = 10
|
||||||
|
|
||||||
|
|
@ -75,7 +76,7 @@ class FrameProperties:
|
||||||
h_frame_style: FrameStyle = FrameStyle.MAX
|
h_frame_style: FrameStyle = FrameStyle.MAX
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def max(cls, header: str) -> 'FrameProperties':
|
def max(cls, header: str) -> Self:
|
||||||
return cls(
|
return cls(
|
||||||
header,
|
header,
|
||||||
FrameStyle.MAX,
|
FrameStyle.MAX,
|
||||||
|
|
@ -83,7 +84,7 @@ class FrameProperties:
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def min(cls, header: str) -> 'FrameProperties':
|
def min(cls, header: str) -> Self:
|
||||||
return cls(
|
return cls(
|
||||||
header,
|
header,
|
||||||
FrameStyle.MIN,
|
FrameStyle.MIN,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue