1. python_mirrors
  2. sandbox/nvawda


Charles-François Natali  committed 27d31f0

Issue #14077: importlib: Fix regression introduced by de6703671386.

  • Participants
  • Parent commits 90d3029
  • Branches default

Comments (0)

Files changed (1)

File Lib/importlib/_bootstrap.py

View file
 def _write_atomic(path, data):
-    """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."""
     # id() is used to generate a pseudo-random filename.
     path_tmp = '{}.{}'.format(path, id(path))
     fd = _os.open(path_tmp, _os.O_EXCL | _os.O_CREAT | _os.O_WRONLY, 0o666)
             _write_atomic(path, data)
-        except PermissionError:
-            # Don't worry if you can't write bytecode.
+        except (PermissionError, FileExistsError):
+            # Don't worry if you can't write bytecode or someone is writing
+            # it at the same time.