def index(page, run_from, run_to): start_time_stamp = int(time() * 1000) preparation_sw = StopWatchTimer() condition_types = g.tdb.get_condition_types() query = g.tdb.session.query(Run) # Run range is defined? if run_from != -1 and run_to != -1: # Check what is max/min run run_min, run_max = run_from, run_to if run_max < run_min: run_min, run_max = run_max, run_min # Filter query and count results query = query.filter(Run.number >= run_min, Run.number <= run_max) count = g.tdb.session.query(func.count(Run.number)).filter( Run.number >= run_min, Run.number <= run_max).scalar() # we don't want pagination in this case, setting page size same/bigger than count per_page = run_max - run_min else: count = g.tdb.session.query(func.count(Run.number)).scalar() per_page = PER_PAGE # Create pagination pagination = Pagination(page, per_page, count) preparation_sw.stop() query_sw = StopWatchTimer() # Get runs from query runs = query.options(subqueryload(Run.conditions))\ .order_by(Run.number.desc())\ .slice(pagination.item_limit_from, pagination.item_limit_to)\ .all() query_sw.stop() performance = { "preparation": preparation_sw.elapsed, "query": query_sw.elapsed, "selection": 0.0, "start_time_stamp": start_time_stamp, } return render_template("runs/index.html", runs=runs, DefaultConditions=DefaultConditions, pagination=pagination, condition_types=condition_types, run_from=-1, run_to=-1, search_query="", performance=performance)
def print_run_selector(records, options, row): months = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ] rcdb_inelig = [ 'detcom_02', 'RunPeriod-2014-10', 'RunPeriod-2015-03', 'RunPeriod-2015-06', 'RunPeriod-2015-12' ] print "<ul id=\"runList\">" dates = get_dates(options) query_sw = StopWatchTimer() if options[2] in rcdb_inelig or options[2] == "RunPeriod-2017-01": rcdb_runs = db.select_runs("@is_production", 30000, 39000) else: rcdb_runs = db.select_runs("@status_approved and @is_production", 30000, 39000) rcdb_run_numbers = [run.number for run in rcdb_runs] query_sw.stop() print("QUERY TOOK {}".format(query_sw.elapsed)) print("===========================================") if "mc_ver01" in options: newText = "MC" print( "<label><input type=\"radio\" id=\"run_number\" name=\"run_number\" value=\"%s\" onclick=\"changeRun(%s,%s);\"> %s</label>" % (10000, 10000, "MC_run", 10000)) # print ("<a href=\"/cgi-bin/data_monitoring/monitoring/browseJSRoot.py?run_number=%s&ver=%s&period=%s\" target=\"_blank\"><button type=\"button\"> ROOT </button></a>" % (row[0], options[1], options[2])) # print ("<a href=\"https://halldweb.jlab.org/rcdb/runs/info/%s\" target=\"_blank\"><button type=\"button\"> RCDB </button></a>" % (row[0])) return # print dates for date in dates: if date[0] == None: continue # format date (must be a better way) fulldate = str(date[0]) month = fulldate[5:7] day = fulldate[8:10] namedate = "%s %s" % (months[int(month) - 1], day) # get run range minRun = 9e9 maxRun = 0 rest_sw = StopWatchTimer() for row in records: if row[1] == None or row[1] == '0': continue if "recon" in options[1] and row[0] not in rcdb_run_numbers: continue rundate_obj = None try: rundate_obj = datetime.datetime.strptime( row[1], "%Y-%m-%d %H:%M:%S") except ValueError: pass if rundate_obj == None: continue # print rundate_obj try: rundate = rundate_obj.strftime("%Y-%m-%d") except ValueError: pass # print rundate if rundate == fulldate: if row[0] < minRun: minRun = row[0] if row[0] > maxRun: maxRun = row[0] rest_sw.stop() print("RECORD TOOK {}".format(rest_sw.elapsed)) print("===========================================") if minRun != 9e9 and maxRun != 0: print "<li>" print "<b>%s</b> (Run %s-%s)" % (namedate, minRun, maxRun) print "<ul>" # print runs for given date for row in records: if row[1] == None or row[1] == '0': continue if "recon" in options[1] and row[0] not in rcdb_run_numbers: continue rundate_obj = None try: rundate_obj = datetime.datetime.strptime( row[1], "%Y-%m-%d %H:%M:%S") except ValueError: pass if rundate_obj == None: continue # print rundate_obj try: rundate = rundate_obj.strftime("%Y-%m-%d") except ValueError: pass # print rundate numevents = row[2] if rundate == fulldate: if options[2] not in rcdb_inelig: if db.get_condition(row[0], "event_count"): numevents = db.get_condition( row[0], "event_count").value print "<li>" # print records print( "<label><input type=\"radio\" id=\"run_number\" name=\"run_number\" value=\"%s\" onclick=\"changeRun(%s,%s);changePath();showPlot()\"> %s (%s eve)</label>" % (row[0], row[0], row[0], row[0], numevents)) print( "<a href=\"/cgi-bin/data_monitoring/monitoring/browseJSRoot.py?run_number=%s&ver=%s&period=%s\" target=\"_blank\"><button type=\"button\"> ROOT </button></a>" % (row[0], options[1], options[2])) print( "<a href=\"https://halldweb.jlab.org/rcdb/runs/info/%s\" target=\"_blank\"><button type=\"button\"> RCDB </button></a>" % (row[0])) print "</li>" print "</ul>" print "</li>" print "</ul>" print "<script type=\"text/javascript\">make_tree_menu('runList');</script>"
# then create your loggers as always logger_a_b = logging.getLogger("a.b") logger_a_b_c = logging.getLogger("a.b.c") logger_a_b_c_d = logging.getLogger("a.b.c.d") logger_a.debug("One") logger_a_b.warning("two") logger_a_b.warning("three") logger_a_b_c.critical("Four") logger_a_b.warning("Five") logger_a.warning("Six") logger_a_b_c_d.warning("absd") sw = StopWatchTimer() runs = db.select_runs("@is_production", 0, 20000) sw.stop() print(sw.elapsed, len(runs)) sw = StopWatchTimer() runs = db.select_runs("@is_cosmic", 0, 20000) sw.stop() print(sw.elapsed, len(runs)) sw = StopWatchTimer() runs = db.select_runs("@is_production", 0, 20000) sw.stop() print(sw.elapsed, len(runs))