From c930e889ee569e83e3446e4d14f2dce43e06d2d4 Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Wed, 24 May 2017 07:58:56 -0700 Subject: [PATCH] merge 2 and 3 stubs for fileinput (#1319) * merge 2 and 3 stubs for fileinput Plus some minor fixes. * pytype doesn't like generic type aliases --- stdlib/2/fileinput.pyi | 46 ------------------------------- stdlib/{3 => 2and3}/fileinput.pyi | 31 +++++++++++---------- 2 files changed, 17 insertions(+), 60 deletions(-) delete mode 100644 stdlib/2/fileinput.pyi rename stdlib/{3 => 2and3}/fileinput.pyi (58%) diff --git a/stdlib/2/fileinput.pyi b/stdlib/2/fileinput.pyi deleted file mode 100644 index f3e1f3770..000000000 --- a/stdlib/2/fileinput.pyi +++ /dev/null @@ -1,46 +0,0 @@ -from typing import Iterable, Callable, IO, Optional, Union, Iterator - -class FileInput(Iterable[str]): - def __init__( - self, - files: Optional[Union[str, Iterable[str]]] = None, - inplace: bool = ..., - backup: str = ..., - bufsize: int = ..., - mode: str = ..., - openhook: Callable[[str, str], IO[str]] = ... - ) -> None: ... - - def __del__(self) -> None: ... - def close(self) -> None: ... - def __iter__(self) -> Iterator[str]: ... - def __getitem__(self, i: Union[int, slice]) -> str: ... - def next(self) -> str: ... - def nextfile(self) -> None: ... - def readline(self) -> str: ... - def filename(self) -> Optional[str]: ... - def lineno(self) -> int: ... - def filelineno(self) -> int: ... - def fileno(self) -> int: ... - def isfirstline(self) -> bool: ... - def isstdin(self) -> bool: ... - -def input( - files: Optional[Union[str, Iterable[str]]] = None, - inplace: bool = ..., - backup: str = ..., - bufsize: int = ..., - mode: str = ..., - openhook: Callable[[str, str], IO[str]] = ...) -> FileInput: ... - - -def filename() -> Optional[str]: ... -def lineno() -> int: ... -def filelineno() -> int: ... -def isfirstline() -> bool: ... -def isstdin() -> bool: ... -def nextfile() -> None: ... -def close() -> None: ... - -def hook_compressed(filename: str, mode: str) -> IO[str]: ... -def hook_encoded(encoding: str) -> Callable[[str, str], IO[str]]: ... diff --git a/stdlib/3/fileinput.pyi b/stdlib/2and3/fileinput.pyi similarity index 58% rename from stdlib/3/fileinput.pyi rename to stdlib/2and3/fileinput.pyi index 9ae4c0f7b..4ca7772cd 100644 --- a/stdlib/3/fileinput.pyi +++ b/stdlib/2and3/fileinput.pyi @@ -1,22 +1,21 @@ -from typing import Iterable, Callable, IO, AnyStr, Generic, Any, Union, Iterator, Optional +from typing import Iterable, Callable, IO, AnyStr, Generic, Any, Text, Union, Iterator, Optional import os import sys if sys.version_info >= (3, 6): - _Path = Union[str, bytes, os.PathLike[Any]] + _Path = Union[Text, bytes, os.PathLike[Any]] else: - _Path = Union[str, bytes] -_Opener = Callable[[_Path, str], IO[AnyStr]] + _Path = Union[Text, bytes] def input( - files: Union[str, Iterable[str]]=None, - inplace: bool=..., - backup: str=..., - bufsize: int=..., - mode: str=..., - openhook: Callable[[str, str], IO[AnyStr]]=...) -> Iterable[AnyStr]: ... + files: Union[_Path, Iterable[_Path], None] = ..., + inplace: bool = ..., + backup: str = ..., + bufsize: int = ..., + mode: str = ..., + openhook: Callable[[_Path, str], IO[AnyStr]] = ...) -> Iterable[AnyStr]: ... def close() -> None: ... @@ -34,13 +33,14 @@ class FileInput(Iterable[AnyStr], Generic[AnyStr]): backup: str = ..., bufsize: int = ..., mode: str = ..., - openhook: _Opener[AnyStr] = ... + openhook: Callable[[_Path, str], IO[AnyStr]] = ... ) -> None: ... def __del__(self) -> None: ... def close(self) -> None: ... - def __enter__(self) -> 'FileInput[AnyStr]': ... - def __exit__(self, type: Any, value: Any, traceback: Any) -> None: ... + if sys.version_info >= (3, 2): + def __enter__(self) -> FileInput[AnyStr]: ... + def __exit__(self, type: Any, value: Any, traceback: Any) -> None: ... def __iter__(self) -> Iterator[AnyStr]: ... def __next__(self) -> AnyStr: ... def __getitem__(self, i: int) -> AnyStr: ... @@ -54,4 +54,7 @@ class FileInput(Iterable[AnyStr], Generic[AnyStr]): def isstdin(self) -> bool: ... def hook_compressed(filename: _Path, mode: str) -> IO[Any]: ... -def hook_encoded(encoding: str, errors: Optional[str] = ...) -> _Opener[Any]: ... +if sys.version_info >= (3, 6): + def hook_encoded(encoding: str, errors: Optional[str] = ...) -> Callable[[_Path, str], IO[Any]]: ... +else: + def hook_encoded(encoding: str) -> Callable[[_Path, str], IO[Any]]: ...