fixes to fileinput (#1218)

- Correct incorrect return type for hook_encoded
- Add PathLike support
- Add some missing types
- Remove incorrect use of AnyStr
This commit is contained in:
Jelle Zijlstra
2017-04-27 08:12:53 -07:00
committed by Matthias Kramm
parent d1da44dc1b
commit c1a736fd6d

View File

@@ -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]: ...