mirror of
https://github.com/rr-/pq-cli.git
synced 2026-11-12 22:40:36 -07:00
misc: drop typing as T, use builtin generics
Python 3.10 is the minimum, so annotations use `X | None`, `list[X]` and friends, enforced by ruff's pyupgrade rules. The remaining typing names are imported directly, with abstract types coming from collections.abc. first() is now generic over the item and default.
This commit is contained in:
40 files changed
+248
-236
No files matched your search
@@ -1,8 +1,8 @@
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
|
||||
class BaseView:
|
||||
def __init__(self, screen: T.Any) -> None:
|
||||
def __init__(self, screen: Any) -> None:
|
||||
self.screen = screen
|
||||
|
||||
def start(self) -> None:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import functools
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.lingo import act_name, to_roman
|
||||
from pqcli.roster import Roster
|
||||
@@ -8,11 +8,11 @@ from pqcli.ui.curses.views.menu_view import MenuView
|
||||
|
||||
|
||||
class ChooseCharacterView(MenuView):
|
||||
def __init__(self, screen: T.Any, roster: Roster, title: str) -> None:
|
||||
def __init__(self, screen: Any, roster: Roster, title: str) -> None:
|
||||
super().__init__(screen, title)
|
||||
|
||||
for y, player in enumerate(roster.players, 1):
|
||||
key: T.Optional[str] = str(y % 10) if y <= 10 else None
|
||||
key: str | None = str(y % 10) if y <= 10 else None
|
||||
|
||||
best_equip = player.equipment.best
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.ui.curses.event_handler import EventHandler
|
||||
from pqcli.ui.curses.util import Choice
|
||||
@@ -8,14 +8,14 @@ from .base_view import BaseView
|
||||
|
||||
|
||||
class ConfirmView(BaseView):
|
||||
def __init__(self, screen: T.Any, title: str) -> None:
|
||||
def __init__(self, screen: Any, title: str) -> None:
|
||||
super().__init__(screen)
|
||||
|
||||
self.title = f"{title}:"
|
||||
self.on_cancel = EventHandler()
|
||||
self.on_confirm = EventHandler()
|
||||
|
||||
self.choices: T.List[Choice] = [
|
||||
self.choices: list[Choice] = [
|
||||
Choice(
|
||||
keys=list(map(ord, "yY")),
|
||||
desc="[Y] Yes",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import functools
|
||||
import typing as T
|
||||
from collections.abc import Sequence
|
||||
from typing import Any
|
||||
|
||||
from pqcli.config import Class
|
||||
from pqcli.ui.curses.util import KEYS_CANCEL, Choice
|
||||
@@ -9,9 +10,9 @@ from pqcli.ui.curses.views.menu_view import MenuView
|
||||
class ChooseCharacterClassView(MenuView):
|
||||
def __init__(
|
||||
self,
|
||||
screen: T.Any,
|
||||
classes: T.Sequence[Class],
|
||||
class_: T.Optional[Class] = None,
|
||||
screen: Any,
|
||||
classes: Sequence[Class],
|
||||
class_: Class | None = None,
|
||||
) -> None:
|
||||
super().__init__(
|
||||
screen,
|
||||
@@ -20,7 +21,7 @@ class ChooseCharacterClassView(MenuView):
|
||||
)
|
||||
|
||||
for y, class_ in enumerate(classes, 1):
|
||||
key: T.Optional[str] = str(y % 10) if y <= 10 else None
|
||||
key: str | None = str(y % 10) if y <= 10 else None
|
||||
self._choices.append(
|
||||
Choice(
|
||||
keys=[ord(key)] if key is not None else [],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import curses
|
||||
import curses.ascii
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.mechanic import generate_name
|
||||
from pqcli.ui.curses.event_handler import EventHandler
|
||||
@@ -10,17 +10,15 @@ from pqcli.ui.curses.widgets.focusable import focus_standout
|
||||
|
||||
|
||||
class ChooseCharacterNameView(BaseView):
|
||||
def __init__(
|
||||
self, screen: T.Any, character_name: T.Optional[str] = None
|
||||
) -> None:
|
||||
def __init__(self, screen: Any, character_name: str | None = None) -> None:
|
||||
super().__init__(screen)
|
||||
|
||||
self.on_cancel = EventHandler()
|
||||
self.on_confirm = EventHandler()
|
||||
|
||||
self._active_widget = 0
|
||||
self._win: T.Optional[T.Any] = None
|
||||
self._text_win: T.Optional[T.Any] = None
|
||||
self._win: Any | None = None
|
||||
self._text_win: Any | None = None
|
||||
self._text = character_name or generate_name()
|
||||
|
||||
def start(self) -> None:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import functools
|
||||
import typing as T
|
||||
from collections.abc import Sequence
|
||||
from typing import Any
|
||||
|
||||
from pqcli.config import Race
|
||||
from pqcli.ui.curses.util import KEYS_CANCEL, Choice
|
||||
@@ -9,9 +10,9 @@ from pqcli.ui.curses.views.menu_view import MenuView
|
||||
class ChooseCharacterRaceView(MenuView):
|
||||
def __init__(
|
||||
self,
|
||||
screen: T.Any,
|
||||
races: T.Sequence[Race],
|
||||
race: T.Optional[Race] = None,
|
||||
screen: Any,
|
||||
races: Sequence[Race],
|
||||
race: Race | None = None,
|
||||
) -> None:
|
||||
super().__init__(
|
||||
screen,
|
||||
@@ -20,7 +21,7 @@ class ChooseCharacterRaceView(MenuView):
|
||||
)
|
||||
|
||||
for y, race in enumerate(races, 1):
|
||||
key: T.Optional[str] = str(y % 10) if y <= 10 else None
|
||||
key: str | None = str(y % 10) if y <= 10 else None
|
||||
self._choices.append(
|
||||
Choice(
|
||||
keys=[ord(key)] if key is not None else [],
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import curses.ascii
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.config import PRIME_STATS
|
||||
from pqcli.mechanic import StatsBuilder
|
||||
@@ -10,15 +10,15 @@ from pqcli.ui.curses.widgets.focusable import focus_standout
|
||||
|
||||
|
||||
class ChooseCharacterStatsView(BaseView):
|
||||
def __init__(self, screen: T.Any) -> None:
|
||||
def __init__(self, screen: Any) -> None:
|
||||
super().__init__(screen)
|
||||
|
||||
self.on_cancel = EventHandler()
|
||||
self.on_confirm = EventHandler()
|
||||
|
||||
self._active_widget = 0
|
||||
self._win: T.Optional[T.Any] = None
|
||||
self._stats_win: T.Optional[T.Any] = None
|
||||
self._win: Any | None = None
|
||||
self._stats_win: Any | None = None
|
||||
|
||||
self._stats_builder = StatsBuilder()
|
||||
self._stats = self._stats_builder.roll()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import argparse
|
||||
import curses
|
||||
import datetime
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.game_data import GameData
|
||||
from pqcli.mechanic import Player, SignalMixin, Simulation
|
||||
@@ -30,7 +30,7 @@ from .task_progress_window import TaskProgressWindow
|
||||
class GameView(BaseView):
|
||||
def __init__(
|
||||
self,
|
||||
screen: T.Any,
|
||||
screen: Any,
|
||||
roster: Roster,
|
||||
player: Player,
|
||||
args: argparse.Namespace,
|
||||
@@ -225,7 +225,7 @@ class GameView(BaseView):
|
||||
x=0,
|
||||
)
|
||||
|
||||
self._focusable_children: T.List[Focusable] = [
|
||||
self._focusable_children: list[Focusable] = [
|
||||
self._char_sheet_win,
|
||||
self._spell_book_win,
|
||||
self._equipment_win,
|
||||
@@ -233,7 +233,7 @@ class GameView(BaseView):
|
||||
self._plot_win,
|
||||
self._quest_book_win,
|
||||
]
|
||||
self._children: T.List[Widget] = self._focusable_children + [
|
||||
self._children: list[Widget] = self._focusable_children + [
|
||||
self._task_win
|
||||
]
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.mechanic import Player, StatType
|
||||
from pqcli.ui.curses.widgets import Focusable
|
||||
@@ -8,7 +8,7 @@ from .progress_bar_window import DataTableProgressBarWindow
|
||||
|
||||
class CharacterSheetWindow(Focusable, DataTableProgressBarWindow):
|
||||
def __init__(
|
||||
self, player: Player, parent: T.Any, h: int, w: int, y: int, x: int
|
||||
self, player: Player, parent: Any, h: int, w: int, y: int, x: int
|
||||
) -> None:
|
||||
super().__init__(
|
||||
parent,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.mechanic import EquipmentType, Player
|
||||
from pqcli.ui.curses.widgets import DataTable, Focusable, WindowWrapper
|
||||
@@ -6,7 +6,7 @@ from pqcli.ui.curses.widgets import DataTable, Focusable, WindowWrapper
|
||||
|
||||
class EquipmentWindow(Focusable, WindowWrapper):
|
||||
def __init__(
|
||||
self, player: Player, parent: T.Any, h: int, w: int, y: int, x: int
|
||||
self, player: Player, parent: Any, h: int, w: int, y: int, x: int
|
||||
) -> None:
|
||||
super().__init__(parent, h, w, y, x)
|
||||
self._on_focus_change += self._render
|
||||
@@ -39,7 +39,7 @@ class EquipmentWindow(Focusable, WindowWrapper):
|
||||
self._render()
|
||||
|
||||
def _sync_equipment_change(
|
||||
self, equipment_type: EquipmentType, item_name: T.Optional[str]
|
||||
self, equipment_type: EquipmentType, item_name: str | None
|
||||
) -> None:
|
||||
self._data_table.set(equipment_type.value, item_name or "")
|
||||
self._data_table.select(equipment_type.value)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.mechanic import InventoryItem, Player
|
||||
from pqcli.ui.curses.widgets import Focusable
|
||||
@@ -8,7 +8,7 @@ from .progress_bar_window import DataTableProgressBarWindow
|
||||
|
||||
class InventoryWindow(Focusable, DataTableProgressBarWindow):
|
||||
def __init__(
|
||||
self, player: Player, parent: T.Any, h: int, w: int, y: int, x: int
|
||||
self, player: Player, parent: Any, h: int, w: int, y: int, x: int
|
||||
) -> None:
|
||||
super().__init__(
|
||||
parent,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.lingo import act_name
|
||||
from pqcli.mechanic import Player
|
||||
@@ -11,7 +11,7 @@ class PlotWindow(Focusable, ListBoxProgressBarWindow):
|
||||
cutoff = 100
|
||||
|
||||
def __init__(
|
||||
self, player: Player, parent: T.Any, h: int, w: int, y: int, x: int
|
||||
self, player: Player, parent: Any, h: int, w: int, y: int, x: int
|
||||
) -> None:
|
||||
super().__init__(
|
||||
parent, h, w, y, x, " Plot Development ", show_time=True
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import curses
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.ui.curses.widgets import (
|
||||
DataTable,
|
||||
@@ -13,7 +13,7 @@ from pqcli.ui.curses.widgets import (
|
||||
class ProgressBarWindow(WindowWrapper):
|
||||
def __init__(
|
||||
self,
|
||||
parent: T.Any,
|
||||
parent: Any,
|
||||
h: int,
|
||||
w: int,
|
||||
y: int,
|
||||
@@ -82,7 +82,7 @@ class ProgressBarWindow(WindowWrapper):
|
||||
class DataTableProgressBarWindow(ProgressBarWindow):
|
||||
def __init__(
|
||||
self,
|
||||
parent: T.Any,
|
||||
parent: Any,
|
||||
h: int,
|
||||
w: int,
|
||||
y: int,
|
||||
@@ -123,7 +123,7 @@ class DataTableProgressBarWindow(ProgressBarWindow):
|
||||
class ListBoxProgressBarWindow(ProgressBarWindow):
|
||||
def __init__(
|
||||
self,
|
||||
parent: T.Any,
|
||||
parent: Any,
|
||||
h: int,
|
||||
w: int,
|
||||
y: int,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.mechanic import Player
|
||||
from pqcli.ui.curses.widgets import Focusable
|
||||
@@ -10,7 +10,7 @@ class QuestBookWindow(Focusable, ListBoxProgressBarWindow):
|
||||
cutoff = 100
|
||||
|
||||
def __init__(
|
||||
self, player: Player, parent: T.Any, h: int, w: int, y: int, x: int
|
||||
self, player: Player, parent: Any, h: int, w: int, y: int, x: int
|
||||
) -> None:
|
||||
super().__init__(parent, h, w, y, x, " Quests ", show_time=True)
|
||||
self._on_focus_change += self._render
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.lingo import to_roman
|
||||
from pqcli.mechanic import Player, Spell
|
||||
@@ -7,7 +7,7 @@ from pqcli.ui.curses.widgets import DataTable, Focusable, WindowWrapper
|
||||
|
||||
class SpellBookWindow(Focusable, WindowWrapper):
|
||||
def __init__(
|
||||
self, player: Player, parent: T.Any, h: int, w: int, y: int, x: int
|
||||
self, player: Player, parent: Any, h: int, w: int, y: int, x: int
|
||||
) -> None:
|
||||
super().__init__(parent, h, w, y, x)
|
||||
self._on_focus_change += self._render
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.mechanic import Player
|
||||
from pqcli.ui.curses.widgets import (
|
||||
@@ -11,7 +11,7 @@ from pqcli.ui.curses.widgets import (
|
||||
|
||||
class TaskProgressWindow(Focusable, WindowWrapper):
|
||||
def __init__(
|
||||
self, player: Player, parent: T.Any, h: int, w: int, y: int, x: int
|
||||
self, player: Player, parent: Any, h: int, w: int, y: int, x: int
|
||||
) -> None:
|
||||
super().__init__(parent, h, w, y, x)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.ui.curses.event_handler import EventHandler
|
||||
from pqcli.ui.curses.util import Choice
|
||||
@@ -8,7 +8,7 @@ from pqcli.ui.curses.widgets import Menu
|
||||
|
||||
class MenuView(BaseView):
|
||||
def __init__(
|
||||
self, screen: T.Any, title: str, active_choice: int = 0
|
||||
self, screen: Any, title: str, active_choice: int = 0
|
||||
) -> None:
|
||||
super().__init__(screen)
|
||||
|
||||
@@ -16,7 +16,7 @@ class MenuView(BaseView):
|
||||
self.on_confirm = EventHandler()
|
||||
|
||||
self._title = f"{title}:"
|
||||
self._choices: T.List[Choice] = []
|
||||
self._choices: list[Choice] = []
|
||||
self._active_choice = active_choice
|
||||
|
||||
def start(self) -> None:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import curses
|
||||
import typing as T
|
||||
from typing import Any
|
||||
|
||||
from pqcli.ui.curses.colors import COLOR_LOGO, COLOR_LOGO_ALT, has_colors
|
||||
from pqcli.ui.curses.event_handler import EventHandler
|
||||
@@ -29,7 +29,7 @@ LOGO = """
|
||||
|
||||
class MainMenu(Menu):
|
||||
def __init__(
|
||||
self, choices: T.List[Choice], scr_height: int, scr_width: int
|
||||
self, choices: list[Choice], scr_height: int, scr_width: int
|
||||
) -> None:
|
||||
super().__init__(
|
||||
header=LOGO,
|
||||
@@ -50,7 +50,7 @@ class MainMenu(Menu):
|
||||
|
||||
|
||||
class RosterView(BaseView):
|
||||
def __init__(self, screen: T.Any) -> None:
|
||||
def __init__(self, screen: Any) -> None:
|
||||
super().__init__(screen)
|
||||
|
||||
self.on_create = EventHandler()
|
||||
@@ -58,7 +58,7 @@ class RosterView(BaseView):
|
||||
self.on_delete = EventHandler()
|
||||
self.on_quit = EventHandler()
|
||||
|
||||
self.choices: T.List[Choice] = [
|
||||
self.choices: list[Choice] = [
|
||||
Choice(
|
||||
keys=list(map(ord, "cC")),
|
||||
desc="[C] Create new character",
|
||||
|
||||
Reference in new issue
Block a user