Replace pathlib._abc.PathModuleBase.splitroot() with splitdrive() (#114065)

This allows users of the `pathlib-abc` PyPI package to use `posixpath` or
`ntpath` as a path module in versions of Python lacking
`os.path.splitroot()` (3.11 and before).
This commit is contained in:
Barney Gale 2024-01-14 23:06:04 +00:00 committed by GitHub
parent ca6cf56330
commit 4de4e654e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 11 deletions

View file

@ -165,12 +165,11 @@ class PathModuleBase:
"""
self._unsupported('split()')
def splitroot(self, path):
"""Split the pathname path into a 3-item tuple (drive, root, tail),
where *drive* is a device name or mount point, *root* is a string of
separators after the drive, and *tail* is everything after the root.
Any part may be empty."""
self._unsupported('splitroot()')
def splitdrive(self, path):
"""Split the path into a 2-item tuple (drive, tail), where *drive* is
a device name or mount point, and *tail* is everything after the
drive. Either part may be empty."""
self._unsupported('splitdrive()')
def normcase(self, path):
"""Normalize the case of the path."""
@ -227,18 +226,17 @@ class PurePathBase:
@property
def drive(self):
"""The drive prefix (letter or UNC path), if any."""
return self.pathmod.splitroot(self._raw_path)[0]
return self.pathmod.splitdrive(self.anchor)[0]
@property
def root(self):
"""The root of the path, if any."""
return self.pathmod.splitroot(self._raw_path)[1]
return self.pathmod.splitdrive(self.anchor)[1]
@property
def anchor(self):
"""The concatenation of the drive and root, or ''."""
drive, root, _ = self.pathmod.splitroot(self._raw_path)
return drive + root
return self._stack[0]
@property
def name(self):