'return a root-first list of all ancestor directories
plus the path itself.'

def parts(self, reverse=False):

    current = self
    l = [self]
    while 1:
        last = current
        current = current.dirpath()
        if (last == current):
            break
        l.append(current)
    if (not reverse):
        l.reverse()
    return l
