import io

import matplotlib
# matplotlib.use now done by DaCHS itself.
matplotlib.use("Agg")
from matplotlib import pyplot

from gavo.web import formrender


class MainPage(formrender.FormRenderer):
	name = "custom"
	def _formatOutput(self, res, request):
		table = [(r["epoch"], r["flux"])
			for r in res.getPrimaryTable().rows]
		table.sort()

		fig = pyplot.figure()
		ax = fig.add_subplot(111)
		ax.semilogy([r[0] for r in table], [r[1] for r in table])
		ax.set_title("Measurements from %s"%self.queryMeta.ctxArgs["stationId"])
		ax.set_xlabel("JD")
		ax.set_ylabel("Flux [W/m^2]")

		rendered = io.BytesIO()
		pyplot.savefig(rendered, format="png")
		pyplot.close()

		request.setHeader("content-type", "image/png")
		request.write(rendered.getvalue())
		request.finish()
