@@ -57,11 +57,9 @@ def __init__(self, path):
57
57
from pathlib2 import Path
58
58
USING_PATHLIB2 = True
59
59
60
- try :
60
+ try : # PY35 - strict mode was added in 3.6
61
61
Path ('/invented/file/path' ).resolve (strict = True )
62
62
except TypeError :
63
- from tempfile import gettempdir
64
-
65
63
def _patch_resolve (self , strict = False ):
66
64
"""Add the argument strict to signature in Python>3,<3.6."""
67
65
resolved = Path ().old_resolve () / self
@@ -72,28 +70,10 @@ def _patch_resolve(self, strict=False):
72
70
73
71
Path .old_resolve = Path .resolve
74
72
Path .resolve = _patch_resolve
75
-
76
- if not hasattr (Path , 'write_text' ):
77
- def _write_text (self , text ):
78
- with open (str (self ), 'w' ) as f :
79
- f .write (text )
80
- Path .write_text = _write_text
81
-
82
- try :
83
- with tempfile .TemporaryDirectory () as tmpdir :
84
- (Path (tmpdir ) / 'exist_ok_test' ).mkdir (exist_ok = True )
85
- except TypeError :
86
- def _mkdir (self , mode = 0o777 , parents = False , exist_ok = False ):
87
- if not exist_ok and self .exists ():
88
- raise FileExistsError (str (self ))
89
- if not parents and not Path (str (self .parents )).exists ():
90
- raise FileNotFoundError (str (self .parents ))
91
- os .makedirs (str (self ), mode = mode , exist_ok = exist_ok )
92
- Path .mkdir = _mkdir
93
-
94
73
except FileNotFoundError :
95
74
pass
96
75
except OSError :
76
+ # PY2
97
77
def _patch_resolve (self , strict = False ):
98
78
"""Raise FileNotFoundError instead of OSError with pathlib2."""
99
79
try :
@@ -106,6 +86,27 @@ def _patch_resolve(self, strict=False):
106
86
Path .old_resolve = Path .resolve
107
87
Path .resolve = _patch_resolve
108
88
89
+ if not hasattr (Path , 'write_text' ):
90
+ # PY34 - Path does not have write_text
91
+ def _write_text (self , text ):
92
+ with open (str (self ), 'w' ) as f :
93
+ f .write (text )
94
+ Path .write_text = _write_text
95
+
96
+ if PY3 :
97
+ try : # PY34 - mkdir does not have exist_ok
98
+ from tempfile import TemporaryDirectory
99
+ with TemporaryDirectory () as tmpdir :
100
+ (Path (tmpdir ) / 'exist_ok_test' ).mkdir (exist_ok = True )
101
+ except TypeError :
102
+ def _mkdir (self , mode = 0o777 , parents = False , exist_ok = False ):
103
+ if parents :
104
+ os .makedirs (str (self ), mode = mode , exist_ok = exist_ok )
105
+ elif not exist_ok or not self .exists ():
106
+ os .mkdir (str (self ), mode = mode )
107
+
108
+ Path .mkdir = _mkdir
109
+
109
110
110
111
def split_filename (fname ):
111
112
"""Split a filename into parts: path, base filename and extension.
0 commit comments