20 def __init__(self, name, desc, filters, output_calc, chained, db_id=None):
38 self.output_calc.reset()
60 while filtered_seg
and i < len(self.
filters):
61 filtered_seg = self.
filters[i].filter_seg(filtered_seg, filter_utters)
66 self.segs.append(filtered_seg)
67 self.output_calc.add_seg(filtered_seg)
76 while filtered_head
and i < len(self.
filters):
77 filtered_head = self.
filters[i].filter_linked_utter(filtered_head)
82 self.chains.append(filtered_head)
83 self.output_calc.add_chain(filtered_head)
96 last_ids = db.insert(
'outputs',
97 'name desc calc_class_name calc_args chained'.split(),
100 self.output_calc.__class__.__name__,
101 str(self.output_calc.get_db_args()),
104 self.
db_id = last_ids[0]
107 for cur_filter
in self.
filters:
108 if cur_filter.db_id ==
None:
109 cur_filter.db_insert(db)
112 db.insert(
'outputs_to_seg_filters',
113 'output_id seg_filter_id'.split(),
114 [[self.
db_id, cur_filter.db_id]])
129 for cur_filter
in self.
filters:
130 if cur_filter.db_id !=
None:
131 db.delete(
'seg_filters',
142 csv_writer.writerow([
'------------------'])
143 csv_writer.writerow([
'Name:', self.
name])
144 csv_writer.writerow([
'Description:', self.
desc])
145 csv_writer.writerow([
'Link Segments:', str(bool(self.
chained))])
146 csv_writer.writerow([
'Filters:'])
150 for cur_filter
in self.
filters:
151 csv_writer.writerow([
'', cur_filter.get_filter_type_str(), cur_filter.get_filter_desc_str()])
153 csv_writer.writerow([
'',
'None'])
156 csv_writer.writerow([
''])
157 self.output_calc.write_csv_rows(self.
chained, csv_writer)
158 csv_writer.writerow([
'------------------'])
164 DBObject.db_select(db, ids)
167 rows = db.select(
'outputs',
168 'id name desc calc_class_name calc_args chained'.split(),
169 DBObject._build_where_cond_from_ids(ids),
177 calc_class = eval(cur_row[3])
178 calc_args = eval(cur_row[4])
179 output_calc = calc_class(*calc_args)
182 filters = SegFilter.db_select_by_ref(
184 'outputs_to_seg_filters',
191 output =
Output(cur_row[1],
199 output_list.append(output)
215 rows = db.select(ref_table, [id_col],
'%s=?' % (ref_col), [ref_val])
217 ids = map(
lambda cur_row: cur_row[0], rows)
221 outputs = Output.db_select(db, ids)