From 61d26d7aa58304793f3ddb33f918ca3fe613faf9 Mon Sep 17 00:00:00 2001 From: Julin S <48789920+ju-sh@users.noreply.github.com> Date: Tue, 11 Feb 2020 21:44:45 +0530 Subject: [PATCH 1/4] add universaldetector --- third_party/2and3/chardet/__init__.pyi | 0 .../2and3/chardet/universaldetector.pyi | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 third_party/2and3/chardet/__init__.pyi create mode 100644 third_party/2and3/chardet/universaldetector.pyi diff --git a/third_party/2and3/chardet/__init__.pyi b/third_party/2and3/chardet/__init__.pyi new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/third_party/2and3/chardet/universaldetector.pyi b/third_party/2and3/chardet/universaldetector.pyi new file mode 100644 index 000000000000..6c7c619b5ed9 --- /dev/null +++ b/third_party/2and3/chardet/universaldetector.pyi @@ -0,0 +1,19 @@ +from typing import Dict, Union, AnyStr, Pattern +from logging import Logger + +class UniversalDetector: + MINIMUM_THRESHOLD: float + HIGH_BYTE_DETECTOR: Pattern[bytes] + ESC_DETECTOR: Pattern[bytes] + WIN_BYTE_DETECTOR: Pattern[bytes] + ISO_WIN_MAP: Dict[str, str] + + result: Dict[str, Union[str, float]] + done: bool + lang_filter: int + logger: Logger + + def __init__(self, lang_filter: int) -> None: ... + def reset(self) -> None: ... + def feed(self, byte_str: bytes) -> None: ... + def close(self) -> Dict[str, Union[str, float]]: ... From 9a84e2129ecb77bb000686fed0a9c6f5375fa909 Mon Sep 17 00:00:00 2001 From: Julin S <48789920+ju-sh@users.noreply.github.com> Date: Mon, 9 Mar 2020 23:55:57 +0530 Subject: [PATCH 2/4] add TypedDict --- third_party/2and3/chardet/__init__.pyi | 3 ++ .../2and3/chardet/universaldetector.pyi | 28 ++++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/third_party/2and3/chardet/__init__.pyi b/third_party/2and3/chardet/__init__.pyi index e69de29bb2d1..372f4da03670 100644 --- a/third_party/2and3/chardet/__init__.pyi +++ b/third_party/2and3/chardet/__init__.pyi @@ -0,0 +1,3 @@ +from .universaldetector import UniversalDetector as UniversalDetector + +def __getattr__(name: str) -> Any: ... # incomplete diff --git a/third_party/2and3/chardet/universaldetector.pyi b/third_party/2and3/chardet/universaldetector.pyi index 6c7c619b5ed9..129bbf709a89 100644 --- a/third_party/2and3/chardet/universaldetector.pyi +++ b/third_party/2and3/chardet/universaldetector.pyi @@ -1,14 +1,30 @@ -from typing import Dict, Union, AnyStr, Pattern +from typing import Dict, Union, AnyStr, Pattern, Optional from logging import Logger -class UniversalDetector: +if sys.version_info >= (3, 8): + from typing import TypedDict + + class FinalResultType(TypedDict): + encoding: str + confidence: float + language: str + + class IntermediateResultType(TypedDict): + encoding: Optional[str] + confidence: float + language: Optional[str] + +class UniversalDetector(object): MINIMUM_THRESHOLD: float HIGH_BYTE_DETECTOR: Pattern[bytes] ESC_DETECTOR: Pattern[bytes] WIN_BYTE_DETECTOR: Pattern[bytes] ISO_WIN_MAP: Dict[str, str] - result: Dict[str, Union[str, float]] + if sys.version_info >= (3, 8): + result: IntermediateResultType + else: + result: Dict[str, Union[str, float]] done: bool lang_filter: int logger: Logger @@ -16,4 +32,8 @@ class UniversalDetector: def __init__(self, lang_filter: int) -> None: ... def reset(self) -> None: ... def feed(self, byte_str: bytes) -> None: ... - def close(self) -> Dict[str, Union[str, float]]: ... + + if sys.version_info >= (3, 8): + def close(self) -> FinalResultType: ... + else: + def close(self) -> Dict[str, Union[str, float]]: ... From debc9ff585311a2fd620a4c1bdc1611cef7c8579 Mon Sep 17 00:00:00 2001 From: Julin S <48789920+ju-sh@users.noreply.github.com> Date: Tue, 10 Mar 2020 00:46:38 +0530 Subject: [PATCH 3/4] add missing imports --- third_party/2and3/chardet/__init__.pyi | 1 + third_party/2and3/chardet/universaldetector.pyi | 1 + 2 files changed, 2 insertions(+) diff --git a/third_party/2and3/chardet/__init__.pyi b/third_party/2and3/chardet/__init__.pyi index 372f4da03670..3caad8946a30 100644 --- a/third_party/2and3/chardet/__init__.pyi +++ b/third_party/2and3/chardet/__init__.pyi @@ -1,3 +1,4 @@ +from typing import Any from .universaldetector import UniversalDetector as UniversalDetector def __getattr__(name: str) -> Any: ... # incomplete diff --git a/third_party/2and3/chardet/universaldetector.pyi b/third_party/2and3/chardet/universaldetector.pyi index 129bbf709a89..11c295c63c77 100644 --- a/third_party/2and3/chardet/universaldetector.pyi +++ b/third_party/2and3/chardet/universaldetector.pyi @@ -1,3 +1,4 @@ +import sys from typing import Dict, Union, AnyStr, Pattern, Optional from logging import Logger From 70bb74f0162ba047b30552e743a75c27523eea3e Mon Sep 17 00:00:00 2001 From: Julin S <48789920+ju-sh@users.noreply.github.com> Date: Thu, 12 Mar 2020 22:12:09 +0530 Subject: [PATCH 4/4] use typing_extensions --- .../2and3/chardet/universaldetector.pyi | 31 +++++++------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/third_party/2and3/chardet/universaldetector.pyi b/third_party/2and3/chardet/universaldetector.pyi index 11c295c63c77..2c3250cc25da 100644 --- a/third_party/2and3/chardet/universaldetector.pyi +++ b/third_party/2and3/chardet/universaldetector.pyi @@ -1,19 +1,17 @@ import sys from typing import Dict, Union, AnyStr, Pattern, Optional +from typing_extensions import TypedDict from logging import Logger -if sys.version_info >= (3, 8): - from typing import TypedDict +class _FinalResultType(TypedDict): + encoding: str + confidence: float + language: str - class FinalResultType(TypedDict): - encoding: str - confidence: float - language: str - - class IntermediateResultType(TypedDict): - encoding: Optional[str] - confidence: float - language: Optional[str] +class _IntermediateResultType(TypedDict): + encoding: Optional[str] + confidence: float + language: Optional[str] class UniversalDetector(object): MINIMUM_THRESHOLD: float @@ -22,10 +20,7 @@ class UniversalDetector(object): WIN_BYTE_DETECTOR: Pattern[bytes] ISO_WIN_MAP: Dict[str, str] - if sys.version_info >= (3, 8): - result: IntermediateResultType - else: - result: Dict[str, Union[str, float]] + result: _IntermediateResultType done: bool lang_filter: int logger: Logger @@ -33,8 +28,4 @@ class UniversalDetector(object): def __init__(self, lang_filter: int) -> None: ... def reset(self) -> None: ... def feed(self, byte_str: bytes) -> None: ... - - if sys.version_info >= (3, 8): - def close(self) -> FinalResultType: ... - else: - def close(self) -> Dict[str, Union[str, float]]: ... + def close(self) -> _FinalResultType: ...