(self, parts)
| 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 | """ |
no test coverage detected