#!/usr/bin/python
import sys
from glue import lal
from glue import segments
from glue.ligolw import lsctables
from glue.ligolw import ligolw
from glue.ligolw import utils
from glue.ligolw.utils import segments as ligolw_segments
from glue.ligolw.utils import process as ligolw_process

def to_segmentlistdict(l):
	s = segments.segmentlistdict()
	#FIXME this may not work
	key = l.description[:2]
	s[key] = segments.segmentlist([l.segment])
	return s

segs = segments.segmentlistdict()

for seg in [to_segmentlistdict(lal.CacheEntry(l)) for l in open(sys.argv[1]).readlines()]:
	segs+= seg

xmldoc = ligolw.Document()
xmldoc.appendChild(ligolw.LIGO_LW())
process = ligolw_process.register_to_xmldoc(xmldoc, sys.argv[0], {})
ligolw_process.set_process_end_time(process)

lwseglists = ligolw_segments.LigolwSegments(xmldoc)
lwseglists.insert_from_segmentlistdict(segs, "datasegments")
lwseglists.optimize()
lwseglists.finalize(process)

utils.write_filename(xmldoc, sys.argv[2], verbose = True, gz = sys.argv[2].endswith(".gz"))
