comparison python/tree.py @ 381:397d0ac832b6

blow this popsicle stand
author Jeff Hammel <jhammel@mozilla.com>
date Fri, 26 Jul 2013 03:33:17 -0700
parents b1c43c980b05
children 5ae5ada91ac8
comparison
equal deleted inserted replaced
380:5b94b85763a0 381:397d0ac832b6
22 return level 22 return level
23 23
24 def tree(directory): 24 def tree(directory):
25 retval = [] 25 retval = []
26 level = depth(directory) 26 level = depth(directory)
27 pre = []
27 directories = {} 28 directories = {}
28 lvlndctr = [] 29 lvlndctr = []
29 last = {} 30 last = {}
30 passed_last = {} 31 passed_last = {}
31 columns = [] 32 columns = []
32 lastdepth = depth 33 lastdepth = depth
34 indent = 0
33 for dirpath, dirnames, filenames in os.walk(directory, topdown=True): 35 for dirpath, dirnames, filenames in os.walk(directory, topdown=True):
34 basename = os.path.basename(dirpath) 36 basename = os.path.basename(dirpath)
35 parent = os.path.abspath(os.path.dirname(dirpath)) 37 parent = os.path.abspath(os.path.dirname(dirpath))
36 indent = depth(dirpath) - level 38 indent = depth(dirpath) - level
39 import pdb; pdb.set_trace()
37 dirnames[:] = sorted(dirnames, key=lambda x: x.lower()) 40 dirnames[:] = sorted(dirnames, key=lambda x: x.lower())
38 last[os.path.abspath(dirpath)] = dirnames and dirnames[-1] or None 41 last[os.path.abspath(dirpath)] = dirnames and dirnames[-1] or None
39 directories[dirpath] = dirnames 42 directories[dirpath] = dirnames
40 43
41 retval.append('%s%s%s' % ('│' * (indent-1), 44 retval.append('%s%s%s %s' % ('│' * (indent-1),
42 ('├' if basename == basename else '└') if indent else '', 45 ('├' if basename == basename else '└') if indent else '',
43 basename)) 46 basename))
44 filenames = sorted(filenames, key=lambda x: x.lower()) 47 filenames = sorted(filenames, key=lambda x: x.lower())
45 retval.extend(['%s%s%s' % ('│' * (indent), 48 retval.extend(['%s%s%s' % ('│' * (indent),
46 '├' if (((index < len(filenames) -1)) or dirnames) else '└', 49 '├' if (((index < len(filenames) -1)) or dirnames) else '└',
47 name) 50 name)
48 for index, name in 51 for index, name in