diff --git a/kittens/diff/collect.py b/kittens/diff/collect.py index 3898c4668..01c15486c 100644 --- a/kittens/diff/collect.py +++ b/kittens/diff/collect.py @@ -68,7 +68,10 @@ class Collection: self.removed_count += len(lines_for_path(left_path)) def finalize(self) -> None: - self.all_paths.sort(key=path_name_map.get) + def key(x: str) -> str: + return path_name_map.get(x, '') + + self.all_paths.sort(key=key) def __iter__(self) -> Iterator[Tuple[str, str, Optional[str]]]: for path in self.all_paths: diff --git a/kittens/diff/main.py b/kittens/diff/main.py index 38869f522..3a6f6d590 100644 --- a/kittens/diff/main.py +++ b/kittens/diff/main.py @@ -13,7 +13,9 @@ from collections import defaultdict from contextlib import suppress from functools import partial from gettext import gettext as _ -from typing import DefaultDict, Dict, Iterable, List, Optional, Tuple, Union +from typing import ( + Any, DefaultDict, Dict, Iterable, List, Optional, Tuple, Union +) from kitty.cli import CONFIG_HELP, parse_args from kitty.cli_stub import DiffCLIOptions @@ -24,6 +26,11 @@ from kitty.key_encoding import RELEASE, KeyEvent, enter_key, key_defs as K from kitty.options_stub import DiffOptions from kitty.utils import ScreenSize +from ..tui.handler import Handler +from ..tui.images import ImageManager, Placement +from ..tui.line_edit import LineEdit +from ..tui.loop import Loop +from ..tui.operations import styled from . import global_data from .collect import ( Collection, create_collection, data_for_path, lines_for_path, sanitize, @@ -35,14 +42,11 @@ from .render import ( ImagePlacement, ImageSupportWarning, Line, LineRef, Reference, render_diff ) from .search import BadRegex, Search -from ..tui.handler import Handler -from ..tui.images import ImageManager, Placement -from ..tui.line_edit import LineEdit -from ..tui.loop import Loop -from ..tui.operations import styled try: - from .highlight import initialize_highlighter, highlight_collection, DiffHighlight + from .highlight import ( + DiffHighlight, highlight_collection, initialize_highlighter + ) has_highlighter = True DiffHighlight except ImportError: @@ -566,8 +570,8 @@ class ShowWarning: def __init__(self) -> None: self.warnings: List[str] = [] - def __call__(self, message: str, category: object, filename: str, lineno: int, file: object = None, line: object = None) -> None: - if category is ImageSupportWarning: + def __call__(self, message: Any, category: Any, filename: str, lineno: int, file: object = None, line: object = None) -> None: + if category is ImageSupportWarning and isinstance(message, str): showwarning.warnings.append(message) diff --git a/kitty/key_encoding.py b/kitty/key_encoding.py index befd88700..e7e072349 100644 --- a/kitty/key_encoding.py +++ b/kitty/key_encoding.py @@ -424,7 +424,7 @@ def update_encoding() -> None: ans = ENCODING key_map = {} i = len(ans) - for k in sorted(keys, key=lambda k: getattr(defines, k)): + for k in sorted(keys, key=lambda k: int(getattr(defines, k))): if k in ('GLFW_KEY_LAST', 'GLFW_KEY_LAST_PRINTABLE'): continue val = getattr(defines, k) diff --git a/publish.py b/publish.py index 3691a2231..99a069181 100755 --- a/publish.py +++ b/publish.py @@ -137,7 +137,7 @@ class ReadFileWithProgressReporting(io.FileIO): # {{{ def __len__(self) -> int: return self._total - def read(self, size: int = -1) -> Optional[bytes]: + def read(self, size: int = -1) -> bytes: data = io.FileIO.read(self, size) if data: self.report_progress(len(data)) diff --git a/test.py b/test.py index 51bbe0207..f3610e93d 100755 --- a/test.py +++ b/test.py @@ -97,7 +97,7 @@ def run_tests() -> None: def run_cli(suite: unittest.TestSuite, verbosity: int = 4) -> None: r = unittest.TextTestRunner - r.resultclass = unittest.TextTestResult # type: ignore + r.resultclass = unittest.TextTestResult init_env() runner = r(verbosity=verbosity) runner.tb_locals = True # type: ignore