import re

from gavo import api

class PreviewMaker(api.SpectralPreviewMaker):
	sdmId = "build-ts"

	def getPreviewData(self, srcName):
		# our grammar needs a datalink descriptor, which is a bit heavy
		# for what we're doing here.  So, we replicate a bit of that
		# functionality, hoping it won't change on us.
		mat = re.search(r"(.*)-([ABCD])$", srcName)
		f_stem, comp_id = mat.groups()
		phot_col = 1+(ord(comp_id)-65)*2

		data = []
		with open(f_stem+".txt") as f:
			for ln in f:
				parts = ln.split()
				data.append((float(parts[0]), float(parts[phot_col])))
		data.sort()

		return self.get2DPlot(data)


if __name__=="__main__":
	api.procmain(PreviewMaker, "mlcolour/q", "import")
