gh-112405: Optimise pathlib.Path.relative_to (#112406)

This commit is contained in:
Alex Waygood 2023-11-26 15:56:03 +00:00 committed by GitHub
parent 9fe60340d7
commit 418d585feb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 1 deletions

View file

@ -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:

View file

@ -0,0 +1 @@
Optimize :meth:`pathlib.PurePath.relative_to`. Patch by Alex Waygood.