Satisfy mypy and (re-)move files

This commit is contained in:
Joscha 2019-05-10 11:13:55 +00:00
parent ef5320058c
commit 2e56b1b925
10 changed files with 209 additions and 351 deletions

View file

@ -1,8 +1,10 @@
from typing import List
from .element import *
from .markup import *
from .tree_display import *
__all__ = []
__all__: List[str] = []
__all__ += element.__all__
__all__ += markup.__all__
__all__ += tree_display.__all__

View file

@ -1,7 +1,8 @@
import collections
from typing import Any, Deque, Optional, Set
from typing import Any, List, Optional, Set
from .element import ElementSupply, Id, RenderedElement
from .element import Element, ElementSupply, Id, RenderedElement
from .tree_list import TreeList
__all__ = ["TreeDisplay"]
@ -23,15 +24,15 @@ class TreeDisplay:
# Object references
self._supply = supply
self._rendered: Optional[TreeList]
self._rendered: Optional[TreeList] = None
self._folded: Set[Id] = set()
def resize(self, width: int, height: int):
def resize(self, width: int, height: int) -> None:
# TODO maybe empty _rendered/invalidate caches etc.?
self._width = width
self._height = height
def render(self):
def render(self) -> None:
# Steps:
#
# 1. Find and render anchor's branch to TreeList
@ -67,7 +68,10 @@ class TreeDisplay:
self._fill_screen_upwards()
self._fill_screen_downwards()
def _render_tree(self, tree: Element, depth=0):
def _render_tree(self,
tree: Element,
depth: int = 0
) -> List[RenderedElement]:
elements: List[RenderedElement] = []
highlighted = tree.id == self._cursor_id
@ -82,7 +86,10 @@ class TreeDisplay:
return elements
def _fill_screen_upwards(self):
def _fill_screen_upwards(self) -> None:
if self._rendered is None:
return # TODO
while True:
if self._rendered.upper_offset <= 0:
break
@ -96,11 +103,14 @@ class TreeDisplay:
above_tree = self._supply.get_tree(above_tree_id)
self._rendered.add_above(self._render_tree(above_tree))
def _fill_screen_downwards(self):
def _fill_screen_downwards(self) -> None:
"""
Eerily similar to _fill_screen_upwards()...
"""
if self._rendered is None:
return # TODO
while True:
if self._rendered.lower_offset >= self._height - 1:
break
@ -114,7 +124,7 @@ class TreeDisplay:
below_tree = self._supply.get_tree(below_tree_id)
self._rendered.add_below(self._render_tree(below_tree))
def draw_to(self, window: Any):
def draw_to(self, window: Any) -> None:
pass
# Terminology:

View file

@ -1,3 +1,6 @@
import collections
from typing import Deque, List
from .element import Id, RenderedElement
__all__ = ["TreeList"]
@ -7,9 +10,7 @@ class TreeList:
tree: List[RenderedElement],
anchor_id: Id,
) -> None:
self._deque = collections.deque()
self._anchor_id = anchor_id
self._deque: Deque = collections.deque()
# The offsets can be thought of as the index of a line relative to the
# anchor's first line.
@ -19,8 +20,8 @@ class TreeList:
#
# The lower offset is the index of the lowermost message's LAST line.
# lower_offset >= 0.
self._upper_offset: Int
self._lower_offset: Int
self._upper_offset: int
self._lower_offset: int
# The upper and lower tree ids are the ids of the uppermost or
# lowermost tree added to the TreeList. They can be used to request the
@ -28,14 +29,14 @@ class TreeList:
self._upper_tree_id: Id
self._lower_tree_id: Id
self._add_first_tree(tree)
self._add_first_tree(tree, anchor_id)
@property
def upper_offset(self) -> Int:
def upper_offset(self) -> int:
return self._upper_offset
@property
def lower_offset(self) -> Int:
def lower_offset(self) -> int:
return self._lower_offset
@property
@ -46,7 +47,10 @@ class TreeList:
def lower_tree_id(self) -> Id:
return self._lower_tree_id
def _add_first_tree(self, tree: List[RenderedElement]) -> None:
def _add_first_tree(self,
tree: List[RenderedElement],
anchor_id: Id
) -> None:
if len(tree) == 0:
raise ValueError("The tree must contain at least one element")
@ -57,7 +61,7 @@ class TreeList:
offset = 0
found_anchor = False
for rendered in elements:
for rendered in tree:
if rendered.element.id == anchor_id:
found_anchor = True
self._upper_offset = -offset