--- /dev/null
+# Stubs for tarfile\r
+\r
+from typing import (\r
+ Callable, IO, Iterable, Iterator, List, Mapping, Optional, Type,\r
+ Union,\r
+)\r
+import os\r
+import sys\r
+from types import TracebackType\r
+\r
+\r
+if sys.version_info >= (3, 6):\r
+ _Path = Union[bytes, str, os.PathLike]\r
+elif sys.version_info >= (3,):\r
+ _Path = Union[bytes, str]\r
+else:\r
+ _Path = Union[str, unicode]\r
+\r
+ENCODING = ... # type: str\r
+\r
+USTAR_FORMAT = ... # type: int\r
+GNU_FORMAT = ... # type: int\r
+PAX_FORMAT = ... # type: int\r
+DEFAULT_FORMAT = ... # type: int\r
+\r
+REGTYPE = ... # type: bytes\r
+AREGTYPE = ... # type: bytes\r
+LNKTYPE = ... # type: bytes\r
+SYMTYPE = ... # type: bytes\r
+DIRTYPE = ... # type: bytes\r
+FIFOTYPE = ... # type: bytes\r
+CONTTYPE = ... # type: bytes\r
+CHRTYPE = ... # type: bytes\r
+BLKTYPE = ... # type: bytes\r
+GNUTYPE_SPARSE = ... # type: bytes\r
+\r
+if sys.version_info < (3,):\r
+ TAR_PLAIN = ... # type: int\r
+ TAR_GZIPPED = ... # type: int\r
+\r
+def open(name: Optional[_Path] = ..., mode: str = ...,\r
+ fileobj: Optional[IO[bytes]] = ..., bufsize: int = ...,\r
+ *, format: Optional[int] = ..., tarinfo: Optional[TarInfo] = ...,\r
+ dereference: Optional[bool] = ...,\r
+ ignore_zeros: Optional[bool] = ...,\r
+ encoding: Optional[str] = ..., errors: str = ...,\r
+ pax_headers: Optional[Mapping[str, str]] = ...,\r
+ debug: Optional[int] = ...,\r
+ errorlevel: Optional[int] = ...,\r
+ compresslevel: Optional[int] = ...) -> TarFile: ...\r
+\r
+\r
+class TarFile(Iterable[TarInfo]):\r
+ name = ... # type: Optional[_Path]\r
+ mode = ... # type: str\r
+ fileobj = ... # type: Optional[IO[bytes]]\r
+ format = ... # type: Optional[int]\r
+ tarinfo = ... # type: Optional[TarInfo]\r
+ dereference = ... # type: Optional[bool]\r
+ ignore_zeros = ... # type: Optional[bool]\r
+ encoding = ... # type: Optional[str]\r
+ errors = ... # type: str\r
+ pax_headers = ... # type: Optional[Mapping[str, str]]\r
+ debug = ... # type: Optional[int]\r
+ errorlevel = ... # type: Optional[int]\r
+ if sys.version_info < (3,):\r
+ posix = ... # type: bool\r
+ def __init__(self, name: Optional[_Path] = ..., mode: str = ...,\r
+ fileobj: Optional[IO[bytes]] = ...,\r
+ format: Optional[int] = ..., tarinfo: Optional[TarInfo] = ...,\r
+ dereference: Optional[bool] = ...,\r
+ ignore_zeros: Optional[bool] = ...,\r
+ encoding: Optional[str] = ..., errors: str = ...,\r
+ pax_headers: Optional[Mapping[str, str]] = ...,\r
+ debug: Optional[int] = ...,\r
+ errorlevel: Optional[int] = ...,\r
+ compresslevel: Optional[int] = ...) -> None: ...\r
+ def __enter__(self) -> TarFile: ...\r
+ def __exit__(self,\r
+ exc_type: Optional[Type[BaseException]],\r
+ exc_val: Optional[Exception],\r
+ exc_tb: Optional[TracebackType]) -> bool: ...\r
+ def __iter__(self) -> Iterator[TarInfo]: ...\r
+ @classmethod\r
+ def open(cls, name: Optional[_Path] = ..., mode: str = ...,\r
+ fileobj: Optional[IO[bytes]] = ..., bufsize: int = ...,\r
+ *, format: Optional[int] = ..., tarinfo: Optional[TarInfo] = ...,\r
+ dereference: Optional[bool] = ...,\r
+ ignore_zeros: Optional[bool] = ...,\r
+ encoding: Optional[str] = ..., errors: str = ...,\r
+ pax_headers: Optional[Mapping[str, str]] = ...,\r
+ debug: Optional[int] = ...,\r
+ errorlevel: Optional[int] = ...) -> TarFile: ...\r
+ def getmember(self, name: str) -> TarInfo: ...\r
+ def getmembers(self) -> List[TarInfo]: ...\r
+ def getnames(self) -> List[str]: ...\r
+ if sys.version_info >= (3, 5):\r
+ def list(self, verbose: bool = ...,\r
+ *, members: Optional[List[TarInfo]] = ...) -> None: ...\r
+ else:\r
+ def list(self, verbose: bool = ...) -> None: ...\r
+ def next(self) -> Optional[TarInfo]: ...\r
+ if sys.version_info >= (3, 5):\r
+ def extractall(self, path: _Path = ...,\r
+ members: Optional[List[TarInfo]] = ...,\r
+ *, numeric_owner: bool = ...) -> None: ...\r
+ else:\r
+ def extractall(self, path: _Path = ...,\r
+ members: Optional[List[TarInfo]] = ...) -> None: ...\r
+ if sys.version_info >= (3, 5):\r
+ def extract(self, member: Union[str, TarInfo], path: _Path = ...,\r
+ set_attrs: bool = ...,\r
+ *, numeric_owner: bool = ...) -> None: ...\r
+ elif sys.version_info >= (3,):\r
+ def extract(self, member: Union[str, TarInfo], path: _Path = ...,\r
+ set_attrs: bool = ...) -> None: ...\r
+ else:\r
+ def extract(self, member: Union[str, TarInfo],\r
+ path: _Path = ...) -> None: ...\r
+ def extractfile(self,\r
+ member: Union[str, TarInfo]) -> Optional[IO[bytes]]: ...\r
+ if sys.version_info >= (3, 7):\r
+ def add(self, name: str, arcname: Optional[str] = ...,\r
+ recursive: bool = ..., *,\r
+ filter: Optional[Callable[[TarInfo], Optional[TarInfo]]] = ...) -> None: ...\r
+ elif sys.version_info >= (3,):\r
+ def add(self, name: str, arcname: Optional[str] = ...,\r
+ recursive: bool = ...,\r
+ exclude: Optional[Callable[[str], bool]] = ..., *,\r
+ filter: Optional[Callable[[TarInfo], Optional[TarInfo]]] = ...) -> None: ...\r
+ else:\r
+ def add(self, name: str, arcname: Optional[str] = ...,\r
+ recursive: bool = ...,\r
+ exclude: Optional[Callable[[str], bool]] = ...,\r
+ filter: Optional[Callable[[TarInfo], Optional[TarInfo]]] = ...) -> None: ...\r
+ def addfile(self, tarinfo: TarInfo,\r
+ fileobj: Optional[IO[bytes]] = ...) -> None: ...\r
+ def gettarinfo(self, name: Optional[str] = ...,\r
+ arcname: Optional[str] = ...,\r
+ fileobj: Optional[IO[bytes]] = ...) -> TarInfo: ...\r
+ def close(self) -> None: ...\r
+\r
+\r
+def is_tarfile(name: str) -> bool: ...\r
+\r
+\r
+if sys.version_info < (3,):\r
+ class TarFileCompat:\r
+ def __init__(self, filename: str, mode: str = ...,\r
+ compression: int = ...) -> None: ...\r
+\r
+\r
+class TarError(Exception): ...\r
+class ReadError(TarError): ...\r
+class CompressionError(TarError): ...\r
+class StreamError(TarError): ...\r
+class ExtractError(TarError): ...\r
+class HeaderError(TarError): ...\r
+\r
+\r
+class TarInfo:\r
+ name = ... # type: str\r
+ size = ... # type: int\r
+ mtime = ... # type: int\r
+ mode = ... # type: int\r
+ type = ... # type: bytes\r
+ linkname = ... # type: str\r
+ uid = ... # type: int\r
+ gid = ... # type: int\r
+ uname = ... # type: str\r
+ gname = ... # type: str\r
+ pax_headers = ... # type: Mapping[str, str]\r
+ def __init__(self, name: str = ...) -> None: ...\r
+ if sys.version_info >= (3,):\r
+ @classmethod\r
+ def frombuf(cls, buf: bytes, encoding: str, errors: str) -> TarInfo: ...\r
+ else:\r
+ @classmethod\r
+ def frombuf(cls, buf: bytes) -> TarInfo: ...\r
+ @classmethod\r
+ def fromtarfile(cls, tarfile: TarFile) -> TarInfo: ...\r
+ def tobuf(self, format: Optional[int] = ...,\r
+ encoding: Optional[str] = ..., errors: str = ...) -> bytes: ...\r
+ def isfile(self) -> bool: ...\r
+ def isreg(self) -> bool: ...\r
+ def isdir(self) -> bool: ...\r
+ def issym(self) -> bool: ...\r
+ def islnk(self) -> bool: ...\r
+ def ischr(self) -> bool: ...\r
+ def isblk(self) -> bool: ...\r
+ def isfifo(self) -> bool: ...\r
+ def isdev(self) -> bool: ...\r