MCPcopy
hub / github.com/cool-RR/PySnooper / parse_parts

Method parse_parts

tests/mini_toolbox/pathlib.py:202–240  ·  view source on GitHub ↗
(self, parts)

Source from the content-addressed store, hash-verified

200 self.join = self.sep.join
201
202 def parse_parts(self, parts):
203 if pycompat.PY2:
204 parts = _py2_fsencode(parts)
205 parsed = []
206 sep = self.sep
207 altsep = self.altsep
208 drv = root = ''
209 it = reversed(parts)
210 for part in it:
211 if not part:
212 continue
213 if altsep:
214 part = part.replace(altsep, sep)
215 drv, root, rel = self.splitroot(part)
216 if sep in rel:
217 for x in reversed(rel.split(sep)):
218 if x and x != '.':
219 parsed.append(intern(x))
220 else:
221 if rel and rel != '.':
222 parsed.append(intern(rel))
223 if drv or root:
224 if not drv:
225 # If no drive is present, try to find one in the previous
226 # parts. This makes the result of parsing e.g.
227 # ("C:", "/", "a") reasonably intuitive.
228 for part in it:
229 if not part:
230 continue
231 if altsep:
232 part = part.replace(altsep, sep)
233 drv = self.splitroot(part)[0]
234 if drv:
235 break
236 break
237 if drv or root:
238 parsed.append(drv + root)
239 parsed.reverse()
240 return drv, root, parsed
241
242 def join_parsed_parts(self, drv, root, parts, drv2, root2, parts2):
243 """

Callers 6

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

Calls 3

_py2_fsencodeFunction · 0.85
replaceMethod · 0.80
splitrootMethod · 0.45

Tested by

no test coverage detected