summaryrefslogtreecommitdiffstats
path: root/Lib/shutil.py
diff options
context:
space:
mode:
authorBrian Curtin <brian@python.org>2012-06-18 23:41:07 (GMT)
committerBrian Curtin <brian@python.org>2012-06-18 23:41:07 (GMT)
commit0d0a1dedbcf85130885166c066276442c99b3242 (patch)
tree94500f7941afe77e24282124549c13fc6c440a36 /Lib/shutil.py
parente75ff35af2b6c85d48c68b95f295aeac7396b162 (diff)
downloadcpython-0d0a1dedbcf85130885166c066276442c99b3242.zip
cpython-0d0a1dedbcf85130885166c066276442c99b3242.tar.gz
cpython-0d0a1dedbcf85130885166c066276442c99b3242.tar.bz2
Fix #14772: Return the destination from some shutil functions.
Diffstat (limited to 'Lib/shutil.py')
-rw-r--r--Lib/shutil.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/Lib/shutil.py b/Lib/shutil.py
index ce60c3b..46398ef 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -109,6 +109,7 @@ def copyfile(src, dst, symlinks=False):
with open(src, 'rb') as fsrc:
with open(dst, 'wb') as fdst:
copyfileobj(fsrc, fdst)
+ return dst
def copymode(src, dst, symlinks=False):
"""Copy mode bits from src to dst.
@@ -197,7 +198,7 @@ else:
pass
def copy(src, dst, symlinks=False):
- """Copy data and mode bits ("cp src dst").
+ """Copy data and mode bits ("cp src dst"). Return the file's destination.
The destination may be a directory.
@@ -209,9 +210,11 @@ def copy(src, dst, symlinks=False):
dst = os.path.join(dst, os.path.basename(src))
copyfile(src, dst, symlinks=symlinks)
copymode(src, dst, symlinks=symlinks)
+ return dst
def copy2(src, dst, symlinks=False):
- """Copy data and all stat info ("cp -p src dst").
+ """Copy data and all stat info ("cp -p src dst"). Return the file's
+ destination."
The destination may be a directory.
@@ -224,6 +227,7 @@ def copy2(src, dst, symlinks=False):
copyfile(src, dst, symlinks=symlinks)
copystat(src, dst, symlinks=symlinks)
_copyxattr(src, dst, symlinks=symlinks)
+ return dst
def ignore_patterns(*patterns):
"""Function that can be used as copytree() ignore parameter.
@@ -322,6 +326,7 @@ def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,
errors.extend((src, dst, str(why)))
if errors:
raise Error(errors)
+ return dst
def rmtree(path, ignore_errors=False, onerror=None):
"""Recursively delete a directory tree.
@@ -379,7 +384,8 @@ def _basename(path):
def move(src, dst):
"""Recursively move a file or directory to another location. This is
- similar to the Unix "mv" command.
+ similar to the Unix "mv" command. Return the file or directory's
+ destination.
If the destination is a directory or a symlink to a directory, the source
is moved inside the directory. The destination path must not already
@@ -423,6 +429,7 @@ def move(src, dst):
else:
copy2(src, real_dst)
os.unlink(src)
+ return real_dst
def _destinsrc(src, dst):
src = abspath(src)