Commit 744fadda authored by Trent Nelson's avatar Trent Nelson

Merge issue #15833: don't raise an exception if importlib can't write

byte-compiled files.

This fixes a regression introduced by 3.3.

Patch by Charles-François Natali.
parents b3fe704a 8a420227
......@@ -1066,17 +1066,17 @@ class SourceFileLoader(FileLoader, SourceLoader):
except FileExistsError:
# Probably another Python process already created the dir.
continue
except PermissionError:
# If can't get proper access, then just forget about writing
# the data.
except OSError as exc:
# Could be a permission error, read-only filesystem: just forget
# about writing the data.
_verbose_message('could not create {!r}: {!r}', parent, exc)
return
try:
_write_atomic(path, data, _mode)
_verbose_message('created {!r}', path)
except (PermissionError, FileExistsError):
# Don't worry if you can't write bytecode or someone is writing
# it at the same time.
pass
except OSError as exc:
# Same as above: just don't write the bytecode.
_verbose_message('could not create {!r}: {!r}', path, exc)
class SourcelessFileLoader(FileLoader, _LoaderBasics):
......
......@@ -158,6 +158,10 @@ Tests
Build
-----
- Issue #15833: Fix a regression in 3.3 that resulted in exceptions being
raised if importlib failed to write byte-compiled files. This affected
attempts to build Python out-of-tree from a read-only source directory.
- Issue #15923: Fix a mistake in ``asdl_c.py`` that resulted in a TypeError
after 2801bf875a24 (see #15801).
......
This source diff could not be displayed because it is too large. You can view the blob instead.
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