summaryrefslogtreecommitdiffstats
path: root/Lib/importlib
diff options
context:
space:
mode:
authorBrett Cannon <brett@python.org>2012-08-24 17:48:39 (GMT)
committerBrett Cannon <brett@python.org>2012-08-24 17:48:39 (GMT)
commitba0a3edd26bce7abf435ac4103b707e8ea1c3e7e (patch)
tree4a57a224b57baa5da25ddbf263615f39e15c7163 /Lib/importlib
parent07c6e7168919c275e47fa35c741413270d3d80fd (diff)
downloadcpython-ba0a3edd26bce7abf435ac4103b707e8ea1c3e7e.zip
cpython-ba0a3edd26bce7abf435ac4103b707e8ea1c3e7e.tar.gz
cpython-ba0a3edd26bce7abf435ac4103b707e8ea1c3e7e.tar.bz2
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.
Diffstat (limited to 'Lib/importlib')
-rw-r--r--Lib/importlib/_bootstrap.py16
1 files changed, 7 insertions, 9 deletions
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index 6bd6c09..861900c 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -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