def find_version_xml(segfile,seg,verbose): """ Find out the version of the flag for the given seg. """ from glue.ligolw import ligolw from glue.ligolw import table from glue.ligolw import utils def ContentHandler(xmldoc): return ligolw.PartialLIGOLWContentHandler(xmldoc, lambda name, attrs:\ (name == ligolw.Table.tagName) and\ (table.StripTableName(attrs["Name"]) in ["segment_definer","segment_summary"])) try: table.use_in(ligolw.PartialLIGOLWContentHandler) except AttributeError: # old glue did not allow .use_in(). # FIXME: remove when we can require the latest version of glue pass xmldoc = utils.load_url(segfile, verbose = verbose,gz = segfile.endswith(".gz"), contenthandler = ContentHandler) for n, table_elem in enumerate(xmldoc.getElements(lambda e:\ (e.tagName == ligolw.Table.tagName))): if n == 0: definer = {} for row in table_elem: if row.name != "RESULT": definer[str(row.segment_def_id).split(":")[-1]] = row.version if n == 1: for row in table_elem: if seg[0] >= row.start_time and seg[1] <= row.end_time: if str(row.segment_def_id).split(":")[-1] in definer.keys(): xmldoc.unlink() return definer[str(row.segment_def_id).split(":")[-1]]
def read_segfile_xml(segfile,verbose): """ Read segment file in ligolw xml type and return in glue.segments.segmentlist format. """ from glue.ligolw import ligolw from glue.ligolw import table from glue.ligolw import utils def ContentHandler(xmldoc): return ligolw.PartialLIGOLWContentHandler(xmldoc, lambda name, attrs:\ (name == ligolw.Table.tagName) and\ (table.StripTableName(attrs["Name"]) in ["segment"])) try: table.use_in(ligolw.PartialLIGOLWContentHandler) except AttributeError: # old glue did not allow .use_in(). # FIXME: remove when we can require the latest version of glue pass xmldoc = utils.load_url(segfile, verbose = verbose,gz = segfile.endswith(".gz"), contenthandler = ContentHandler) seg_list = segmentlist() for table_elem in xmldoc.getElements(lambda e:\ (e.tagName == ligolw.Table.tagName)): for row in table_elem: seg_list.append(segment(row.start_time, row.end_time)) xmldoc.unlink() return seg_list
def find_version_xml(segfile,seg,verbose): """ Find out the version of the flag for the given seg. """ from glue.ligolw import ligolw from glue.ligolw import table from glue.ligolw import utils def ContentHandler(xmldoc): return ligolw.PartialLIGOLWContentHandler(xmldoc, lambda name, attrs:\ (name == ligolw.Table.tagName) and\ (table.Table.TableName(attrs["Name"]) in ["segment_definer","segment_summary"])) try: table.use_in(ligolw.PartialLIGOLWContentHandler) except AttributeError: # old glue did not allow .use_in(). # FIXME: remove when we can require the latest version of glue pass xmldoc = utils.load_url(segfile, verbose = verbose,gz = segfile.endswith(".gz"), contenthandler = ContentHandler) for n, table_elem in enumerate(xmldoc.getElements(lambda e:\ (e.tagName == ligolw.Table.tagName))): if n == 0: definer = {} for row in table_elem: if row.name != "RESULT": definer[str(row.segment_def_id).split(":")[-1]] = row.version if n == 1: for row in table_elem: if seg[0] >= row.start_time and seg[1] <= row.end_time: if str(row.segment_def_id).split(":")[-1] in definer.keys(): xmldoc.unlink() return definer[str(row.segment_def_id).split(":")[-1]]
def read_segfile_xml(segfile,verbose): """ Read segment file in ligolw xml type and return in glue.segments.segmentlist format. """ from glue.ligolw import ligolw from glue.ligolw import table from glue.ligolw import utils def ContentHandler(xmldoc): return ligolw.PartialLIGOLWContentHandler(xmldoc, lambda name, attrs:\ (name == ligolw.Table.tagName) and\ (table.Table.TableName(attrs["Name"]) in ["segment"])) try: table.use_in(ligolw.PartialLIGOLWContentHandler) except AttributeError: # old glue did not allow .use_in(). # FIXME: remove when we can require the latest version of glue pass xmldoc = utils.load_url(segfile, verbose = verbose,gz = segfile.endswith(".gz"), contenthandler = ContentHandler) seg_list = segmentlist() for table_elem in xmldoc.getElements(lambda e:\ (e.tagName == ligolw.Table.tagName)): for row in table_elem: seg_list.append(segment(row.start_time, row.end_time)) xmldoc.unlink() return seg_list
def use_in(ContentHandler): """ Modify ContentHandler, a sub-class of glue.ligolw.LIGOLWContentHandler, to cause it to use the tables from this module as well as from lsctable.py when parsing XML documents. Example: >>> from glue.ligolw import ligolw >>> def MyContentHandler(ligolw.LIGOLWContentHandler): ... pass ... >>> from laldetchar.idq import idq_tables >>> idq_tables.use_in(MyContentHandler) """ ContentHandler = table.use_in(ContentHandler) def startTable(self, parent, attrs, __orig_startTable=ContentHandler.startTable): name = table.StripTableName(attrs[u"Name"]) if name in TableByName: return TableByName[name](attrs) return __orig_startTable(self, parent, attrs) ContentHandler.startTable = startTable return ContentHandler
def use_in(ContentHandler): """ Modify ContentHandler, a sub-class of glue.ligolw.LIGOLWContentHandler, to cause it to use the tables from this module as well as from lsctable.py when parsing XML documents. Example: >>> from glue.ligolw import ligolw >>> def MyContentHandler(ligolw.LIGOLWContentHandler): ... pass ... >>> from laldetchar.idq import idq_tables >>> idq_tables.use_in(MyContentHandler) """ ContentHandler = table.use_in(ContentHandler) def startTable(self, parent, attrs, __orig_startTable = ContentHandler.startTable): name = attrs[u"Name"] if name in TableByName: return TableByName[name](attrs) return __orig_startTable(self, parent, attrs) ContentHandler.startTable = startTable return ContentHandler
return False #}}} ##################################################### ########## Obtain & Save new sample points ########## ##################################################### ######## Reading old points file ############ old_points_name = options.old_bank if not os.path.exists(old_points_name): old_points_table = [] else: indoc = ligolw_utils.load_filename(old_points_name, contenthandler=table.use_in( ligolw.LIGOLWContentHandler), verbose=options.verbose) try: old_points_table = lsctables.SimInspiralTable.get_table(indoc) except: raise IOError("Please provide the old bank as a SimInspiralTable") ######## Creating the new points file ############ #{{{ if options.iid is not None: iid = options.iid new_file_name = options.output_prefix + "%06d.xml" % iid else: idx = 0 name1 = options.output_prefix + "%06d.xml" % idx idx += 1