# Path: lib/page.py
# class Page:
# 	def __init__(self):
# 	def addSection(self, title, content, footer=None, description=None, container=True):
# 	def addSectionFront(self, title, content, footer=None, description=None, container=True):
# 	def addNav(self, nav_list, active_title=""):
# 	def enableNavSeparators(self,enable):
# 	def addScript(self, script):
# 	def addStyle(self, style):
# 	def setNavRight(self, nav):
# 	def setSidebarFooter(self, html):
# 	def enableFullscreenSections(self):
# 	def enableSidebar(self,enable):
# 	def setFooter(self,footer):
# 	def html(self):
# 
# Path: lib/util.py
# STATUS_NORMAL=1
# STATUS_MAX_MEMORY_EXCEEDED=2
# STATUS_MAX_RUNTIME_EXCEEDED=3
# MAX_LEN_OUT = 10000
# def runAndMeasure(command,detailed=True,maxtime=0,maxmem=0):
# def runSimple(command):
# def runAndMeasureInternal(return_queue,command,maxtime=0,maxmem=0):
# def runInternal(control_queue,command,max_memory):
# def measureProcess(queue, initial_pids, command, measurement_interval=1, max_runtime=0, max_memory=0, debug=False):
# 	def extendTargets(targets, proc):
# 	def killTargets(targets):
# 	def updateTargets(targets, metrics):
# 	def updateMetrics(target, metrics):
# def loadConfig(name, parent_dir="", already_included=[]):
# def setCallDir(d):
# def setRootDir(d):
# def enterCallDir():
# def enterRootDir():
# def getRootDir():
# def nl2br(text):
# def msg(text="", level=1):
# def yes_no(b):
# def md5(text):
# def merge(x, y):
# def formatFilesize(n):
# def percent(val, base, offset=0):
# def abs_path(path):
# def get_sam_header_line_count(filename):
# def is_sam_sorted(filename):
# def sort_sam(filename,threads=1):
# def sort_sam_picard(filename,threads=-1):
# def line_count(filename):
# def sanitize_string(s):
# def makeExportDropdown(plot_id,csv_filename):
# def parseMD(md,seq):


import time
import os
import sys
import math
import yaml
		import json
			import report_plot
from lib import page
from lib import util
		return html

	def generateErrorList(self, test):
		html = ""

		if len(test.getWarnings()) + len(test.getErrors()) == 0:
			html = "<i>No problems were encountered.</i>"
			return html

		html += "<div class=\"table-responsive\"><table class=\"table table-striped\">"
		html += "<thead>"
		html += "<tr>"
		html += "<th>Type</th>"
		html += "<th>Message</th>"
		html += "<th>File</th>"
		html += "<th>Position</th>"
		html += "</tr>"
		html += "</thead>"
		html += "<tbody>"

		for msg, file, location in test.getWarnings():
			html += "<tr>"
			html += "<td class=\"col-md-1 warning\" align=\"center\"><span class=\"glyphicon glyphicon-exclamation-sign\"></span></td>"
			html += "<td>" + str(msg) + "</td>"
			html += "<td>" + str(file) + "</td>"
			html += "<td>" + str(location) + "</td>"
			html += "</tr>"

		for msg, file, location in test.getErrors():
			html += "<tr>"

# Path: lib/page.py
# class Page:
# 	def __init__(self):
# 	def addSection(self, title, content, footer=None, description=None, container=True):
# 	def addSectionFront(self, title, content, footer=None, description=None, container=True):
# 	def addNav(self, nav_list, active_title=""):
# 	def enableNavSeparators(self,enable):
# 	def addScript(self, script):
# 	def addStyle(self, style):
# 	def setNavRight(self, nav):
# 	def setSidebarFooter(self, html):
# 	def enableFullscreenSections(self):
# 	def enableSidebar(self,enable):
# 	def setFooter(self,footer):
# 	def html(self):
# 
# Path: lib/util.py
# STATUS_NORMAL=1
# STATUS_MAX_MEMORY_EXCEEDED=2
# STATUS_MAX_RUNTIME_EXCEEDED=3
# MAX_LEN_OUT = 10000
# def runAndMeasure(command,detailed=True,maxtime=0,maxmem=0):
# def runSimple(command):
# def runAndMeasureInternal(return_queue,command,maxtime=0,maxmem=0):
# def runInternal(control_queue,command,max_memory):
# def measureProcess(queue, initial_pids, command, measurement_interval=1, max_runtime=0, max_memory=0, debug=False):
# 	def extendTargets(targets, proc):
# 	def killTargets(targets):
# 	def updateTargets(targets, metrics):
# 	def updateMetrics(target, metrics):
# def loadConfig(name, parent_dir="", already_included=[]):
# def setCallDir(d):
# def setRootDir(d):
# def enterCallDir():
# def enterRootDir():
# def getRootDir():
# def nl2br(text):
# def msg(text="", level=1):
# def yes_no(b):
# def md5(text):
# def merge(x, y):
# def formatFilesize(n):
# def percent(val, base, offset=0):
# def abs_path(path):
# def get_sam_header_line_count(filename):
# def is_sam_sorted(filename):
# def sort_sam(filename,threads=1):
# def sort_sam_picard(filename,threads=-1):
# def line_count(filename):
# def sanitize_string(s):
# def makeExportDropdown(plot_id,csv_filename):
# def parseMD(md,seq):


# Path: lib/report.py
import time
import os
import sys
import math
import yaml
		import json
			import report_plot
from lib import page
from lib import util

		return html

	def generateErrorList(self, test):
		html = ""

		if len(test.getWarnings()) + len(test.getErrors()) == 0:
			html = "<i>No problems were encountered.</i>"
			return html

		html += "<div class=\"table-responsive\"><table class=\"table table-striped\">"
		html += "<thead>"
		html += "<tr>"
		html += "<th>Type</th>"
		html += "<th>Message</th>"
		html += "<th>File</th>"
		html += "<th>Position</th>"
		html += "</tr>"
		html += "</thead>"
		html += "<tbody>"

		for msg, file, location in test.getWarnings():
			html += "<tr>"
			html += "<td class=\"col-md-1 warning\" align=\"center\"><span class=\"glyphicon glyphicon-exclamation-sign\"></span></td>"
			html += "<td>" + str(msg) + "</td>"
			html += "<td>" + str(file) + "</td>"
			html += "<td>" + str(location) + "</td>"
			html += "</tr>"

		for msg, file, location in test.getErrors():
			html += "<tr>"

			html += "<td class=\"col-md-1 danger\" align=\"center\"><span class=\"glyphicon glyphicon-remove\"></span></td>"