1from random import Random 2from thread import LockType 3from typing import IO, Any, AnyStr, Iterable, Iterator, List, Optional, Text, Tuple, Union, overload 4 5TMP_MAX: int 6tempdir: str 7template: str 8_name_sequence: Optional[_RandomNameSequence] 9 10class _RandomNameSequence: 11 characters: str = ... 12 mutex: LockType 13 @property 14 def rng(self) -> Random: ... 15 def __iter__(self) -> _RandomNameSequence: ... 16 def next(self) -> str: ... 17 # from os.path: 18 def normcase(self, path: AnyStr) -> AnyStr: ... 19 20class _TemporaryFileWrapper(IO[str]): 21 delete: bool 22 file: IO[str] 23 name: Any 24 def __init__(self, file: IO[str], name: Any, delete: bool = ...) -> None: ... 25 def __del__(self) -> None: ... 26 def __enter__(self) -> _TemporaryFileWrapper: ... 27 def __exit__(self, exc, value, tb) -> Optional[bool]: ... 28 def __getattr__(self, name: unicode) -> Any: ... 29 def close(self) -> None: ... 30 def unlink(self, path: unicode) -> None: ... 31 # These methods don't exist directly on this object, but 32 # are delegated to the underlying IO object through __getattr__. 33 # We need to add them here so that this class is concrete. 34 def __iter__(self) -> Iterator[str]: ... 35 def fileno(self) -> int: ... 36 def flush(self) -> None: ... 37 def isatty(self) -> bool: ... 38 def next(self) -> str: ... 39 def read(self, n: int = ...) -> str: ... 40 def readable(self) -> bool: ... 41 def readline(self, limit: int = ...) -> str: ... 42 def readlines(self, hint: int = ...) -> List[str]: ... 43 def seek(self, offset: int, whence: int = ...) -> int: ... 44 def seekable(self) -> bool: ... 45 def tell(self) -> int: ... 46 def truncate(self, size: Optional[int] = ...) -> int: ... 47 def writable(self) -> bool: ... 48 def write(self, s: Text) -> int: ... 49 def writelines(self, lines: Iterable[str]) -> None: ... 50 51# TODO text files 52 53def TemporaryFile( 54 mode: Union[bytes, unicode] = ..., 55 bufsize: int = ..., 56 suffix: Union[bytes, unicode] = ..., 57 prefix: Union[bytes, unicode] = ..., 58 dir: Union[bytes, unicode] = ..., 59) -> _TemporaryFileWrapper: ... 60def NamedTemporaryFile( 61 mode: Union[bytes, unicode] = ..., 62 bufsize: int = ..., 63 suffix: Union[bytes, unicode] = ..., 64 prefix: Union[bytes, unicode] = ..., 65 dir: Union[bytes, unicode] = ..., 66 delete: bool = ..., 67) -> _TemporaryFileWrapper: ... 68def SpooledTemporaryFile( 69 max_size: int = ..., 70 mode: Union[bytes, unicode] = ..., 71 buffering: int = ..., 72 suffix: Union[bytes, unicode] = ..., 73 prefix: Union[bytes, unicode] = ..., 74 dir: Union[bytes, unicode] = ..., 75) -> _TemporaryFileWrapper: ... 76 77class TemporaryDirectory: 78 name: Any 79 def __init__( 80 self, suffix: Union[bytes, unicode] = ..., prefix: Union[bytes, unicode] = ..., dir: Union[bytes, unicode] = ... 81 ) -> None: ... 82 def cleanup(self) -> None: ... 83 def __enter__(self) -> Any: ... # Can be str or unicode 84 def __exit__(self, type, value, traceback) -> None: ... 85 86@overload 87def mkstemp() -> Tuple[int, str]: ... 88@overload 89def mkstemp(suffix: AnyStr = ..., prefix: AnyStr = ..., dir: Optional[AnyStr] = ..., text: bool = ...) -> Tuple[int, AnyStr]: ... 90@overload 91def mkdtemp() -> str: ... 92@overload 93def mkdtemp(suffix: AnyStr = ..., prefix: AnyStr = ..., dir: Optional[AnyStr] = ...) -> AnyStr: ... 94@overload 95def mktemp() -> str: ... 96@overload 97def mktemp(suffix: AnyStr = ..., prefix: AnyStr = ..., dir: Optional[AnyStr] = ...) -> AnyStr: ... 98def gettempdir() -> str: ... 99def gettempprefix() -> str: ... 100def _candidate_tempdir_list() -> List[str]: ... 101def _get_candidate_names() -> Optional[_RandomNameSequence]: ... 102def _get_default_tempdir() -> str: ... 103