Satisfy mypy and (re-)move files
This commit is contained in:
parent
ef5320058c
commit
2e56b1b925
10 changed files with 209 additions and 351 deletions
|
|
@ -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__
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue