# HG changeset patch # User Jeff Hammel # Date 1374843378 25200 # Node ID 8d1ad56761b0f2599ca785f29f6a61240da003bc # Parent 9ac9561b65743d4cb8d32934db86dc67aceb9aba this still, somehow, eludes my tired brain diff -r 9ac9561b6574 -r 8d1ad56761b0 python/tree2.py --- a/python/tree2.py Fri Jul 26 03:58:21 2013 -0700 +++ b/python/tree2.py Fri Jul 26 05:56:18 2013 -0700 @@ -22,35 +22,37 @@ return level def tree(directory): - retval = [] - level = depth(directory) - pre = [] - directories = {} - lvlndctr = [] - last = {} - passed_last = {} - columns = [] - lastdepth = depth - indent = 0 + + sort_key=lambda x: x.lower()) + retval = [directory] + top = depth(directory) + indent = [] for dirpath, dirnames, filenames in os.walk(directory, topdown=True): - basename = os.path.basename(dirpath) - parent = os.path.abspath(os.path.dirname(dirpath)) - indent = depth(dirpath) - level - import pdb; pdb.set_trace() - dirnames[:] = sorted(dirnames, key=lambda x: x.lower()) - last[os.path.abspath(dirpath)] = dirnames and dirnames[-1] or None - directories[dirpath] = dirnames + + abspath = os.path.abspath(dirpath) + parent = os.path.dirname(abspath)) + level = depth(abspath) - top + + # sort articles of interest + for resource in (dirnames, filenames): + resource[:] = sorted(resource, key=sort_key) - retval.append('%s%s%s %s' % ('│' * (indent-1), - ('├' if basename == basename else '└') if indent else '', - basename)) - filenames = sorted(filenames, key=lambda x: x.lower()) - retval.extend(['%s%s%s' % ('│' * (indent), - '├' if (((index < len(filenames) -1)) or dirnames) else '└', - name) - for index, name in - enumerate(filenames) - ]) + # set last for current dirpath + if dirnames: + last[os.path.abspath(dirpath)] = dirnames[-1] + if last.get(parent) == os.path.basename(abspath): + pass + + # retval.append('%s%s%s %s' % ('│' * (indent-1), + # ('├' if basename == basename else '└') if indent else '', + # basename)) + # filenames = sorted(filenames, key=lambda x: x.lower()) + # retval.extend(['%s%s%s' % ('│' * (indent), + # '├' if (((index < len(filenames) -1)) or dirnames) else '└', + # name) + # for index, name in + # enumerate(filenames) + # ]) return '\n'.join(retval) def main(args=sys.argv[1:]):