diff --git a/stdlib/3/fileinput.pyi b/stdlib/3/fileinput.pyi index dead9396b..9ae4c0f7b 100644 --- a/stdlib/3/fileinput.pyi +++ b/stdlib/3/fileinput.pyi @@ -1,4 +1,13 @@ -from typing import Iterable, Callable, IO, AnyStr, Generic, Any, Union, Iterator +from typing import Iterable, Callable, IO, AnyStr, Generic, Any, Union, Iterator, Optional + +import os +import sys + +if sys.version_info >= (3, 6): + _Path = Union[str, bytes, os.PathLike[Any]] +else: + _Path = Union[str, bytes] +_Opener = Callable[[_Path, str], IO[AnyStr]] def input( @@ -20,12 +29,12 @@ def isstdin() -> bool: ... class FileInput(Iterable[AnyStr], Generic[AnyStr]): def __init__( self, - files: Union[str, Iterable[str]]=None, - inplace: bool=..., - backup: str=..., - bufsize: int=..., - mode: str=..., - openhook: Callable[[str, str], IO[AnyStr]]=... + files: Union[None, _Path, Iterable[_Path]] = ..., + inplace: bool = ..., + backup: str = ..., + bufsize: int = ..., + mode: str = ..., + openhook: _Opener[AnyStr] = ... ) -> None: ... def __del__(self) -> None: ... @@ -34,7 +43,7 @@ class FileInput(Iterable[AnyStr], Generic[AnyStr]): def __exit__(self, type: Any, value: Any, traceback: Any) -> None: ... def __iter__(self) -> Iterator[AnyStr]: ... def __next__(self) -> AnyStr: ... - def __getitem__(self, i) -> AnyStr: ... + def __getitem__(self, i: int) -> AnyStr: ... def nextfile(self) -> None: ... def readline(self) -> AnyStr: ... def filename(self) -> str: ... @@ -44,5 +53,5 @@ class FileInput(Iterable[AnyStr], Generic[AnyStr]): def isfirstline(self) -> bool: ... def isstdin(self) -> bool: ... -def hook_compressed(filename: str, mode: str) -> IO[AnyStr]: ... -def hook_encoded(encoding: str) -> IO[AnyStr]: ... +def hook_compressed(filename: _Path, mode: str) -> IO[Any]: ... +def hook_encoded(encoding: str, errors: Optional[str] = ...) -> _Opener[Any]: ...