1   
 2   
 3   
 4   
 5   
 6   
 7   
 8   
 9   
10   
11   
12   
13   
14   
15   
16   
17   
18   
19   
20   
21   
22   
23   
24   
25  from glue.ligolw import table 
26  from glue.ligolw import lsctables 
27  from glue.ligolw import utils 
28  from glue.ligolw import ligolw 
29   
30   
31   
32   
33   
34   
35   
36   
37   
38 -class ExtractSimInspiralTableLIGOLWContentHandler(ligolw.PartialLIGOLWContentHandler): 
 39    """ 
40    LIGOLWContentHandler that will extract only the SimInspiralTable from a document. 
41    See glue.ligolw.LIGOLWContentHandler help for more info. 
42    """ 
43 -  def __init__(self,document): 
 44      def filterfunc(name,attrs): 
45        return name==ligolw.Table.tagName and attrs.has_key('Name') and table.Table.TableName(attrs.get('Name'))==lsctables.SimInspiralTable.tableName 
 46      ligolw.PartialLIGOLWContentHandler.__init__(self,document,filterfunc) 
 47   
48   
50    """ 
51    Read the simInspiral tables from a list of files 
52   
53    @param fileList: list of input files 
54    @param verbose: print ligolw_add progress 
55    """ 
56    simInspiralTriggers = None 
57   
58    lsctables.use_in(ExtractSimInspiralTableLIGOLWContentHandler) 
59    for thisFile in fileList: 
60      doc = utils.load_filename(thisFile, gz=(thisFile or "stdin").endswith(".gz"), verbose=verbose, contenthandler=ExtractSimInspiralTableLIGOLWContentHandler) 
61       
62      try: simInspiralTable = lsctables.SimInspiralTable.get_table(doc) 
63      except: simInspiralTable = None 
64      if simInspiralTriggers and simInspiralTable:  
65        simInspiralTriggers.extend(simInspiralTable) 
66      elif not simInspiralTriggers: 
67        simInspiralTriggers = simInspiralTable 
68   
69    return simInspiralTriggers 
 70