commit e1aed73bfb314393cf62b4c24f2e0e616bed0155
parent 7e99a4803d7e4ada8d8b8d0986afcba6f2816d42
Author: luke8086 <55237178+luke8086@users.noreply.github.com>
Date: Thu, 4 Aug 2022 21:47:30 +0000
Improve type hints of list_get()
Diffstat:
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/retronews.py b/retronews.py
@@ -32,6 +32,7 @@ from typing import (
TypeVar,
Union,
cast,
+ overload,
)
KEY_BINDINGS: dict[int, Callable[["AppState"], None]] = {
@@ -349,7 +350,17 @@ def fetch(url: str) -> str:
return resp
+@overload
+def list_get(lst: list[T], index: int, default: T) -> T:
+ ...
+
+
+@overload
def list_get(lst: list[T], index: int, default: Optional[T] = None) -> Optional[T]:
+ ...
+
+
+def list_get(lst, index, default=None):
return lst[index] if 0 <= index < len(lst) else default
@@ -999,8 +1010,7 @@ def app_render_pager(app: AppState) -> None:
return
for i in range(height):
- line = list_get(message.lines, i + app.pager_offset)
- line = "~" if line is None else line
+ line = list_get(message.lines, i + app.pager_offset, "~")
app_render_pager_line(app, i + start, line)