Kaydet (Commit) daaaec9e authored tarafından Antoine Pitrou's avatar Antoine Pitrou

Silence the FileExistsError which can be raised because of the O_EXCL flag

(as in import.c)
üst 587e75c7
......@@ -81,7 +81,9 @@ def _path_absolute(path):
def _write_atomic(path, data):
"""Best-effort function to write data to a path atomically."""
"""Best-effort function to write data to a path atomically.
Be prepared to handle a FileExistsError if concurrent writing of the
temporary file is attempted."""
if not sys.platform.startswith('win'):
# On POSIX-like platforms, renaming is atomic
path_tmp = path + '.tmp'
......@@ -516,12 +518,10 @@ class _SourceFileLoader(_FileLoader, SourceLoader):
raise
try:
_write_atomic(path, data)
except OSError as exc:
# Don't worry if you can't write bytecode.
if exc.errno == errno.EACCES:
return
else:
raise
except (PermissionError, FileExistsError):
# Don't worry if you can't write bytecode or someone is writing
# it at the same time.
pass
class _SourcelessFileLoader(_FileLoader, _LoaderBasics):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment