tail[-1] = name
return self._from_parsed_parts(self.drive, self.root, tail)
- def relative_to(self, other, /, *_deprecated, walk_up=False):
+ def relative_to(self, other, *, walk_up=False):
"""Return the relative path to another path identified by the passed
arguments. If the operation is not possible (because this is not
related to the other path), raise ValueError.
The *walk_up* parameter controls whether `..` may be used to resolve
the path.
"""
- if _deprecated:
- msg = ("support for supplying more than one positional argument "
- "to pathlib.PurePath.relative_to() is deprecated and "
- "scheduled for removal in Python 3.14")
- warnings.warn(msg, DeprecationWarning, stacklevel=2)
- other = self.with_segments(other, *_deprecated)
- elif not isinstance(other, PurePath):
+ if not isinstance(other, PurePath):
other = self.with_segments(other)
for step, path in enumerate(chain([other], other.parents)):
if path == self or path in self.parents:
parts = ['..'] * step + self._tail[len(path._tail):]
return self._from_parsed_parts('', '', parts)
- def is_relative_to(self, other, /, *_deprecated):
+ def is_relative_to(self, other):
"""Return True if the path is relative to another path or False.
"""
- if _deprecated:
- msg = ("support for supplying more than one argument to "
- "pathlib.PurePath.is_relative_to() is deprecated and "
- "scheduled for removal in Python 3.14")
- warnings.warn(msg, DeprecationWarning, stacklevel=2)
- other = self.with_segments(other, *_deprecated)
- elif not isinstance(other, PurePath):
+ if not isinstance(other, PurePath):
other = self.with_segments(other)
return other == self or other in self.parents
self.assertRaises(ValueError, P('a/b').with_stem, '')
self.assertRaises(ValueError, P('a/b').with_stem, '.')
- def test_relative_to_several_args(self):
- P = self.cls
- p = P('a/b')
- with self.assertWarns(DeprecationWarning):
- p.relative_to('a', 'b')
- p.relative_to('a', 'b', walk_up=True)
-
- def test_is_relative_to_several_args(self):
- P = self.cls
- p = P('a/b')
- with self.assertWarns(DeprecationWarning):
- p.is_relative_to('a', 'b')
-
def test_is_reserved_deprecated(self):
P = self.cls
p = P('a/b')