Mercurial > repos > miller-lab > genome_diversity
view gd_composite.py @ 32:03c22b722882
remove BeautifulSoup dependency
author | Richard Burhans <burhans@bx.psu.edu> |
---|---|
date | Fri, 20 Sep 2013 13:54:23 -0400 |
parents | 2c498d40ecde |
children |
line wrap: on
line source
#!/usr/bin/env python from galaxy import eggs import pkg_resources pkg_resources.require( "Cheetah" ) from Cheetah.Template import Template import errno import os from datetime import datetime ################################################################################ def die(message): print >> sys.stderr, message sys.exit(1) def mkdir_p(path): try: os.makedirs(path) except OSError, e: if e.errno <> errno.EEXIST: raise ################################################################################ class Display(object): def display(self, parameter): print parameter class DisplayFile(Display): def display(self, parameter): return '<a href="{0}">{1}</a>'.format(parameter.value, parameter.name) class DisplayValue(Display): def display(self, parameter): if parameter.value is not None: return '{0}: {1}'.format(parameter.description, parameter.value) else: return '{0}'.format(parameter.description) class DisplayTagList(Display): def display(self, parameter): rv = [] if parameter.name: rv.append(parameter.name) rv.append('<ol>') for tag in parameter.value: col, individual_name = tag.split(':') rv.append('<li>{0}</li>'.format(individual_name)) rv.append('</ol>') return '\n'.join(rv) class DisplayPopulationList(Display): def display(self, parameter): rv = [] rv.append('Populations') rv.append('<ul>') for population in parameter.value: rv.append('<li>') if population.name is not None: rv.append(population.name) rv.append('<ol>') for name in population.individual_names(): rv.append('<li>{0}</li>'.format(name)) rv.append('</ol>') rv.append('</li>') rv.append('</ul>') return '\n'.join(rv) # def display(self, parameter, name=''): # print '<ul> {0}'.format(name) # for individual_name in parameter.individual_names(): # print '<li>{0}>/li>'.format(individual_name) # print '</ul>' class Parameter(object): def __init__(self, name=None, value=None, description=None, display_type=None): self.name = name self.value = value self.description = description if display_type is None: self.display_type = Display() else: self.display_type = display_type def display(self): return self.display_type.display(self) class InfoPage(object): _realpath = os.path.realpath(__file__) _script_dir = os.path.dirname(_realpath) template_file = os.path.join(_script_dir, 'gd_composite_template.html') def __init__(self): self.timestamp = datetime.now().strftime('%Y-%m-%d %I:%M:%S %p') self.title = 'Genome Diversity Composite Dataset' self.inputs = [] self.outputs = [] self.misc = '' self.template = self.load_template() def load_template(self): with open(self.template_file) as f: return f.read().rstrip('\r\n') def set_title(self, title): self.title = title def add_input_parameter(self, parameter): self.inputs.append(parameter) def add_output_parameter(self, parameter): self.outputs.append(parameter) def add_misc(self, misc): self.misc = misc def render(self): return Template(self.template, searchList=[{'tool': self}])