https://github.com/python/cpython/commit/ba64cc5db410a893e6ff5bfee9210207947b69c2
commit: ba64cc5db410a893e6ff5bfee9210207947b69c2
branch: main
author: Barney Gale <[email protected]>
committer: barneygale <[email protected]>
date: 2025-03-09T16:36:20Z
summary:
GH-130614: pathlib ABCs: retain original separator in `with_name()` (#130990)
In `pathlib.types._JoinablePath.with_name()`, retain any alternative path
separator preceding the old name, rather stripping and replacing it with a
primary separator. As a result, this method changes _only_ the name.
files:
M Lib/pathlib/types.py
diff --git a/Lib/pathlib/types.py b/Lib/pathlib/types.py
index cfdbc89644a24a..c65e4e3ede90b1 100644
--- a/Lib/pathlib/types.py
+++ b/Lib/pathlib/types.py
@@ -135,7 +135,9 @@ def with_name(self, name):
split = self.parser.split
if split(name)[0]:
raise ValueError(f"Invalid name {name!r}")
- return self.with_segments(split(str(self))[0], name)
+ path = str(self)
+ path = path.removesuffix(split(path)[1]) + name
+ return self.with_segments(path)
def with_stem(self, stem):
"""Return a new path with the stem changed."""
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]