# Stubs for tempfile
# Ron Murawski <ron@horizonchess.com>

# based on http://docs.python.org/3.3/library/tempfile.html
# Adapted for Python 2.7 by Michal Pokorny

from typing import Tuple, IO

# global variables
tempdir = ...  # type: str
template = ...  # type: str

# TODO text files

# function stubs
def TemporaryFile(
            mode: str = ..., bufsize: int = ..., suffix: str = ...,
            prefix: str = ..., dir: str = ...) -> IO[str]: ...
def NamedTemporaryFile(
            mode: str = ..., bufsize: int = ..., suffix: str = ...,
            prefix: str = ..., dir: str = ..., delete: bool = ...
            ) -> IO[str]: ...
def SpooledTemporaryFile(
           max_size: int = ..., mode: str = ..., buffering: int = ...,
           suffix: str = ..., prefix: str = ..., dir: str = ...) -> IO[str]:
    ...

class TemporaryDirectory:
    name = ...  # type: basestring
    def __init__(self, suffix: basestring = ..., prefix: basestring = ...,
                 dir: basestring = ...) -> None: ...
    def cleanup(self) -> None: ...
    def __enter__(self) -> basestring: ...
    def __exit__(self, type, value, traceback) -> bool: ...

def mkstemp(suffix: basestring = ..., prefix: basestring = ..., dir: basestring = ...,
            text: bool = ...) -> Tuple[int, basestring]: ...
def mkdtemp(suffix: basestring = ..., prefix: basestring = ...,
            dir: basestring = ...) -> basestring: ...
def mktemp(suffix: basestring = ..., prefix: basestring = ..., dir: basestring = ...) -> basestring: ...
def gettempdir() -> basestring: ...
def gettempprefix() -> basestring: ...
