MCPcopy Create free account
hub / github.com/RT-Thread/env-windows / parse_parts

Method parse_parts

tools/python-3.11.9-amd64/Lib/pathlib.py:56–92  ·  view source on GitHub ↗
(self, parts)

Source from the content-addressed store, hash-verified

54 self.join = self.sep.join
55
56 def parse_parts(self, parts):
57 parsed = []
58 sep = self.sep
59 altsep = self.altsep
60 drv = root = ''
61 it = reversed(parts)
62 for part in it:
63 if not part:
64 continue
65 if altsep:
66 part = part.replace(altsep, sep)
67 drv, root, rel = self.splitroot(part)
68 if sep in rel:
69 for x in reversed(rel.split(sep)):
70 if x and x != '.':
71 parsed.append(sys.intern(x))
72 else:
73 if rel and rel != '.':
74 parsed.append(sys.intern(rel))
75 if drv or root:
76 if not drv:
77 # If no drive is present, try to find one in the previous
78 # parts. This makes the result of parsing e.g.
79 # ("C:", "/", "a") reasonably intuitive.
80 for part in it:
81 if not part:
82 continue
83 if altsep:
84 part = part.replace(altsep, sep)
85 drv = self.splitroot(part)[0]
86 if drv:
87 break
88 break
89 if drv or root:
90 parsed.append(drv + root)
91 parsed.reverse()
92 return drv, root, parsed
93
94 def join_parsed_parts(self, drv, root, parts, drv2, root2, parts2):
95 """

Callers 5

_parse_argsMethod · 0.80
with_nameMethod · 0.80
matchMethod · 0.80
globMethod · 0.80
rglobMethod · 0.80

Calls 5

replaceMethod · 0.45
splitrootMethod · 0.45
splitMethod · 0.45
appendMethod · 0.45
reverseMethod · 0.45

Tested by

no test coverage detected