add @overload clauses to smart_text, smart_bytes, force_bytes

This commit is contained in:
Maxim Kurnikov
2019-12-10 23:07:44 +03:00
parent 7e794534c0
commit f7e2109e06

View File

@@ -1,38 +1,59 @@
from typing import Any, Optional, TypeVar, Union, Literal, overload
from decimal import Decimal
import datetime import datetime
from decimal import Decimal
from typing import Any, TypeVar, overload, Union
from django.utils.functional import Promise
from typing_extensions import Literal
class DjangoUnicodeDecodeError(UnicodeDecodeError): class DjangoUnicodeDecodeError(UnicodeDecodeError):
obj: bytes = ... obj: bytes = ...
def __init__(self, obj: bytes, *args: Any) -> None: ... def __init__(self, obj: bytes, *args: Any) -> None: ...
python_2_unicode_compatible: Any _P = TypeVar("_P", bound=Promise)
_S = TypeVar("_S", bound=str)
_PT = TypeVar("_PT", None, int, float, Decimal, datetime.datetime, datetime.date, datetime.time)
@overload
def smart_text(s: _P, encoding: str = ..., strings_only: bool = ..., errors: str = ...,) -> _P: ...
@overload
def smart_text(s: _PT, encoding: str = ..., strings_only: Literal[True] = ..., errors: str = ...,) -> _PT: ...
@overload
def smart_text(s: _S, encoding: str = ..., strings_only: bool = ..., errors: str = ...) -> _S: ...
@overload
def smart_text(s: Any, encoding: str = ..., strings_only: bool = ..., errors: str = ...) -> str: ... def smart_text(s: Any, encoding: str = ..., strings_only: bool = ..., errors: str = ...) -> str: ...
def is_protected_type(obj: Any) -> bool: ... def is_protected_type(obj: Any) -> bool: ...
_ProtectedType = TypeVar(
"_ProtectedType", Union[None, int, float, Decimal, datetime.datetime, datetime.date, datetime.time]
)
@overload @overload
def force_text(s: str, encoding: str = ..., strings_only: bool = ..., errors: str = ...) -> str: ... def force_text(s: _PT, encoding: str = ..., strings_only: Literal[True] = ..., errors: str = ...,) -> _PT: ...
@overload @overload
def force_text( def force_text(s: _S, encoding: str = ..., strings_only: bool = ..., errors: str = ...) -> _S: ...
s: _ProtectedType, encoding: str = ..., strings_only: Literal[True] = ..., errors: str = ...,
) -> _ProtectedType: ...
@overload @overload
def force_text(s: Any, encoding: str = ..., strings_only: bool = ..., errors: str = ...) -> str: ... def force_text(s: Any, encoding: str = ..., strings_only: bool = ..., errors: str = ...) -> str: ...
@overload
def smart_bytes(s: _P, encoding: str = ..., strings_only: bool = ..., errors: str = ...,) -> _P: ...
@overload
def smart_bytes(s: _PT, encoding: str = ..., strings_only: Literal[True] = ..., errors: str = ...,) -> _PT: ...
@overload
def smart_bytes(s: Any, encoding: str = ..., strings_only: bool = ..., errors: str = ...) -> bytes: ... def smart_bytes(s: Any, encoding: str = ..., strings_only: bool = ..., errors: str = ...) -> bytes: ...
@overload
def force_bytes(s: _PT, encoding: str = ..., strings_only: Literal[True] = ..., errors: str = ...,) -> _PT: ...
@overload
def force_bytes(s: Any, encoding: str = ..., strings_only: bool = ..., errors: str = ...) -> bytes: ... def force_bytes(s: Any, encoding: str = ..., strings_only: bool = ..., errors: str = ...) -> bytes: ...
smart_str = smart_text smart_str = smart_text
force_str = force_text force_str = force_text
@overload
def iri_to_uri(iri: Optional[str]) -> Optional[str]: ... def iri_to_uri(iri: None) -> None: ...
def uri_to_iri(uri: Optional[str]) -> Optional[str]: ... @overload
def iri_to_uri(iri: Union[str, Promise]) -> str: ...
@overload
def uri_to_iri(iri: None) -> None: ...
@overload
def uri_to_iri(iri: str) -> str: ...
def escape_uri_path(path: str) -> str: ... def escape_uri_path(path: str) -> str: ...
def repercent_broken_unicode(path: bytes) -> bytes: ... def repercent_broken_unicode(path: bytes) -> bytes: ...
def filepath_to_uri(path: Optional[str]) -> Optional[str]: ... @overload
def filepath_to_uri(path: None) -> None: ...
@overload
def filepath_to_uri(path: str) -> str: ...
def get_system_encoding() -> str: ... def get_system_encoding() -> str: ...
DEFAULT_LOCALE_ENCODING: Any DEFAULT_LOCALE_ENCODING: Any