def episodes(id_show, id_episode): if id_show not in utils.AVAILABE_SHOWS: section_template = "./templates/404.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=section_template, sectionData={}) show = json.loads(utils.getJsonFromFile(id_show)) episodes = show['_embedded']['episodes'] try: parsed_id_episode = int(id_episode) for chapter in episodes: if chapter['id'] == parsed_id_episode: section_template = "./templates/episode.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=section_template, sectionData=chapter) except ValueError: pass section_template = "./templates/404.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=section_template, sectionData={})
def episode(id, episode_id): sectionData = utils.get_specific_episode_api(id, episode_id) if not sectionData: sectionTemplate = "./templates/404.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData={}) else: sectionTemplate = "./templates/episode.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=sectionData)
def show(id): sectionData = utils.get_specific_show_api(id) if not sectionData: sectionTemplate = "./templates/404.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData={}) else: sectionTemplate = "./templates/show.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=sectionData)
def show_id(show_id): sectionTemplate = "./templates/show.tpl" sectionData = utils.show_info(show_id) try: return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, query=sectionData) except: return template("./pages/index.html", sectionTemplate="./templates/404.tpl", version=utils.getVersion(), sectionData={})
def episode_id(episode_id, show_id): sectionTemplate = "./templates/episode.tpl" sectionData = utils.get_episode_info(show_id, episode_id) try: return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=sectionData) except: return template("./pages/index.html", sectionTemplate="./templates/404.tpl", version=utils.getVersion(), sectionData={})
def browse(): result = utils.data_of_shows(utils.api_shows_address, utils.AVAILABE_SHOWS) sectionTemplate = "./templates/browse.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=result)
def browse(): sectionTemplate = "./templates/browse.tpl" sectionData = utils.getShows() return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=sectionData)
def search(): searchQuery = request.forms.get('q') results = [] shows = [ json.loads(utils.getJsonFromFile(id)) for id in utils.AVAILABE_SHOWS ] for show in shows: for episode in show['_embedded']['episodes']: if episode['name'] is None: tmpName = '' else: tmpName = episode['name'] if episode['summary'] is None: tmpSummary = '' else: tmpSummary = episode['summary'] if searchQuery in tmpName or searchQuery in tmpSummary: res = {} res['showid'] = show['id'] res['episodeid'] = episode['id'] res['text'] = show['name'] + ":" + episode['name'] results.append(res) sectionTemplate = "./templates/search_result.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, query=searchQuery, results=results, sectionData={})
def show(show_id): sectionTemplate = "./templates/show.tpl" show_current = json.loads(utils.getJsonFromFile(show_id)) return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=show_current)
def browse(): sectionTemplate = "./templates/browse.tpl" result = utils.getShows() return template(INDEX, version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=result)
def search(): sectionTemplate = "./templates/search_result.tpl" search_input = request.forms.get('q') shows_list = [ json.loads(utils.getJsonFromFile(elem)) for elem in utils.AVAILABE_SHOWS ] search_output = [] for shows in range(len(shows_list) - 1): for episodes in range( len(shows_list[shows]['_embedded']['episodes']) - 1): show_current = shows_list[shows] if search_input in str(show_current['name']) \ or search_input in str(show_current['_embedded']['episodes'][episodes]['name']) \ or search_input in str(show_current['_embedded']['episodes'][episodes]['summary']): search_match = { "showid": shows_list[shows]['id'], "episodeid": shows_list[shows]['_embedded']['episodes'][episodes]['id'], "text": (shows_list[shows]['name'] + ": " + shows_list[shows] ['_embedded']['episodes'][episodes]['name']) } search_output.append(search_match) return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=search_output, query=search_input)
def get_show(id): sectionTemplate = "./templates/show.tpl" result = utils.getShow(id) return template(INDEX, version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=result)
def show(number): selected_show = json.loads(utils.getJsonFromFile(number)) show_template = "./templates/show.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=show_template, sectionData=selected_show)
def get_episode(show_id, episode_id): sectionTemplate = "./templates/episode.tpl" episode = utils.getEpisode(show_id, episode_id) return template(INDEX, version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=episode)
def routing(name): sectionTemplate = "./templates/show.tpl" sectionData = json.loads(utils.getJsonFromFile(name)) return template(sectionTemplate, version=utils.getVersion(), sectionTemplate=sectionTemplate, result=sectionData)
def show(name): sectionTemplate = "./templates/show.tpl" sectionData = json.loads(utils.getJsonFromFile(name)) return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=sectionData)
def episode(number, ep_number): show = json.loads(utils.getJsonFromFile(number)) for episode in show["_embedded"]["episodes"]: if int(ep_number) == episode["id"]: return template("./templates/episode.tpl", version=utils.getVersion(), result=episode) return
def signin(): if request.method == 'POST': return handleLogin(request) else: context = {'err_msg': ''} sectionTemplate = "./templates/login.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate,**context, sectionData={})
def search(): sectionTemplate = "./templates/seaerch_result.tpl" query = request.forms.get('q') return template("./pages/index.html", version=getVersion(), sectionData={}, sectionTemplate=sectionTemplate, query=query, results=search(query))
def display_show(showname): sectionTemplate = "./templates/show.tpl" sectionData = utils.displayShow(showname) if sectionData == 'error': return error(error) return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=sectionData)
def browse(): shows = [] for show in utils.AVAILABE_SHOWS: shows.append(json.loads(utils.getJsonFromFile(show))) browse_template = "./templates/browse.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=browse_template, sectionData=shows)
def browse(): with connection.cursor() as cursor: sql = "SELECT * FROM categories" cursor.execute(sql) result = cursor.fetchall() sectionTemplate = "./templates/store1.tpl" sectionData = result return template("./pages/logged.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=sectionData)
def display_episode(showname, episodenum): sectionTemplate = "./templates/episode.tpl" sectionData = utils.displayEp(showname, episodenum) if sectionData == 'error': return error(error) return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData={sectionData})
def show(number): with connection.cursor() as cursor: sql = "SELECT id_product,pr.product_name, pr.product_image, price, sup.supermarket_name, sup.supermarket_image, cat.id as category_id FROM prices as p1 inner join supermarkets as sup on p1.id_supermarket = sup.id inner join products as pr on p1.id_product = pr.id inner join categories as cat on pr.id_category = cat.id group by id_product,pr.product_name, pr.product_image, price, sup.supermarket_name, sup.supermarket_image having price <= (select min(p2.price) from prices as p2 where p2.id_product = p1.id_product group by p2.id_product) and category_id ={} order by price;".format(number) cursor.execute(sql) result = cursor.fetchall() print(result) sectionTemplate = "./templates/store2.tpl" return template("./pages/logged.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=result)
def index(): sectionTemplate = "./templates/browse.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=[ json.loads(utils.getJsonFromFile(movie)) for movie in utils.AVAILABLE_SHOWS ])
def browse(): sectionTemplate = "./templates/browse.tpl" sectionData = [ json.loads(utils.getJsonFromFile(id)) for id in utils.AVAILABE_SHOWS ] return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData=sectionData)
def handleLogin(request): email = request.forms.get("email") password = request.forms.get("password") userVerified = verifyUser(email, password) if userVerified: redirect('/store') else: context = {"err_msg": "Wrong nickname or password"} return template("./pages/logged.html",version=utils.getVersion(), sectionTemplate="./templates/login.tpl", **context, sectionData={})
def episode(showId, episodeId): sectionData = json.loads(utils.getJsonFromFile(showId)) for ep in sectionData['_embedded']['episodes']: if ep['id'] == int(episodeId): sectionData = ep break return template("./templates/episode.tpl", version=utils.getVersion(), result=sectionData)
def search_result(): query = request.forms.get('q') sectionTemplate = "./templates/search_result.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, query=query, results=utils.search(query), sectionData={})
def search_shows(): q = request.POST.get("q") search_results = utils.search_shows(q) sectionTemplate = "./templates/search_result.tpl" return template("./pages/index.html", version=utils.getVersion(), sectionTemplate=sectionTemplate, sectionData={}, results=search_results, query=q)
def logException_internal(exClass, exValue, stack): import linecache, time log = logging.getLogger('exception') counter = 0 log.critical('Exception occured: %s' % time.strftime("%Y-%m-%d %H:%M:%S")) try: import utils log.critical('grid-control: %s' % utils.getVersion()) except: log.critical('grid-control: Unknown version') log.critical('') while stack: counter += 1 code = stack.tb_frame.f_code # Output relevant code fragment linecache.checkcache(code.co_filename) log.critical('Stack #%s [%s:%d] %s', counter, code.co_filename, stack.tb_lineno, code.co_name) fmtLine = lambda line: linecache.getline(code.co_filename, line).rstrip().replace('\t', ' ') log.critical('\t | %s', fmtLine(stack.tb_lineno - 1)) log.critical('\t=>| %s', fmtLine(stack.tb_lineno + 0)) log.critical('\t | %s', fmtLine(stack.tb_lineno + 1)) log.critical('') # Output local and class variables def safeRepr(obj): try: value = repr(obj) if log.isEnabledFor(logging.INFO1) or (len(value) < 500): return value return value[:500] + " ... [length:%d]" % len(value) except: return 'unable to display!' def display(keys, varDict, varPrefix = ''): maxlen = max(map(len, tmp.keys()) + [0]) for var in sorted(keys): value = safeRepr(varDict[var]) if 'password' in var: value = '<redacted>' log.critical('\t\t%s%s = %s', varPrefix, var.ljust(maxlen), value) tmp = dict(stack.tb_frame.f_locals) log.critical('\tLocal variables:') display(filter(lambda v: v != 'self', tmp), tmp) try: log.critical('\tClass variables (%s):' % safeRepr(tmp['self'])) display(tmp['self'].__dict__, tmp['self'].__dict__, 'self.') except: pass log.critical('') stack = stack.tb_next if exClass: exMessage = '%s: %s' % (exClass.__name__, str.join(' ', map(str, exValue.args))) log.critical(exMessage) del stack return exMessage + '\n'
id = os.path.abspath(timestamp) libs = {} frags = [] cf = "" format ="fastq" inserts = [] maxreadlen = 250 innie = True readlibs = [] SFFLinkerType = "titanium" contigs = dict() lastLib = 0 libs = "" for o, a in opts: if o in ("-V", "--version"): print "metAMOS Version %s"%(utils.getVersion()) sys.exit() elif o in ("-W", "--workflow"): if a.lower() not in availableWorkflows.keys(): print "Error: unknown wofkflow %s specified. Please choose one of %s."%(a.lower(), ",".join(availableWorkflows.keys())) sys.exit(1) wf = availableWorkflows[a.lower()] # process any requested contigs/libs for lib in wf.readlibs: nlib = readLib(lib.format, lib.f1.path, "" if lib.interleaved or not lib.mated else lib.f2.path, lib.innie, lib.linkerType, lib.mated, lib.interleaved) readlibs.append(nlib) inserts.append([lib.mmin, lib.mmax]) for contig in wf.asmcontigs: contigs[os.path.basename(contig)] = contig selectedWorkflow = wf.name
def printConfiguration(fileName=None): configurationText = [] configurationText.append("metAMOS configuration summary:\n") configurationText.append("metAMOS Version:\t%s\n"%(utils.getVersion())) configurationText.append("Time and Date:\t\t%s\n"%(str(datetime.date.today()))) configurationText.append("Working directory:\t%s\n"%(utils.Settings.rundir)) configurationText.append("Prefix:\t\t\t%s\n"%(utils.Settings.PREFIX)) configurationText.append("K-Mer:\t\t\t%s\n"%(utils.Settings.kmer)) configurationText.append("Threads:\t\t%d\n"%(utils.Settings.threads)) configurationText.append("Taxonomic level:\t%s\n"%(utils.Settings.taxa_level)) configurationText.append("Verbose:\t\t%s\n"%(utils.Settings.VERBOSE)) configurationText.append("Steps to skip:\t\t%s\n"%(", ".join(skipsteps))) configurationText.append("Steps to force:\t\t%s\n"%(", ".join(forcesteps))) # get metamos citations configurationText.append("\n") configurationText.append("[citation]\n") (progName, citation) = utils.getProgramCitations(settings, "metamos") configurationText.append(progName + "\n") configurationText.append("\t" + citation + "\n\n") if isolate_genome == True: (progName, citation) = utils.getProgramCitations(settings, "metamos_isolate") configurationText.append(progName + "\n") configurationText.append("\t" + citation + "\n\n") configurationText.append("\n") configurationText.append("Step-specific configuration:\n") for type in selected_programs.keys(): progs = set(selected_programs[type].split(",")) configurationText.append("[" + type + "]\n") for prog in progs: # special case for validation, orf is a reference to selected orf finder, n50 is nothing if type == "validate" and prog == "n50": continue if type == "validate" and prog == "orf": prog = selected_programs["findorfs"] if type == "preprocess" and prog == "none": configurationText.append(prog.upper() + "\n\tN/A\n\n") continue if type == "preprocess" and prog == "metamos": configurationText.append("metAMOS built-in filtering\n\tN/A\n\n") continue if prog == None or prog == "none": configurationText.append("None\n\n") else: (progName, citation) = utils.getProgramCitations(settings, prog) if progName == "": configurationText.append(prog + "\n") else: configurationText.append(progName + "\n") try: configurationText.append("\t" + eval("utils.Settings.%s"%(prog.replace("-", "_").upper()))+"\n") except AttributeError: try: configurationText.append("\t" + generic.getLocation(utils.STEP_NAMES.mapping[type.upper()], prog) + "\n") except KeyError: configurationText.append("UNKNOWN") if citation != "": configurationText.append("\t" + citation + "\n\n") # add step-indepent citations that are always run configurationText.append("[other]\n") for prog in always_run_programs: if prog == None or prog == "none": configurationText.append("None\n\n") else: (progName, citation) = utils.getProgramCitations(settings, prog) configurationText.append(progName + "\n") try: configurationText.append("\t" + eval("utils.Settings.%s"%(prog.upper()))+"\n") except AttributeError: configurationText.append("\tUNKNOWN\n") configurationText.append("\t" + citation + "\n\n") if fileName == "" or fileName == None: print ''.join(configurationText) else: conf = open(fileName, 'w') conf.write(''.join(configurationText)) conf.close()