From e9d1f8659178b94180b8400221237c872905aece Mon Sep 17 00:00:00 2001 From: Vasily Zakharov Date: Thu, 25 Jul 2019 17:57:14 +0300 Subject: [PATCH] gettext stubs fixed (#3130) --- stdlib/3/gettext.pyi | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/stdlib/3/gettext.pyi b/stdlib/3/gettext.pyi index eeb9b0976..7697404fb 100644 --- a/stdlib/3/gettext.pyi +++ b/stdlib/3/gettext.pyi @@ -1,9 +1,11 @@ # Stubs for gettext (Python 3.4) -from typing import Any, IO, List, Optional, Union, Callable +from typing import overload, Any, Container, IO, Iterable, Optional, Type, TypeVar +from typing_extensions import Literal class NullTranslations: def __init__(self, fp: IO[str] = ...) -> None: ... + def _parse(self, fp: IO[str]) -> None: ... def add_fallback(self, fallback: NullTranslations) -> None: ... def gettext(self, message: str) -> str: ... def lgettext(self, message: str) -> str: ... @@ -12,26 +14,33 @@ class NullTranslations: def info(self) -> Any: ... def charset(self) -> Any: ... def output_charset(self) -> Any: ... - def set_output_charset(self, charset: Any) -> None: ... - def install(self, names: List[str] = ...) -> None: ... + def set_output_charset(self, charset: str) -> None: ... + def install(self, names: Optional[Container[str]] = ...) -> None: ... class GNUTranslations(NullTranslations): LE_MAGIC: int BE_MAGIC: int -def find(domain: str, localedir: str = ..., languages: List[str] = ..., - all: bool = ...): ... +def find(domain: str, localedir: Optional[str] = ..., languages: Optional[Iterable[str]] = ..., + all: bool = ...) -> Any: ... -def translation(domain: str, localedir: str = ..., languages: List[str] = ..., - class_: Callable[[IO[str]], NullTranslations] = ..., - fallback: bool = ..., codeset: Any = ...) -> NullTranslations: ... +_T = TypeVar('_T') +@overload +def translation(domain: str, localedir: Optional[str] = ..., languages: Optional[Iterable[str]] = ..., + class_: None = ..., fallback: bool = ..., codeset: Optional[str] = ...) -> NullTranslations: ... +@overload +def translation(domain: str, localedir: Optional[str] = ..., languages: Optional[Iterable[str]] = ..., + class_: Type[_T] = ..., fallback: Literal[False] = ..., codeset: Optional[str] = ...) -> _T: ... +@overload +def translation(domain: str, localedir: Optional[str] = ..., languages: Optional[Iterable[str]] = ..., + class_: Type[_T] = ..., fallback: Literal[True] = ..., codeset: Optional[str] = ...) -> Any: ... -def install(domain: str, localedir: str = ..., codeset: Any = ..., - names: List[str] = ...): ... +def install(domain: str, localedir: Optional[str] = ..., codeset: Optional[str] = ..., + names: Optional[Container[str]] = ...) -> None: ... -def textdomain(domain: str = ...) -> str: ... -def bindtextdomain(domain: str, localedir: str = ...) -> str: ... -def bind_textdomain_codeset(domain: str, codeset: str = ...) -> str: ... +def textdomain(domain: Optional[str] = ...) -> str: ... +def bindtextdomain(domain: str, localedir: Optional[str] = ...) -> str: ... +def bind_textdomain_codeset(domain: str, codeset: Optional[str] = ...) -> str: ... def dgettext(domain: str, message: str) -> str: ... def ldgettext(domain: str, message: str) -> str: ... def dngettext(domain: str, singular: str, plural: str, n: int) -> str: ...