Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 36 additions & 16 deletions stdlib/gettext.pyi
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import io
import sys
from _typeshed import StrPath
from collections.abc import Container, Iterable, Sequence
from collections.abc import Callable, Container, Iterable, Sequence
from typing import Any, Protocol, TypeVar, overload
from typing_extensions import Final, Literal

Expand Down Expand Up @@ -110,7 +111,7 @@ def find(
@overload
def find(domain: str, localedir: StrPath | None = ..., languages: Iterable[str] | None = ..., all: bool = ...) -> Any: ...

_T = TypeVar("_T")
_NullTranslationsT = TypeVar("_NullTranslationsT", bound=NullTranslations)

if sys.version_info >= (3, 11):
@overload
Expand All @@ -119,24 +120,33 @@ if sys.version_info >= (3, 11):
localedir: StrPath | None = ...,
languages: Iterable[str] | None = ...,
class_: None = ...,
fallback: bool = ...,
) -> NullTranslations: ...
fallback: Literal[False] = ...,
) -> GNUTranslations: ...
@overload
def translation(
domain: str,
localedir: StrPath | None = ...,
languages: Iterable[str] | None = ...,
class_: type[_T] = ...,
*,
class_: Callable[[io.BufferedReader], _NullTranslationsT],
fallback: Literal[False] = ...,
) -> _NullTranslationsT: ...
@overload
def translation(
domain: str,
localedir: StrPath | None,
languages: Iterable[str] | None,
class_: Callable[[io.BufferedReader], _NullTranslationsT],
fallback: Literal[False] = ...,
) -> _T: ...
) -> _NullTranslationsT: ...
@overload
def translation(
domain: str,
localedir: StrPath | None = ...,
languages: Iterable[str] | None = ...,
class_: type[Any] = ...,
fallback: Literal[True] = ...,
) -> Any: ...
class_: Callable[[io.BufferedReader], NullTranslations] | None = ...,
fallback: bool = ...,
) -> NullTranslations: ...
def install(domain: str, localedir: StrPath | None = ..., *, names: Container[str] | None = ...) -> None: ...

else:
Expand All @@ -146,27 +156,37 @@ else:
localedir: StrPath | None = ...,
languages: Iterable[str] | None = ...,
class_: None = ...,
fallback: bool = ...,
fallback: Literal[False] = ...,
codeset: str | None = ...,
) -> NullTranslations: ...
) -> GNUTranslations: ...
@overload
def translation(
domain: str,
localedir: StrPath | None = ...,
languages: Iterable[str] | None = ...,
class_: type[_T] = ...,
*,
class_: Callable[[io.BufferedReader], _NullTranslationsT],
fallback: Literal[False] = ...,
codeset: str | None = ...,
) -> _T: ...
) -> _NullTranslationsT: ...
@overload
def translation(
domain: str,
localedir: StrPath | None,
languages: Iterable[str] | None,
class_: Callable[[io.BufferedReader], _NullTranslationsT],
fallback: Literal[False] = ...,
codeset: str | None = ...,
) -> _NullTranslationsT: ...
@overload
def translation(
domain: str,
localedir: StrPath | None = ...,
languages: Iterable[str] | None = ...,
class_: type[Any] = ...,
fallback: Literal[True] = ...,
class_: Callable[[io.BufferedReader], NullTranslations] | None = ...,
fallback: bool = ...,
codeset: str | None = ...,
) -> Any: ...
) -> NullTranslations: ...
def install(
domain: str, localedir: StrPath | None = ..., codeset: str | None = ..., names: Container[str] | None = ...
) -> None: ...
Expand Down