def list_command(args) : log = get_log() e = EnsemblDownloader() suppression_defaults = { 'ensembl' : 70, # errors with 69 and older (missing columns) 'metazoa' : 17, 'protists' : 17, 'plants' : 17, 'bacteria' : 17, 'fungi' : 17, } if not args.suppress : args.suppress = suppression_defaults[args.database] log.info("listing species in %s database" % args.database) log.info("suppressing releases prior to %d" % args.suppress) try : pretty_print_table( ('Species', 'Release'), e.get_all_species(db=args.database, suppress=args.suppress)) except EnsemblDownloadError, ede : log.fatal(ede.message) exit(1)
def _initialise_db(self, species, release, database_name, nucleotide) : e = EnsemblDownloader() self.log.info("downloading %s/%d" % (species, release)) try : self.data = ensembl_to_glutton(e.download(species, release, database_name, nucleotide)) except EnsemblDownloadError, ede : self.log.fatal(ede.message) exit(1)
# data is assumed to be a list of tuples def pretty_print_table(headings, data) : spacer = 4 num_columns = len(headings) assert _sanity_check_data(data, num_columns) headings = [ h.capitalize() for h in headings ] # generate format string using column widths fmt = "" for i in range(num_columns) : fmt += ("%%-%ds" % (max([len(headings[i])] + [ _safe_len(d[i]) for d in data ]) + spacer)) # print the actual table s = fmt % tuple(headings) print "" print s print '-'*len(s) for d in data : print fmt % tuple(d) print "" if __name__ == '__main__' : from glutton.ensembl_downloader import EnsemblDownloader e = EnsemblDownloader() pretty_print_table(['species', 'release'], e.get_all_species('metazoa'))