import textwrap from typing import IO, Any, Callable, Generic, List, Text, Type, TypeVar, overload from typing_extensions import SupportsIndex _TB = TypeVar("_TB", bound="_BaseEntry") _TP = TypeVar("_TP", bound="POFile") _TM = TypeVar("_TM", bound="MOFile") default_encoding: str # wrapwidth: int # encoding: str # check_for_duplicates: bool @overload def pofile(pofile: Text, *, klass: Type[_TP], **kwargs: Any) -> _TP: ... @overload def pofile(pofile: Text, **kwargs: Any) -> POFile: ... @overload def mofile(mofile: Text, *, klass: Type[_TM], **kwargs: Any) -> _TM: ... @overload def mofile(mofile: Text, **kwargs: Any) -> MOFile: ... def detect_encoding(file: bytes | Text, binary_mode: bool = ...) -> str: ... def escape(st: Text) -> Text: ... def unescape(st: Text) -> Text: ... class _BaseFile(List[_TB]): fpath: Text wrapwidth: int encoding: Text check_for_duplicates: bool header: Text metadata: dict[Text, Text] metadata_is_fuzzy: bool def __init__(self, *args: Any, **kwargs: Any) -> None: ... def __unicode__(self) -> Text: ... def __contains__(self, entry: _TB) -> bool: ... # type: ignore # AttributeError otherwise def __eq__(self, other: object) -> bool: ... def append(self, entry: _TB) -> None: ... def insert(self, index: SupportsIndex, entry: _TB) -> None: ... def metadata_as_entry(self) -> POEntry: ... def save(self, fpath: Text | None = ..., repr_method: str = ...) -> None: ... def find(self, st: Text, by: str = ..., include_obsolete_entries: bool = ..., msgctxt: bool = ...) -> _TB | None: ... def ordered_metadata(self) -> list[tuple[Text, Text]]: ... def to_binary(self) -> bytes: ... class POFile(_BaseFile[POEntry]): def __unicode__(self) -> Text: ... def save_as_mofile(self, fpath: Text) -> None: ... def percent_translated(self) -> int: ... def translated_entries(self) -> list[POEntry]: ... def untranslated_entries(self) -> list[POEntry]: ... def fuzzy_entries(self) -> list[POEntry]: ... def obsolete_entries(self) -> list[POEntry]: ... def merge(self, refpot: POFile) -> None: ... class MOFile(_BaseFile[MOEntry]): MAGIC: int MAGIC_SWAPPED: int magic_number: int | None version: int def __init__(self, *args: Any, **kwargs: Any) -> None: ... def save_as_pofile(self, fpath: str) -> None: ... def save(self, fpath: Text | None = ...) -> None: ... # type: ignore # binary file does not allow argument repr_method def percent_translated(self) -> int: ... def translated_entries(self) -> list[MOEntry]: ... def untranslated_entries(self) -> list[MOEntry]: ... def fuzzy_entries(self) -> list[MOEntry]: ... def obsolete_entries(self) -> list[MOEntry]: ... class _BaseEntry(object): msgid: Text msgstr: Text msgid_plural: Text msgstr_plural: list[Text] msgctxt: Text obsolete: bool encoding: str def __init__(self, *args: Any, **kwargs: Any) -> None: ... def __unicode__(self, wrapwidth: int = ...) -> Text: ... def __eq__(self, other: object) -> bool: ... class POEntry(_BaseEntry): comment: Text tcomment: Text occurrences: list[tuple[str, int]] flags: list[Text] previous_msgctxt: Text | None previous_msgid: Text | None previous_msgid_plural: Text | None linenum: int | None def __init__(self, *args: Any, **kwargs: Any) -> None: ... def __unicode__(self, wrapwidth: int = ...) -> Text: ... def __cmp__(self, other: POEntry) -> int: ... def __gt__(self, other: POEntry) -> bool: ... def __lt__(self, other: POEntry) -> bool: ... def __ge__(self, other: POEntry) -> bool: ... def __le__(self, other: POEntry) -> bool: ... def __eq__(self, other: Any) -> bool: ... def __ne__(self, other: Any) -> bool: ... def translated(self) -> bool: ... def merge(self, other: POEntry) -> None: ... @property def fuzzy(self) -> bool: ... @property def msgid_with_context(self) -> Text: ... def __hash__(self) -> int: ... class MOEntry(_BaseEntry): comment: Text tcomment: Text occurrences: list[tuple[str, int]] flags: list[Text] previous_msgctxt: Text | None previous_msgid: Text | None previous_msgid_plural: Text | None def __init__(self, *args: Any, **kwargs: Any) -> None: ... def __hash__(self) -> int: ... class _POFileParser(Generic[_TP]): fhandle: IO[Text] instance: _TP transitions: dict[tuple[str, str], tuple[Callable[[], bool], str]] current_line: int current_entry: POEntry current_state: str current_token: str | None msgstr_index: int entry_obsolete: int def __init__(self, pofile: Text, *args: Any, **kwargs: Any) -> None: ... def parse(self) -> _TP: ... def add(self, symbol: str, states: list[str], next_state: str) -> None: ... def process(self, symbol: str) -> None: ... def handle_he(self) -> bool: ... def handle_tc(self) -> bool: ... def handle_gc(self) -> bool: ... def handle_oc(self) -> bool: ... def handle_fl(self) -> bool: ... def handle_pp(self) -> bool: ... def handle_pm(self) -> bool: ... def handle_pc(self) -> bool: ... def handle_ct(self) -> bool: ... def handle_mi(self) -> bool: ... def handle_mp(self) -> bool: ... def handle_ms(self) -> bool: ... def handle_mx(self) -> bool: ... def handle_mc(self) -> bool: ... class _MOFileParser(Generic[_TM]): fhandle: IO[bytes] instance: _TM def __init__(self, mofile: Text, *args: Any, **kwargs: Any) -> None: ... def __del__(self) -> None: ... def parse(self) -> _TM: ... class TextWrapper(textwrap.TextWrapper): drop_whitespace: bool def __init__(self, *args: Any, **kwargs: Any) -> None: ...