summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoris Verhovsky <boris.verk@gmail.com>2019-09-09 15:51:56 (GMT)
committerSteve Dower <steve.dower@python.org>2019-09-09 15:51:56 (GMT)
commit9488a5289de2ceecdfd2098cd70d215f96c4e745 (patch)
tree8edd8acb331e1b2a06d1db0e09cf2a6abe88ded6
parentbb668f798a78af0fd99675a4c7e0d949591f4f2b (diff)
downloadcpython-9488a5289de2ceecdfd2098cd70d215f96c4e745.zip
cpython-9488a5289de2ceecdfd2098cd70d215f96c4e745.tar.gz
cpython-9488a5289de2ceecdfd2098cd70d215f96c4e745.tar.bz2
Clarify that shutil's copy functions can accept path-like values (GH-15141)
-rw-r--r--Doc/library/shutil.rst8
-rw-r--r--Lib/shutil.py3
2 files changed, 7 insertions, 4 deletions
diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst
index a51e068..88c5f62 100644
--- a/Doc/library/shutil.rst
+++ b/Doc/library/shutil.rst
@@ -52,7 +52,7 @@ Directory and files operations
Copy the contents (no metadata) of the file named *src* to a file named
*dst* and return *dst* in the most efficient way possible.
- *src* and *dst* are path names given as strings.
+ *src* and *dst* are path-like objects or path names given as strings.
*dst* must be the complete target file name; look at :func:`~shutil.copy`
for a copy that accepts a target directory path. If *src* and *dst*
@@ -92,7 +92,8 @@ Directory and files operations
.. function:: copymode(src, dst, *, follow_symlinks=True)
Copy the permission bits from *src* to *dst*. The file contents, owner, and
- group are unaffected. *src* and *dst* are path names given as strings.
+ group are unaffected. *src* and *dst* are path-like objects or path names
+ given as strings.
If *follow_symlinks* is false, and both *src* and *dst* are symbolic links,
:func:`copymode` will attempt to modify the mode of *dst* itself (rather
than the file it points to). This functionality is not available on every
@@ -108,7 +109,8 @@ Directory and files operations
Copy the permission bits, last access time, last modification time, and
flags from *src* to *dst*. On Linux, :func:`copystat` also copies the
"extended attributes" where possible. The file contents, owner, and
- group are unaffected. *src* and *dst* are path names given as strings.
+ group are unaffected. *src* and *dst* are path-like objects or path
+ names given as strings.
If *follow_symlinks* is false, and *src* and *dst* both
refer to symbolic links, :func:`copystat` will operate on
diff --git a/Lib/shutil.py b/Lib/shutil.py
index 561ad71..5c1255a 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -330,7 +330,8 @@ def copystat(src, dst, *, follow_symlinks=True):
Copy the permission bits, last access time, last modification time, and
flags from `src` to `dst`. On Linux, copystat() also copies the "extended
attributes" where possible. The file contents, owner, and group are
- unaffected. `src` and `dst` are path names given as strings.
+ unaffected. `src` and `dst` are path-like objects or path names given as
+ strings.
If the optional flag `follow_symlinks` is not set, symlinks aren't
followed if and only if both `src` and `dst` are symlinks.