From 8f476378e04a2ceebe9240af403b696ff7a5d56f Mon Sep 17 00:00:00 2001 From: Yusuke Miyazaki Date: Fri, 9 Jun 2017 22:59:45 +0900 Subject: [PATCH] Update stub for tarfile (#1389) --- stdlib/2and3/tarfile.pyi | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/stdlib/2and3/tarfile.pyi b/stdlib/2and3/tarfile.pyi index c16402941..22fa951b3 100644 --- a/stdlib/2and3/tarfile.pyi +++ b/stdlib/2and3/tarfile.pyi @@ -4,10 +4,18 @@ from typing import ( Callable, IO, Iterable, Iterator, List, Mapping, Optional, Type, Union, ) +import os import sys from types import TracebackType +if sys.version_info >= (3, 6): + _Path = Union[bytes, str, os.PathLike] +elif sys.version_info >= (3,): + _Path = Union[bytes, str] +else: + _Path = Union[str, unicode] + ENCODING = ... # type: str USTAR_FORMAT = ... # type: int @@ -30,7 +38,7 @@ if sys.version_info < (3,): TAR_PLAIN = ... # type: int TAR_GZIPPED = ... # type: int -def open(name: Optional[str] = ..., mode: str = ..., +def open(name: Optional[_Path] = ..., mode: str = ..., fileobj: Optional[IO[bytes]] = ..., bufsize: int = ..., *, format: Optional[int] = ..., tarinfo: Optional[TarInfo] = ..., dereference: Optional[bool] = ..., @@ -43,7 +51,7 @@ def open(name: Optional[str] = ..., mode: str = ..., class TarFile(Iterable[TarInfo]): - name = ... # type: Optional[str] + name = ... # type: Optional[_Path] mode = ... # type: str fileobj = ... # type: Optional[IO[bytes]] format = ... # type: Optional[int] @@ -57,7 +65,7 @@ class TarFile(Iterable[TarInfo]): errorlevel = ... # type: Optional[int] if sys.version_info < (3,): posix = ... # type: bool - def __init__(self, name: Optional[str] = ..., mode: str = ..., + def __init__(self, name: Optional[_Path] = ..., mode: str = ..., fileobj: Optional[IO[bytes]] = ..., format: Optional[int] = ..., tarinfo: Optional[TarInfo] = ..., dereference: Optional[bool] = ..., @@ -74,7 +82,7 @@ class TarFile(Iterable[TarInfo]): exc_tb: Optional[TracebackType]) -> bool: ... def __iter__(self) -> Iterator[TarInfo]: ... @classmethod - def open(cls, name: Optional[str] = ..., mode: str = ..., + def open(cls, name: Optional[_Path] = ..., mode: str = ..., fileobj: Optional[IO[bytes]] = ..., bufsize: int = ..., *, format: Optional[int] = ..., tarinfo: Optional[TarInfo] = ..., dereference: Optional[bool] = ..., @@ -93,22 +101,22 @@ class TarFile(Iterable[TarInfo]): def list(self, verbose: bool = ...) -> None: ... def next(self) -> Optional[TarInfo]: ... if sys.version_info >= (3, 5): - def extractall(self, path: str = ..., + def extractall(self, path: _Path = ..., members: Optional[List[TarInfo]] = ..., *, numeric_owner: bool = ...) -> None: ... else: - def extractall(self, path: str = ..., + def extractall(self, path: _Path = ..., members: Optional[List[TarInfo]] = ...) -> None: ... if sys.version_info >= (3, 5): - def extract(self, member: Union[str, TarInfo], path: str = ..., + def extract(self, member: Union[str, TarInfo], path: _Path = ..., set_attrs: bool = ..., *, numeric_owner: bool = ...) -> None: ... elif sys.version_info >= (3,): - def extract(self, member: Union[str, TarInfo], path: str = ..., + def extract(self, member: Union[str, TarInfo], path: _Path = ..., set_attrs: bool = ...) -> None: ... else: def extract(self, member: Union[str, TarInfo], - path: str = ...) -> None: ... + path: _Path = ...) -> None: ... def extractfile(self, member: Union[str, TarInfo]) -> Optional[IO[bytes]]: ... if sys.version_info >= (3,):