33
44# based on http://docs.python.org/3.3/library/tempfile.html
55
6+ import os
67import sys
78from types import TracebackType
8- from typing import Any , AnyStr , Generic , IO , Iterable , Iterator , List , Optional , overload , Tuple , Type
9+ from typing import Any , AnyStr , Generic , IO , Iterable , Iterator , List , Optional , overload , Tuple , Type , TypeVar , Union
910
1011if sys .version_info >= (3 , 8 ):
1112 from typing import Literal
@@ -17,6 +18,12 @@ TMP_MAX: int
1718tempdir : Optional [str ]
1819template : str
1920
21+ _T = TypeVar ("_T" ) # for pytype, define typevar in same file as alias
22+ if sys .version_info >= (3 , 6 ):
23+ _DirT = Union [_T , os .PathLike [_T ]]
24+ else :
25+ _DirT = Union [_T ]
26+
2027@overload
2128def TemporaryFile (
2229 mode : Literal ["r" , "w" , "a" , "x" , "r+" , "w+" , "a+" , "x+" , "rt" , "wt" , "at" , "xt" , "r+t" , "w+t" , "a+t" , "x+t" ],
@@ -25,7 +32,7 @@ def TemporaryFile(
2532 newline : Optional [str ] = ...,
2633 suffix : Optional [AnyStr ] = ...,
2734 prefix : Optional [AnyStr ] = ...,
28- dir : Optional [AnyStr ] = ...,
35+ dir : Optional [_DirT [ AnyStr ] ] = ...,
2936) -> IO [str ]: ...
3037@overload
3138def TemporaryFile (
@@ -35,7 +42,7 @@ def TemporaryFile(
3542 newline : Optional [str ] = ...,
3643 suffix : Optional [AnyStr ] = ...,
3744 prefix : Optional [AnyStr ] = ...,
38- dir : Optional [AnyStr ] = ...,
45+ dir : Optional [_DirT [ AnyStr ] ] = ...,
3946) -> IO [bytes ]: ...
4047@overload
4148def TemporaryFile (
@@ -45,7 +52,7 @@ def TemporaryFile(
4552 newline : Optional [str ] = ...,
4653 suffix : Optional [AnyStr ] = ...,
4754 prefix : Optional [AnyStr ] = ...,
48- dir : Optional [AnyStr ] = ...,
55+ dir : Optional [_DirT [ AnyStr ] ] = ...,
4956) -> IO [Any ]: ...
5057
5158@overload
@@ -56,7 +63,7 @@ def NamedTemporaryFile(
5663 newline : Optional [str ] = ...,
5764 suffix : Optional [AnyStr ] = ...,
5865 prefix : Optional [AnyStr ] = ...,
59- dir : Optional [AnyStr ] = ...,
66+ dir : Optional [_DirT [ AnyStr ] ] = ...,
6067 delete : bool = ...,
6168) -> IO [str ]: ...
6269@overload
@@ -67,7 +74,7 @@ def NamedTemporaryFile(
6774 newline : Optional [str ] = ...,
6875 suffix : Optional [AnyStr ] = ...,
6976 prefix : Optional [AnyStr ] = ...,
70- dir : Optional [AnyStr ] = ...,
77+ dir : Optional [_DirT [ AnyStr ] ] = ...,
7178 delete : bool = ...,
7279) -> IO [bytes ]: ...
7380@overload
@@ -78,7 +85,7 @@ def NamedTemporaryFile(
7885 newline : Optional [str ] = ...,
7986 suffix : Optional [AnyStr ] = ...,
8087 prefix : Optional [AnyStr ] = ...,
81- dir : Optional [AnyStr ] = ...,
88+ dir : Optional [_DirT [ AnyStr ] ] = ...,
8289 delete : bool = ...,
8390) -> IO [Any ]: ...
8491
@@ -120,21 +127,21 @@ class SpooledTemporaryFile(IO[AnyStr]):
120127class TemporaryDirectory (Generic [AnyStr ]):
121128 name : str
122129 def __init__ (self , suffix : Optional [AnyStr ] = ..., prefix : Optional [AnyStr ] = ...,
123- dir : Optional [AnyStr ] = ...) -> None : ...
130+ dir : Optional [_DirT [ AnyStr ] ] = ...) -> None : ...
124131 def cleanup (self ) -> None : ...
125132 def __enter__ (self ) -> AnyStr : ...
126133 def __exit__ (self , exc_type : Optional [Type [BaseException ]],
127134 exc_val : Optional [BaseException ],
128135 exc_tb : Optional [TracebackType ]) -> None : ...
129136
130- def mkstemp (suffix : Optional [AnyStr ] = ..., prefix : Optional [AnyStr ] = ..., dir : Optional [AnyStr ] = ...,
137+ def mkstemp (suffix : Optional [AnyStr ] = ..., prefix : Optional [AnyStr ] = ..., dir : Optional [_DirT [ AnyStr ] ] = ...,
131138 text : bool = ...) -> Tuple [int , AnyStr ]: ...
132139@overload
133140def mkdtemp () -> str : ...
134141@overload
135142def mkdtemp (suffix : Optional [AnyStr ] = ..., prefix : Optional [AnyStr ] = ...,
136- dir : Optional [AnyStr ] = ...) -> AnyStr : ...
137- def mktemp (suffix : Optional [AnyStr ] = ..., prefix : Optional [AnyStr ] = ..., dir : Optional [AnyStr ] = ...) -> AnyStr : ...
143+ dir : Optional [_DirT [ AnyStr ] ] = ...) -> AnyStr : ...
144+ def mktemp (suffix : Optional [AnyStr ] = ..., prefix : Optional [AnyStr ] = ..., dir : Optional [_DirT [ AnyStr ] ] = ...) -> AnyStr : ...
138145
139146def gettempdirb () -> bytes : ...
140147def gettempprefixb () -> bytes : ...
0 commit comments