Skip to content

Commit 643d20e

Browse files
committed
Simplify parse_parts() implementation.
1 parent 7a88c12 commit 643d20e

File tree

1 file changed

+8
-17
lines changed

1 file changed

+8
-17
lines changed

Lib/pathlib.py

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -61,25 +61,16 @@ def __init__(self):
6161
self.join = self.sep.join
6262

6363
def parse_parts(self, parts):
64-
parsed = []
64+
if not parts:
65+
return '', '', []
6566
sep = self.sep
6667
altsep = self.altsep
67-
drv = root = ''
68-
if parts:
69-
part = self.pathmod.join(*parts)
70-
if altsep:
71-
part = part.replace(altsep, sep)
72-
drv, root, rel = self.splitroot(part)
73-
if sep in rel:
74-
for x in reversed(rel.split(sep)):
75-
if x and x != '.':
76-
parsed.append(sys.intern(x))
77-
else:
78-
if rel and rel != '.':
79-
parsed.append(sys.intern(rel))
80-
if drv or root:
81-
parsed.append(drv + root)
82-
parsed.reverse()
68+
path = self.pathmod.join(*parts)
69+
if altsep:
70+
path = path.replace(altsep, sep)
71+
drv, root, rel = self.splitroot(path)
72+
parsed = [drv + root] + rel.split(sep)
73+
parsed = [sys.intern(x) for x in parsed if x and x != '.']
8374
return drv, root, parsed
8475

8576
def join_parsed_parts(self, drv, root, parts, drv2, root2, parts2):

0 commit comments

Comments
 (0)