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.
This commit is contained in:
commit
744faddae8
|
@ -1066,17 +1066,17 @@ class SourceFileLoader(FileLoader, SourceLoader):
|
||||||
except FileExistsError:
|
except FileExistsError:
|
||||||
# Probably another Python process already created the dir.
|
# Probably another Python process already created the dir.
|
||||||
continue
|
continue
|
||||||
except PermissionError:
|
except OSError as exc:
|
||||||
# If can't get proper access, then just forget about writing
|
# Could be a permission error, read-only filesystem: just forget
|
||||||
# the data.
|
# about writing the data.
|
||||||
|
_verbose_message('could not create {!r}: {!r}', parent, exc)
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
_write_atomic(path, data, _mode)
|
_write_atomic(path, data, _mode)
|
||||||
_verbose_message('created {!r}', path)
|
_verbose_message('created {!r}', path)
|
||||||
except (PermissionError, FileExistsError):
|
except OSError as exc:
|
||||||
# Don't worry if you can't write bytecode or someone is writing
|
# Same as above: just don't write the bytecode.
|
||||||
# it at the same time.
|
_verbose_message('could not create {!r}: {!r}', path, exc)
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class SourcelessFileLoader(FileLoader, _LoaderBasics):
|
class SourcelessFileLoader(FileLoader, _LoaderBasics):
|
||||||
|
|
|
@ -158,6 +158,10 @@ Tests
|
||||||
Build
|
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
|
- Issue #15923: Fix a mistake in ``asdl_c.py`` that resulted in a TypeError
|
||||||
after 2801bf875a24 (see #15801).
|
after 2801bf875a24 (see #15801).
|
||||||
|
|
||||||
|
|
3711
Python/importlib.h
3711
Python/importlib.h
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue