generated from mwc/lab_retro
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
# std imports
|
|
import textwrap
|
|
from typing import Any, Type, Tuple, Pattern, TypeVar, Iterator, Optional, SupportsIndex
|
|
|
|
# local
|
|
from .terminal import Terminal
|
|
|
|
_T = TypeVar("_T")
|
|
|
|
class Termcap:
|
|
name: str = ...
|
|
pattern: str = ...
|
|
attribute: str = ...
|
|
def __init__(self, name: str, pattern: str, attribute: str) -> None: ...
|
|
@property
|
|
def named_pattern(self) -> str: ...
|
|
@property
|
|
def re_compiled(self) -> Pattern[str]: ...
|
|
@property
|
|
def will_move(self) -> bool: ...
|
|
def horizontal_distance(self, text: str) -> int: ...
|
|
@classmethod
|
|
def build(
|
|
cls,
|
|
name: str,
|
|
capability: str,
|
|
attribute: str,
|
|
nparams: int = ...,
|
|
numeric: int = ...,
|
|
match_grouped: bool = ...,
|
|
match_any: bool = ...,
|
|
match_optional: bool = ...,
|
|
) -> "Termcap": ...
|
|
|
|
class SequenceTextWrapper(textwrap.TextWrapper):
|
|
term: Terminal = ...
|
|
def __init__(self, width: int, term: Terminal, **kwargs: Any) -> None: ...
|
|
|
|
class Sequence(str):
|
|
def __new__(cls: Type[_T], sequence_text: str, term: Terminal) -> _T: ...
|
|
def ljust(self, width: SupportsIndex, fillchar: str = ...) -> str: ...
|
|
def rjust(self, width: SupportsIndex, fillchar: str = ...) -> str: ...
|
|
def center(self, width: SupportsIndex, fillchar: str = ...) -> str: ...
|
|
def truncate(self, width: SupportsIndex) -> str: ...
|
|
def length(self) -> int: ...
|
|
def strip(self, chars: Optional[str] = ...) -> str: ...
|
|
def lstrip(self, chars: Optional[str] = ...) -> str: ...
|
|
def rstrip(self, chars: Optional[str] = ...) -> str: ...
|
|
def strip_seqs(self) -> str: ...
|
|
def padd(self, strip: bool = ...) -> str: ...
|
|
|
|
def iter_parse(
|
|
term: Terminal, text: str
|
|
) -> Iterator[Tuple[str, Optional[Termcap]]]: ...
|
|
def measure_length(text: str, term: Terminal) -> int: ...
|