def get_filter(self): table = self.tableChoice.Value column = self.colChoice.Value comparator = self.comparatorChoice.GetValue() value = self.valueField.GetValue() if self._get_col_type() in [int, float, long]: # Don't quote numbers return sql.Filter(sql.Column(table, column), comparator, '%s'%(value)) if comparator.upper() in ['IS', 'IS NOT'] and value.upper() == 'NULL': # Don't quote comparisons to NULL return sql.Filter(sql.Column(table, column), comparator, '%s'%(value)) return sql.Filter(sql.Column(table, column), comparator, '"%s"'%(value))
def as_filter(self): if len(self._gate_list) == 0: import sqltools return sqltools.Filter() fltr = self._gate_list[0].as_filter() for g in self._gate_list[1:]: fltr.and_filter(g.as_filter()) return fltr
def update_info(self): gate = self.gatelist.GetStringSelection() self.deletebtn.Enable(gate in p.gates) if gate: self.gateinfo.Value = str(p.gates[gate]) p._filters[gate] = sqltools.Filter(p.gates[gate].as_filter()) else: self.gateinfo.Value = '' print gate, p._filters[gate]
def on_select(self, evt): if self.Value == GateComboBox.MANAGE_GATES: dlg = GateManager(self.Parent) dlg.ShowModal() dlg.Destroy() self.Select(0) elif self.Value == GateComboBox.NEW_GATE: dlg = GateDialog(self.Parent) if dlg.ShowModal() == wx.ID_OK: self.Items = self.Items[:-1] + [dlg.Value] + self.Items[-1:] self.SetStringSelection(dlg.Value) p.gates[dlg.Value] = sqltools.Gate() p._filters[dlg.Value] = sqltools.Filter() else: self.Select(0) dlg.Destroy() self.notify(self.get_gatename_or_none())
## self.reset() ## logging.error('Can not load old filter') ## self.Refresh() if __name__ == "__main__": import sys import logging logging.basicConfig(level=logging.DEBUG) app = wx.PySimpleApp() # Load a properties file if passed in args if len(sys.argv) > 1: propsFile = sys.argv[1] p.LoadFile(propsFile) else: p.LoadFile('/Users/afraser/cpa_example/example.properties') p._filters['test'] = sql.Filter( ('per_image', 'gene'), 'REGEXP', 'MAP*', 'OR', sql.Column('per_image', 'gene'), 'IS', 'NULL') p._filters_ordered += ['test'] p._filters['test2'] = sql.Filter(('per_image', 'well'), '!=', 'A01') p._filters_ordered += ['test2'] cff = ColumnFilterDialog(None, tables=[p.image_table]) if cff.ShowModal() == wx.OK: print cff.get_filter() cff.Destroy() app.MainLoop()
def update_info(self): gate = self.get_gatename_or_none() if gate: p._filters[gate] = sqltools.Filter(p.gates[gate].as_filter()) print gate, p._filters[gate]