[Python-checkins] cpython: Issue #2051: Tweak last commit for this issue to pass in mode instead

brett.cannon python-checkins at python.org
Fri Aug 24 19:48:47 CEST 2012


http://hg.python.org/cpython/rev/0c661c5632e0
changeset:   78738:0c661c5632e0
user:        Brett Cannon <brett at python.org>
date:        Fri Aug 24 13:48:39 2012 -0400
summary:
  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.

files:
  Lib/importlib/_bootstrap.py |    16 +-
  Python/importlib.h          |  3757 +++++++++++-----------
  2 files changed, 1884 insertions(+), 1889 deletions(-)


diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -1042,9 +1042,13 @@
 
     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 @@
                 # 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
diff --git a/Python/importlib.h b/Python/importlib.h
--- a/Python/importlib.h
+++ b/Python/importlib.h
[stripped]

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list