]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-42999: Expand and clarify pathlib.Path.link_to() documentation. (GH-24294)
authorSteve Dower <steve.dower@python.org>
Wed, 7 Apr 2021 17:12:42 +0000 (18:12 +0100)
committerGitHub <noreply@github.com>
Wed, 7 Apr 2021 17:12:42 +0000 (18:12 +0100)
Co-authored-by: Barney Gale <barney.gale@gmail.com>
Doc/library/pathlib.rst
Lib/pathlib.py

index 9526a03b053986c1b4a7ae38560c71b42a385dd0..c31ff6543aee52cd38f8c4286e0b37dc6c4dae1a 100644 (file)
@@ -1119,6 +1119,20 @@ call fails (for example because the path doesn't exist).
       of :func:`os.symlink`'s.
 
 
+.. method:: Path.link_to(target)
+
+   Make *target* a hard link to this path.
+
+   .. warning::
+
+      This function does not make this path a hard link to *target*, despite
+      the implication of the function and argument names. The argument order
+      (target, link) is the reverse of :func:`Path.symlink_to`, but matches
+      that of :func:`os.link`.
+
+   .. versionadded:: 3.8
+
+
 .. method:: Path.touch(mode=0o666, exist_ok=True)
 
    Create a file at this given path.  If *mode* is given, it is combined
@@ -1143,13 +1157,6 @@ call fails (for example because the path doesn't exist).
       The *missing_ok* parameter was added.
 
 
-.. method:: Path.link_to(target)
-
-   Create a hard link pointing to a path named *target*.
-
-   .. versionadded:: 3.8
-
-
 .. method:: Path.write_bytes(data)
 
    Open the file pointed to in bytes mode, write *data* to it, and close the
index 147be2ff0dddfccba0a7969140eafbffc1cfedbe..da51a4f500e80a43a178583c54766f271b8f3a82 100644 (file)
@@ -1358,12 +1358,6 @@ class Path(PurePath):
         """
         return self._accessor.lstat(self)
 
-    def link_to(self, target):
-        """
-        Create a hard link pointing to a path named target.
-        """
-        self._accessor.link_to(self, target)
-
     def rename(self, target):
         """
         Rename this path to the target path.
@@ -1392,11 +1386,23 @@ class Path(PurePath):
 
     def symlink_to(self, target, target_is_directory=False):
         """
-        Make this path a symlink pointing to the given path.
-        Note the order of arguments (self, target) is the reverse of os.symlink's.
+        Make this path a symlink pointing to the target path.
+        Note the order of arguments (link, target) is the reverse of os.symlink.
         """
         self._accessor.symlink(target, self, target_is_directory)
 
+    def link_to(self, target):
+        """
+        Make the target path a hard link pointing to this path.
+
+        Note this function does not make this path a hard link to *target*,
+        despite the implication of the function and argument names. The order
+        of arguments (target, link) is the reverse of Path.symlink_to, but
+        matches that of os.link.
+
+        """
+        self._accessor.link_to(self, target)
+
     # Convenience functions for querying the stat results
 
     def exists(self):