A PyQT GUI application for converting InfoLease report outputs into Excel files.
Handles parsing and summarizing. Learns where files are meant to be store and compiles monthly and yearly summaries.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
from abc import ABC, abstractmethod
|
|
|
from typing import Any, Callable
|
|
|
|
|
|
|
|
|
class Pager(ABC):
|
|
|
"""Base class for a pager."""
|
|
|
|
|
|
@abstractmethod
|
|
|
def show(self, content: str) -> None:
|
|
|
"""Show content in pager.
|
|
|
|
|
|
Args:
|
|
|
content (str): Content to be displayed.
|
|
|
"""
|
|
|
|
|
|
|
|
|
class SystemPager(Pager):
|
|
|
"""Uses the pager installed on the system."""
|
|
|
|
|
|
def _pager(self, content: str) -> Any: # pragma: no cover
|
|
|
return __import__("pydoc").pager(content)
|
|
|
|
|
|
def show(self, content: str) -> None:
|
|
|
"""Use the same pager used by pydoc."""
|
|
|
self._pager(content)
|
|
|
|
|
|
|
|
|
if __name__ == "__main__": # pragma: no cover
|
|
|
from .__main__ import make_test_card
|
|
|
from .console import Console
|
|
|
|
|
|
console = Console()
|
|
|
with console.pager(styles=True):
|
|
|
console.print(make_test_card())
|
|
|
|