Source code for esptest.interface.port

import re
from abc import ABC, abstractmethod
from typing import overload

import esptest.common.compat_typing as t

from ..common.data_monitor import DataMonitor

PatternLike = t.Union[str, bytes, 're.Pattern[str]', 're.Pattern[bytes]']
MatchLike = t.Union['re.Match[str]', 're.Match[bytes]', None]


[docs] class PortInterface(ABC): @property @abstractmethod def raw_port(self) -> t.Any: ... @property @abstractmethod def name(self) -> t.Any: ... @name.setter @abstractmethod def name(self, value: str) -> None: ...
[docs] @abstractmethod def set_rx_log_callback(self, new_callback: t.Optional[t.Callable[[str, bytes], None]]) -> None: ...
[docs] @abstractmethod def add_monitor(self, monitor: DataMonitor) -> None: ...
[docs] @abstractmethod def remove_monitor(self, monitor: DataMonitor) -> None: ...
[docs] @abstractmethod def clear_monitors(self) -> None: ...
[docs] @abstractmethod def write(self, data: t.AnyStr) -> None: ...
[docs] @abstractmethod def write_line(self, data: t.AnyStr, end: str = '\n') -> None: ...
@overload def expect(self, pattern: str, timeout: float = 30) -> None: ... @overload def expect(self, pattern: bytes, timeout: float = 30) -> None: ... @overload def expect(self, pattern: 're.Pattern[str]', timeout: float = 30) -> 're.Match[str]': ... @overload def expect(self, pattern: 're.Pattern[bytes]', timeout: float = 30) -> 're.Match[bytes]': ...
[docs] @abstractmethod def expect(self, pattern: PatternLike, timeout: float = 0) -> MatchLike: ... # type: ignore
@property @abstractmethod def data_cache(self) -> str: ...
[docs] @abstractmethod def flush_data(self) -> str: ...
[docs] @abstractmethod def read_all_data(self, flush: bool = True) -> str: ...
[docs] @abstractmethod def read_all_bytes(self, flush: bool = False) -> bytes: ...
[docs] @abstractmethod def close(self) -> None: ...
@abstractmethod def __enter__(self) -> 't.Self': ... @abstractmethod def __exit__(self, exc_type, exc_value, trace) -> None: ... # type: ignore