mirror of https://github.com/python/cpython
Issue #2051: Tweak last commit for this issue to pass in mode instead
of source path to set_data() and make the new argument private until possible API changes can be discussed more thoroughly in Python 3.4.
This commit is contained in:
parent
07c6e71689
commit
ba0a3edd26
|
@ -1042,9 +1042,13 @@ class SourceFileLoader(FileLoader, SourceLoader):
|
|||
|
||||
def _cache_bytecode(self, source_path, bytecode_path, data):
|
||||
# Adapt between the two APIs
|
||||
return self.set_data(bytecode_path, data, source_path=source_path)
|
||||
try:
|
||||
mode = _os.stat(source_path).st_mode
|
||||
except OSError:
|
||||
mode = 0o666
|
||||
return self.set_data(bytecode_path, data, _mode=mode)
|
||||
|
||||
def set_data(self, path, data, *, source_path=None):
|
||||
def set_data(self, path, data, *, _mode=0o666):
|
||||
"""Write bytes data to a file."""
|
||||
parent, filename = _path_split(path)
|
||||
path_parts = []
|
||||
|
@ -1064,14 +1068,8 @@ class SourceFileLoader(FileLoader, SourceLoader):
|
|||
# If can't get proper access, then just forget about writing
|
||||
# the data.
|
||||
return
|
||||
mode = 0o666
|
||||
if source_path is not None:
|
||||
try:
|
||||
mode = _os.stat(source_path).st_mode
|
||||
except OSError:
|
||||
pass
|
||||
try:
|
||||
_write_atomic(path, data, mode)
|
||||
_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
|
||||
|
|
3777
Python/importlib.h
3777
Python/importlib.h
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue