mirror of
https://github.com/python/cpython.git
synced 2025-07-19 01:05:26 +00:00
gh-93156 - fix negative indexing into absolute pathlib.PurePath().parents
(GH-93273)
When a `_PathParents` object has a drive or a root, the length of the object is *one less* than than the length of `self._parts`, which resulted in an off-by-one error when `path.parents[-n]` was fed through to `self._parts[:-n - 1]`. In particular, `path.parents[-1]` was a malformed path object with spooky properties. This is addressed by adding `len(self)` to negative indices.
This commit is contained in:
parent
1a8a0ddb1c
commit
f32e6b48d1
3 changed files with 9 additions and 0 deletions
|
@ -443,6 +443,8 @@ class _PathParents(Sequence):
|
|||
|
||||
if idx >= len(self) or idx < -len(self):
|
||||
raise IndexError(idx)
|
||||
if idx < 0:
|
||||
idx += len(self)
|
||||
return self._pathcls._from_parsed_parts(self._drv, self._root,
|
||||
self._parts[:-idx - 1])
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue