]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-23082: Better error message for PurePath.relative_to() from pathlib (GH-19611)
authorRotuna <sadhanasrinivasan@protonmail.com>
Mon, 25 May 2020 19:42:28 +0000 (21:42 +0200)
committerGitHub <noreply@github.com>
Mon, 25 May 2020 19:42:28 +0000 (20:42 +0100)
Co-authored-by: Sadhana Srinivasan <rotuna@Sadhanas-MBP.fritz.box>
Doc/library/pathlib.rst
Lib/pathlib.py
Misc/NEWS.d/next/Library/2020-04-20-22-08-36.bpo-23082.iX90Id.rst [new file with mode: 0644]

index 83f7c836f0e71cf84a031ac7c7283a0772ddabe7..bf6fee44df2c8851cb7eebf1db6858189858e0a6 100644 (file)
@@ -551,7 +551,9 @@ Pure paths provide the following methods and properties:
         File "<stdin>", line 1, in <module>
         File "pathlib.py", line 694, in relative_to
           .format(str(self), str(formatted)))
-      ValueError: '/etc/passwd' does not start with '/usr'
+      ValueError: '/etc/passwd' is not in the subpath of '/usr' OR one path is relative and the other absolute.
+
+   NOTE: This function is part of :class:`PurePath` and works with strings. It does not check or access the underlying file structure.
 
 
 .. method:: PurePath.with_name(name)
index f98d69eb04ac31f0f41d7e378827443fd1e285fe..9f5e27b91178e68e5e39ab4d3bde8549b5703a73 100644 (file)
@@ -922,7 +922,8 @@ class PurePath(object):
         cf = self._flavour.casefold_parts
         if (root or drv) if n == 0 else cf(abs_parts[:n]) != cf(to_abs_parts):
             formatted = self._format_parsed_parts(to_drv, to_root, to_parts)
-            raise ValueError("{!r} does not start with {!r}"
+            raise ValueError("{!r} is not in the subpath of {!r}"
+                    " OR one path is relative and the other is absolute."
                              .format(str(self), str(formatted)))
         return self._from_parsed_parts('', root if n == 1 else '',
                                        abs_parts[n:])
diff --git a/Misc/NEWS.d/next/Library/2020-04-20-22-08-36.bpo-23082.iX90Id.rst b/Misc/NEWS.d/next/Library/2020-04-20-22-08-36.bpo-23082.iX90Id.rst
new file mode 100644 (file)
index 0000000..13ed0de
--- /dev/null
@@ -0,0 +1 @@
+Updated the error message and docs of PurePath.relative_to() to better reflect the function behaviour.
\ No newline at end of file