From: Barney Gale Date: Sun, 9 Mar 2025 16:36:20 +0000 (+0000) Subject: GH-130614: pathlib ABCs: retain original separator in `with_name()` (#130990) X-Git-Tag: v3.14.0a6~111 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ba64cc5db410a893e6ff5bfee9210207947b69c2;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Lib/pathlib/types.py b/Lib/pathlib/types.py index cfdbc89644a2..c65e4e3ede90 100644 --- a/Lib/pathlib/types.py +++ b/Lib/pathlib/types.py @@ -135,7 +135,9 @@ class _JoinablePath(ABC): 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."""