1
1
import os
2
2
import sys
3
3
from _typeshed import AnyPath , BytesPath , StrPath
4
+ from builtins import _PathLike
4
5
from genericpath import exists as exists
5
6
from typing import Any , AnyStr , Optional , Sequence , Tuple , TypeVar , overload
6
7
7
8
_T = TypeVar ("_T" )
8
9
9
- if sys .version_info >= (3 , 6 ):
10
- from builtins import _PathLike
11
-
12
10
# ----- os.path variables -----
13
11
supports_unicode_filenames : bool
14
12
# aliases (also in os)
@@ -25,67 +23,51 @@ defpath: str
25
23
devnull : str
26
24
27
25
# ----- os.path function stubs -----
28
- if sys .version_info >= (3 , 6 ):
29
- # Overloads are necessary to work around python/mypy#3644.
30
- @overload
31
- def abspath (path : _PathLike [AnyStr ]) -> AnyStr : ...
32
- @overload
33
- def abspath (path : AnyStr ) -> AnyStr : ...
34
- @overload
35
- def basename (p : _PathLike [AnyStr ]) -> AnyStr : ...
36
- @overload
37
- def basename (p : AnyStr ) -> AnyStr : ...
38
- @overload
39
- def dirname (p : _PathLike [AnyStr ]) -> AnyStr : ...
40
- @overload
41
- def dirname (p : AnyStr ) -> AnyStr : ...
42
- @overload
43
- def expanduser (path : _PathLike [AnyStr ]) -> AnyStr : ...
44
- @overload
45
- def expanduser (path : AnyStr ) -> AnyStr : ...
46
- @overload
47
- def expandvars (path : _PathLike [AnyStr ]) -> AnyStr : ...
48
- @overload
49
- def expandvars (path : AnyStr ) -> AnyStr : ...
50
- @overload
51
- def normcase (s : _PathLike [AnyStr ]) -> AnyStr : ...
52
- @overload
53
- def normcase (s : AnyStr ) -> AnyStr : ...
26
+ # Overloads are necessary to work around python/mypy#3644.
27
+ @overload
28
+ def abspath (path : _PathLike [AnyStr ]) -> AnyStr : ...
29
+ @overload
30
+ def abspath (path : AnyStr ) -> AnyStr : ...
31
+ @overload
32
+ def basename (p : _PathLike [AnyStr ]) -> AnyStr : ...
33
+ @overload
34
+ def basename (p : AnyStr ) -> AnyStr : ...
35
+ @overload
36
+ def dirname (p : _PathLike [AnyStr ]) -> AnyStr : ...
37
+ @overload
38
+ def dirname (p : AnyStr ) -> AnyStr : ...
39
+ @overload
40
+ def expanduser (path : _PathLike [AnyStr ]) -> AnyStr : ...
41
+ @overload
42
+ def expanduser (path : AnyStr ) -> AnyStr : ...
43
+ @overload
44
+ def expandvars (path : _PathLike [AnyStr ]) -> AnyStr : ...
45
+ @overload
46
+ def expandvars (path : AnyStr ) -> AnyStr : ...
47
+ @overload
48
+ def normcase (s : _PathLike [AnyStr ]) -> AnyStr : ...
49
+ @overload
50
+ def normcase (s : AnyStr ) -> AnyStr : ...
51
+ @overload
52
+ def normpath (path : _PathLike [AnyStr ]) -> AnyStr : ...
53
+ @overload
54
+ def normpath (path : AnyStr ) -> AnyStr : ...
55
+
56
+ if sys .platform == "win32" :
54
57
@overload
55
- def normpath (path : _PathLike [AnyStr ]) -> AnyStr : ...
58
+ def realpath (path : _PathLike [AnyStr ]) -> AnyStr : ...
56
59
@overload
57
- def normpath (path : AnyStr ) -> AnyStr : ...
58
- if sys .platform == "win32" :
59
- @overload
60
- def realpath (path : _PathLike [AnyStr ]) -> AnyStr : ...
61
- @overload
62
- def realpath (path : AnyStr ) -> AnyStr : ...
63
- else :
64
- @overload
65
- def realpath (filename : _PathLike [AnyStr ]) -> AnyStr : ...
66
- @overload
67
- def realpath (filename : AnyStr ) -> AnyStr : ...
60
+ def realpath (path : AnyStr ) -> AnyStr : ...
68
61
69
62
else :
70
- def abspath (path : AnyStr ) -> AnyStr : ...
71
- def basename (p : AnyStr ) -> AnyStr : ...
72
- def dirname (p : AnyStr ) -> AnyStr : ...
73
- def expanduser (path : AnyStr ) -> AnyStr : ...
74
- def expandvars (path : AnyStr ) -> AnyStr : ...
75
- def normcase (s : AnyStr ) -> AnyStr : ...
76
- def normpath (path : AnyStr ) -> AnyStr : ...
77
- if sys .platform == "win32" :
78
- def realpath (path : AnyStr ) -> AnyStr : ...
79
- else :
80
- def realpath (filename : AnyStr ) -> AnyStr : ...
81
-
82
- if sys .version_info >= (3 , 6 ):
83
- # In reality it returns str for sequences of StrPath and bytes for sequences
84
- # of BytesPath, but mypy does not accept such a signature.
85
- def commonpath (paths : Sequence [AnyPath ]) -> Any : ...
63
+ @overload
64
+ def realpath (filename : _PathLike [AnyStr ]) -> AnyStr : ...
65
+ @overload
66
+ def realpath (filename : AnyStr ) -> AnyStr : ...
86
67
87
- elif sys .version_info >= (3 , 5 ):
88
- def commonpath (paths : Sequence [AnyStr ]) -> AnyStr : ...
68
+ # In reality it returns str for sequences of StrPath and bytes for sequences
69
+ # of BytesPath, but mypy does not accept such a signature.
70
+ def commonpath (paths : Sequence [AnyPath ]) -> Any : ...
89
71
90
72
# NOTE: Empty lists results in '' (str) regardless of contained type.
91
73
# So, fall back to Any
@@ -103,42 +85,29 @@ def isfile(path: AnyPath) -> bool: ...
103
85
def isdir (s : AnyPath ) -> bool : ...
104
86
def islink (path : AnyPath ) -> bool : ...
105
87
def ismount (path : AnyPath ) -> bool : ...
106
-
107
- if sys .version_info >= (3 , 6 ):
108
- @overload
109
- def join (a : StrPath , * paths : StrPath ) -> str : ...
110
- @overload
111
- def join (a : BytesPath , * paths : BytesPath ) -> bytes : ...
112
-
113
- else :
114
- def join (a : AnyStr , * paths : AnyStr ) -> AnyStr : ...
115
-
88
+ @overload
89
+ def join (a : StrPath , * paths : StrPath ) -> str : ...
90
+ @overload
91
+ def join (a : BytesPath , * paths : BytesPath ) -> bytes : ...
116
92
@overload
117
93
def relpath (path : BytesPath , start : Optional [BytesPath ] = ...) -> bytes : ...
118
94
@overload
119
95
def relpath (path : StrPath , start : Optional [StrPath ] = ...) -> str : ...
120
96
def samefile (f1 : AnyPath , f2 : AnyPath ) -> bool : ...
121
97
def sameopenfile (fp1 : int , fp2 : int ) -> bool : ...
122
98
def samestat (s1 : os .stat_result , s2 : os .stat_result ) -> bool : ...
123
-
124
- if sys .version_info >= (3 , 6 ):
125
- @overload
126
- def split (p : _PathLike [AnyStr ]) -> Tuple [AnyStr , AnyStr ]: ...
127
- @overload
128
- def split (p : AnyStr ) -> Tuple [AnyStr , AnyStr ]: ...
129
- @overload
130
- def splitdrive (p : _PathLike [AnyStr ]) -> Tuple [AnyStr , AnyStr ]: ...
131
- @overload
132
- def splitdrive (p : AnyStr ) -> Tuple [AnyStr , AnyStr ]: ...
133
- @overload
134
- def splitext (p : _PathLike [AnyStr ]) -> Tuple [AnyStr , AnyStr ]: ...
135
- @overload
136
- def splitext (p : AnyStr ) -> Tuple [AnyStr , AnyStr ]: ...
137
-
138
- else :
139
- def split (p : AnyStr ) -> Tuple [AnyStr , AnyStr ]: ...
140
- def splitdrive (p : AnyStr ) -> Tuple [AnyStr , AnyStr ]: ...
141
- def splitext (p : AnyStr ) -> Tuple [AnyStr , AnyStr ]: ...
99
+ @overload
100
+ def split (p : _PathLike [AnyStr ]) -> Tuple [AnyStr , AnyStr ]: ...
101
+ @overload
102
+ def split (p : AnyStr ) -> Tuple [AnyStr , AnyStr ]: ...
103
+ @overload
104
+ def splitdrive (p : _PathLike [AnyStr ]) -> Tuple [AnyStr , AnyStr ]: ...
105
+ @overload
106
+ def splitdrive (p : AnyStr ) -> Tuple [AnyStr , AnyStr ]: ...
107
+ @overload
108
+ def splitext (p : _PathLike [AnyStr ]) -> Tuple [AnyStr , AnyStr ]: ...
109
+ @overload
110
+ def splitext (p : AnyStr ) -> Tuple [AnyStr , AnyStr ]: ...
142
111
143
112
if sys .version_info < (3 , 7 ) and sys .platform == "win32" :
144
113
def splitunc (p : AnyStr ) -> Tuple [AnyStr , AnyStr ]: ... # deprecated
0 commit comments