summaryrefslogtreecommitdiffstats
path: root/Lib/pathlib/_abc.py
diff options
context:
space:
mode:
authorBarney Gale <barney.gale@gmail.com>2024-01-14 23:06:04 (GMT)
committerGitHub <noreply@github.com>2024-01-14 23:06:04 (GMT)
commit4de4e654e592c4b3b1a073140b97ff7f373c7553 (patch)
tree7f69b2e02b860ce1adbc775f7e8faefe085cf329 /Lib/pathlib/_abc.py
parentca6cf56330ae7751819b62748f33f23d98596703 (diff)
downloadcpython-4de4e654e592c4b3b1a073140b97ff7f373c7553.zip
cpython-4de4e654e592c4b3b1a073140b97ff7f373c7553.tar.gz
cpython-4de4e654e592c4b3b1a073140b97ff7f373c7553.tar.bz2
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).
Diffstat (limited to 'Lib/pathlib/_abc.py')
-rw-r--r--Lib/pathlib/_abc.py18
1 files changed, 8 insertions, 10 deletions
diff --git a/Lib/pathlib/_abc.py b/Lib/pathlib/_abc.py
index 1fdca00..48a6c21 100644
--- a/Lib/pathlib/_abc.py
+++ b/Lib/pathlib/_abc.py
@@ -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):