[Python-checkins] [3.9] bpo-40833: Clarify Path.rename doc-string regarding relative paths (GH-20554)

Miss Skeleton (bot) webhook-mailer at python.org
Sat Oct 3 06:44:18 EDT 2020


https://github.com/python/cpython/commit/ef7b937b8fe94f4c59dfcbe7567c3ca76097a41d
commit: ef7b937b8fe94f4c59dfcbe7567c3ca76097a41d
branch: 3.9
author: Miss Skeleton (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2020-10-03T13:44:14+03:00
summary:

[3.9] bpo-40833: Clarify Path.rename doc-string regarding relative paths (GH-20554)

(cherry picked from commit f97e42ef4d97dee64f45ed65170a6e77c8e46fdf)

Co-authored-by: Ram Rachum <ram at rachum.com>

files:
M Doc/library/pathlib.rst
M Lib/pathlib.py

diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst
index 23486b625072f..9526a03b05398 100644
--- a/Doc/library/pathlib.rst
+++ b/Doc/library/pathlib.rst
@@ -1008,6 +1008,10 @@ call fails (for example because the path doesn't exist).
       >>> target.open().read()
       'some text'
 
+   The target path may be absolute or relative. Relative paths are interpreted
+   relative to the current working directory, *not* the directory of the Path
+   object.
+
    .. versionchanged:: 3.8
       Added return value, return the new Path instance.
 
@@ -1018,6 +1022,10 @@ call fails (for example because the path doesn't exist).
    instance pointing to *target*.  If *target* points to an existing file or
    directory, it will be unconditionally replaced.
 
+   The target path may be absolute or relative. Relative paths are interpreted
+   relative to the current working directory, *not* the directory of the Path
+   object.
+
    .. versionchanged:: 3.8
       Added return value, return the new Path instance.
 
diff --git a/Lib/pathlib.py b/Lib/pathlib.py
index babc443dd3b30..147be2ff0dddf 100644
--- a/Lib/pathlib.py
+++ b/Lib/pathlib.py
@@ -1366,17 +1366,26 @@ def link_to(self, target):
 
     def rename(self, target):
         """
-        Rename this path to the given path,
-        and return a new Path instance pointing to the given path.
+        Rename this path to the target path.
+
+        The target path may be absolute or relative. Relative paths are
+        interpreted relative to the current working directory, *not* the
+        directory of the Path object.
+
+        Returns the new Path instance pointing to the target path.
         """
         self._accessor.rename(self, target)
         return self.__class__(target)
 
     def replace(self, target):
         """
-        Rename this path to the given path, clobbering the existing
-        destination if it exists, and return a new Path instance
-        pointing to the given path.
+        Rename this path to the target path, overwriting if that path exists.
+
+        The target path may be absolute or relative. Relative paths are
+        interpreted relative to the current working directory, *not* the
+        directory of the Path object.
+
+        Returns the new Path instance pointing to the target path.
         """
         self._accessor.replace(self, target)
         return self.__class__(target)



More information about the Python-checkins mailing list