Mercurial > hg > config
comparison python/tree2.py @ 383:8d1ad56761b0
this still, somehow, eludes my tired brain
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Fri, 26 Jul 2013 05:56:18 -0700 |
| parents | 9ac9561b6574 |
| children | 5ae5ada91ac8 |
comparison
equal
deleted
inserted
replaced
| 382:9ac9561b6574 | 383:8d1ad56761b0 |
|---|---|
| 20 if not remainder: | 20 if not remainder: |
| 21 break | 21 break |
| 22 return level | 22 return level |
| 23 | 23 |
| 24 def tree(directory): | 24 def tree(directory): |
| 25 retval = [] | 25 |
| 26 level = depth(directory) | 26 sort_key=lambda x: x.lower()) |
| 27 pre = [] | 27 retval = [directory] |
| 28 directories = {} | 28 top = depth(directory) |
| 29 lvlndctr = [] | 29 indent = [] |
| 30 last = {} | |
| 31 passed_last = {} | |
| 32 columns = [] | |
| 33 lastdepth = depth | |
| 34 indent = 0 | |
| 35 for dirpath, dirnames, filenames in os.walk(directory, topdown=True): | 30 for dirpath, dirnames, filenames in os.walk(directory, topdown=True): |
| 36 basename = os.path.basename(dirpath) | |
| 37 parent = os.path.abspath(os.path.dirname(dirpath)) | |
| 38 indent = depth(dirpath) - level | |
| 39 import pdb; pdb.set_trace() | |
| 40 dirnames[:] = sorted(dirnames, key=lambda x: x.lower()) | |
| 41 last[os.path.abspath(dirpath)] = dirnames and dirnames[-1] or None | |
| 42 directories[dirpath] = dirnames | |
| 43 | 31 |
| 44 retval.append('%s%s%s %s' % ('│' * (indent-1), | 32 abspath = os.path.abspath(dirpath) |
| 45 ('├' if basename == basename else '└') if indent else '', | 33 parent = os.path.dirname(abspath)) |
| 46 basename)) | 34 level = depth(abspath) - top |
| 47 filenames = sorted(filenames, key=lambda x: x.lower()) | 35 |
| 48 retval.extend(['%s%s%s' % ('│' * (indent), | 36 # sort articles of interest |
| 49 '├' if (((index < len(filenames) -1)) or dirnames) else '└', | 37 for resource in (dirnames, filenames): |
| 50 name) | 38 resource[:] = sorted(resource, key=sort_key) |
| 51 for index, name in | 39 |
| 52 enumerate(filenames) | 40 # set last for current dirpath |
| 53 ]) | 41 if dirnames: |
| 42 last[os.path.abspath(dirpath)] = dirnames[-1] | |
| 43 if last.get(parent) == os.path.basename(abspath): | |
| 44 pass | |
| 45 | |
| 46 # retval.append('%s%s%s %s' % ('│' * (indent-1), | |
| 47 # ('├' if basename == basename else '└') if indent else '', | |
| 48 # basename)) | |
| 49 # filenames = sorted(filenames, key=lambda x: x.lower()) | |
| 50 # retval.extend(['%s%s%s' % ('│' * (indent), | |
| 51 # '├' if (((index < len(filenames) -1)) or dirnames) else '└', | |
| 52 # name) | |
| 53 # for index, name in | |
| 54 # enumerate(filenames) | |
| 55 # ]) | |
| 54 return '\n'.join(retval) | 56 return '\n'.join(retval) |
| 55 | 57 |
| 56 def main(args=sys.argv[1:]): | 58 def main(args=sys.argv[1:]): |
| 57 | 59 |
| 58 usage = '%prog [options]' | 60 usage = '%prog [options]' |
