# 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 math
import os
import yaml
from lib import util

def map(self):
	self.enterWorkingDirectory()

	mapper = self.getMapper()
	mapper.onMapPre()

	try:
		reads_size = 0
		for readfile in self._("input:reads"):
			reads_size = reads_size + os.path.getsize(readfile)
	except:
		self.error("Error accessing read / reference input files for size - do they exist / are accessible?",
				   str(self._("input:reads")), None)
		raise SystemExit

	if os.path.isfile(self._("output:testee_path")):
		self.error("Output file existed before mapper run", self._("output:testee_path"))
		raise SystemExit

	if os.path.isfile(self._("output:sorted_testee_path")):
		self.error("Output file existed before mapper run", self._("output:sorted_testee_path"))
		raise SystemExit

	cmd_pre = mapper.getCommandLinePre()
	self.dbg("Command(pre): " + cmd_pre)

	self.sub(cmd_pre)

	mapper_path = list(self.getMapper().getBinaryPath())[0]

# 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: tests_base/base_mapping/map.py
import math
import os
import yaml
from lib import util


def map(self):
	self.enterWorkingDirectory()

	mapper = self.getMapper()
	mapper.onMapPre()

	try:
		reads_size = 0
		for readfile in self._("input:reads"):
			reads_size = reads_size + os.path.getsize(readfile)
	except:
		self.error("Error accessing read / reference input files for size - do they exist / are accessible?",
				   str(self._("input:reads")), None)
		raise SystemExit

	if os.path.isfile(self._("output:testee_path")):
		self.error("Output file existed before mapper run", self._("output:testee_path"))
		raise SystemExit

	if os.path.isfile(self._("output:sorted_testee_path")):
		self.error("Output file existed before mapper run", self._("output:sorted_testee_path"))
		raise SystemExit

	cmd_pre = mapper.getCommandLinePre()
	self.dbg("Command(pre): " + cmd_pre)

	self.sub(cmd_pre)

	mapper_path = list(self.getMapper().getBinaryPath())[0]

	base_runtime_file = self.mate.getCachePathPrefix() + util.md5(mapper_path + self._("input:reference")) + "_initt.yaml"