]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Patch #1094015:
authorJohannes Gijsbers <jlg@dds.nl>
Sat, 8 Jan 2005 12:31:29 +0000 (12:31 +0000)
committerJohannes Gijsbers <jlg@dds.nl>
Sat, 8 Jan 2005 12:31:29 +0000 (12:31 +0000)
* Use os.makedirs() instead os.mkdir(). (bug #975763)
* Use copystat() to copy directory bits (bug #1048878)

Doc/lib/libshutil.tex
Lib/shutil.py

index 5dd1b6ca289805b08adeef85900d7011e1513966..a217150cb4c6135d62b1718376d6baa44b09787b 100644 (file)
@@ -67,8 +67,10 @@ file type and creator codes will not be correct.
 \begin{funcdesc}{copytree}{src, dst\optional{, symlinks}}
   Recursively copy an entire directory tree rooted at \var{src}.  The
   destination directory, named by \var{dst}, must not already exist;
-  it will be created.  Individual files are copied using
-  \function{copy2()}.  If \var{symlinks} is true, symbolic links in
+  it will be created as well as missing parent directories.
+  Permissions and times of directories are copied with \function{copystat()},
+  individual files are copied using \function{copy2()}.  
+  If \var{symlinks} is true, symbolic links in
   the source tree are represented as symbolic links in the new tree;
   if false or omitted, the contents of the linked files are copied to
   the new tree.  If exception(s) occur, an Error is raised
@@ -76,8 +78,14 @@ file type and creator codes will not be correct.
 
   The source code for this should be considered an example rather than 
   a tool.
-\versionchanged[Error is raised if any exceptions occur during copying,
-rather than printing a message]{2.3}
+
+  \versionchanged[Error is raised if any exceptions occur during copying,
+  rather than printing a message]{2.3}
+
+  \versionchanged[Create intermediate directories needed to create \var{dst},
+  rather than raising an error. Copy permissions and times of directories using
+  \function{copystat()}]{2.5}
+
 \end{funcdesc}
 
 \begin{funcdesc}{rmtree}{path\optional{, ignore_errors\optional{, onerror}}}
index 5bc4377fcfeb0ad052b4c39f31af9046891af388..d6e7d18e14939c961363d0aeaabb620814a327a9 100644 (file)
@@ -108,7 +108,8 @@ def copytree(src, dst, symlinks=False):
 
     """
     names = os.listdir(src)
-    os.mkdir(dst)
+    os.makedirs(dst)
+    copystat(src, dst)
     errors = []
     for name in names:
         srcname = os.path.join(src, name)