mirror of
https://github.com/python/cpython
synced 2024-09-16 00:17:02 +00:00
gh-112405: Optimise pathlib.Path.relative_to
(#112406)
This commit is contained in:
parent
9fe60340d7
commit
418d585feb
|
@ -14,6 +14,7 @@
|
|||
import warnings
|
||||
from _collections_abc import Sequence
|
||||
from errno import ENOENT, ENOTDIR, EBADF, ELOOP, EINVAL
|
||||
from itertools import chain
|
||||
from stat import S_ISDIR, S_ISLNK, S_ISREG, S_ISSOCK, S_ISBLK, S_ISCHR, S_ISFIFO
|
||||
|
||||
try:
|
||||
|
@ -445,7 +446,7 @@ def relative_to(self, other, /, *_deprecated, walk_up=False):
|
|||
other = self.with_segments(other, *_deprecated)
|
||||
elif not isinstance(other, PurePath):
|
||||
other = self.with_segments(other)
|
||||
for step, path in enumerate([other] + list(other.parents)):
|
||||
for step, path in enumerate(chain([other], other.parents)):
|
||||
if path == self or path in self.parents:
|
||||
break
|
||||
elif not walk_up:
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Optimize :meth:`pathlib.PurePath.relative_to`. Patch by Alex Waygood.
|
Loading…
Reference in a new issue