Mercurial > repos > rmarenco > hubarchivecreator
comparison trackHub/tracks_partial.py @ 16:3233451a3bd6 draft
planemo upload for repository https://github.com/goeckslab/hub-archive-creator commit fc73ec22a0db3ab09c4ac13dc58f0b54ae37845c
| author | rmarenco |
|---|---|
| date | Sun, 25 Sep 2016 11:25:38 -0400 |
| parents | fb5e60d4d18a |
| children |
comparison
equal
deleted
inserted
replaced
| 15:2a45cd656e8e | 16:3233451a3bd6 |
|---|---|
| 29 """ | 29 """ |
| 30 rval = [ | 30 rval = [ |
| 31 '<html><head><title>Files for Composite Dataset (%s)</title></head><p/>\ | 31 '<html><head><title>Files for Composite Dataset (%s)</title></head><p/>\ |
| 32 This composite dataset is composed of the following files:<p/><ul>' % ( | 32 This composite dataset is composed of the following files:<p/><ul>' % ( |
| 33 self.file_ext)] | 33 self.file_ext)] |
| 34 for composite_name, composite_file in self.get_composite_files(dataset=dataset).iteritems(): | 34 |
| 35 opt_text = '' | 35 def create_tree(path, tree): |
| 36 if composite_file.optional: | 36 if path[0] in tree: |
| 37 opt_text = ' (optional)' | 37 create_tree(path[1:], tree[path[0]]) |
| 38 rval.append('<li><a href="%s">%s</a>%s' % (composite_name, composite_name, opt_text)) | 38 else: |
| 39 tree[path[0]] = {} | |
| 40 if len(path) == 1: | |
| 41 return | |
| 42 else: | |
| 43 create_tree(path[1:], tree[path[0]]) | |
| 44 | |
| 45 def print_tree(tree, level): | |
| 46 if len(tree) == 0: | |
| 47 return | |
| 48 | |
| 49 for vertex in tree: | |
| 50 composite_name = vertex | |
| 51 bullet_point = '<li><a href="{0}>{0}</a></li>'.format(composite_name) | |
| 52 rval.append(bullet_point) | |
| 53 # Parent, so need to create a sub <ul> | |
| 54 if len(tree[vertex]) > 0: | |
| 55 rval.append('<ul>') | |
| 56 print_tree(tree[vertex], level+1) | |
| 57 rval.append('</ul>') | |
| 58 | |
| 59 walkable_tree = {} | |
| 60 | |
| 61 for composite_name_full_path, composite_file in self.get_composite_files(dataset=dataset).iteritems(): | |
| 62 paths = composite_name_full_path.split('/') | |
| 63 # Prepare the tree from to perform a Depth First Search | |
| 64 create_tree(paths, walkable_tree) | |
| 65 | |
| 66 # Perform a Depth First Search to print all the directory and files properly | |
| 67 print_tree(walkable_tree, 0) | |
| 68 | |
| 69 # rval.append('<li><a href="%s">%s</a>%s' % (composite_name, composite_name, opt_text)) | |
| 39 rval.append('</ul></html>') | 70 rval.append('</ul></html>') |
| 40 return "\n".join(rval) | 71 return "\n".join(rval) |
| 41 | 72 |
| 42 def set_peek( self, dataset, is_multi_byte=False ): | 73 def set_peek( self, dataset, is_multi_byte=False ): |
| 43 if not dataset.dataset.purged: | 74 if not dataset.dataset.purged: |
