Show More
@@ -32,15 +32,30 b' except ImportError:' | |||
|
32 | 32 | def __enter__(self): |
|
33 | 33 | return self.name |
|
34 | 34 | |
|
35 | def cleanup(self): | |
|
36 | if not self._closed: | |
|
37 |
|
|
|
35 | def cleanup(self, _warn=False): | |
|
36 | if self.name and not self._closed: | |
|
37 | try: | |
|
38 | self._rmtree(self.name) | |
|
39 | except (TypeError, AttributeError) as ex: | |
|
40 | # Issue #10188: Emit a warning on stderr | |
|
41 | # if the directory could not be cleaned | |
|
42 | # up due to missing globals | |
|
43 | if "None" not in str(ex): | |
|
44 | raise | |
|
45 | print("ERROR: {!r} while cleaning up {!r}".format(ex, self,), | |
|
46 | file=_sys.stderr) | |
|
47 | return | |
|
38 | 48 | self._closed = True |
|
49 | if _warn: | |
|
50 | self._warn("Implicitly cleaning up {!r}".format(self), | |
|
51 | ResourceWarning) | |
|
39 | 52 | |
|
40 | 53 | def __exit__(self, exc, value, tb): |
|
41 | 54 | self.cleanup() |
|
42 | 55 | |
|
43 |
__del__ |
|
|
56 | def __del__(self): | |
|
57 | # Issue a ResourceWarning if implicit cleanup needed | |
|
58 | self.cleanup(_warn=True) | |
|
44 | 59 | |
|
45 | 60 | |
|
46 | 61 | # XXX (ncoghlan): The following code attempts to make |
@@ -124,9 +139,9 b' class TemporaryWorkingDirectory(TemporaryDirectory):' | |||
|
124 | 139 | _os.chdir(self.name) |
|
125 | 140 | |
|
126 | 141 | |
|
127 | def cleanup(self): | |
|
142 | def cleanup(self, _warn=False): | |
|
128 | 143 | #Revert to old cwd. |
|
129 | 144 | _os.chdir(self.old_wd) |
|
130 | 145 | |
|
131 | 146 | #Cleanup |
|
132 | super(TemporaryWorkingDirectory, self).cleanup() | |
|
147 | super(TemporaryWorkingDirectory, self).cleanup(_warn=_warn) |
General Comments 0
You need to be logged in to leave comments.
Login now