def splitall(self):
parts = []<EOL>loc = self<EOL>while loc != os.curdir and loc != os.pardir:<EOL><INDENT>prev = loc<EOL>loc, child = prev.splitpath()<EOL>if loc == prev:<EOL><INDENT>break<EOL><DEDENT>parts.append(child)<EOL><DEDENT>parts.append(loc)<EOL>parts.reverse()<EOL>return parts<EOL>
r""" Return a list of the path components in this path.

        The first item in the list will be a path.  Its value will be
        either os.curdir, os.pardir, empty, or the root directory of
        this path (for example, '/' or 'C:\\').  The other items in
        the list will be strings.

        path.path.joinpath(*result) will yield the original path.