import gzip
import os
import re

from gavo import api
from gavo import utils
from gavo.helpers import anet
from gavo.helpers import processing


class Calibrator(api.AnetHeaderProcessor):

	sp_indices = ["/data/gavo/inputs/maidanak/customindex/custom.idx",
		"/data/gavo/inputs/maidanak/customindex/custom1.idx",
		"/data/gavo/inputs/maidanak/customindex/custom2.idx",]
	sp_endob = 20
	sexControl = ""

	def _isProcessed(self, srcName):
		return "A_2_0" in self.getPrimaryHeader(srcName)

	def _getHeader(self, srcName):
		# nuke RA and DEC left by silly MIDAS
		hdr = api.AnetHeaderProcessor._getHeader(self, srcName)
		if hdr is not None:
			del hdr["RA"]
			del hdr["DEC"]
			del hdr["MIDASFTP"]
			return hdr

	def classify(self, srcName):
		if self._isProcessed(srcName):
			return "solved"
		return "raw"

	def historyFilter(self, value):
		return not ("Created by" in value
			or "more details" in value
			or "Subversion" in value
			or "svn+ssh" in value
			or "2007)" in value)

	def getPrimaryHeader(self, srcName):
		f = gzip.open(srcName)
		hdr = utils.readPrimaryHeaderQuick(f)
		f.close()
		return hdr


if __name__=="__main__":
	processing.procmain(Calibrator, "maidanak/res/rawframes", "content")
