in aiops/RCRank/model/modules/QueryFormer/utils.py [0:0]
def encode_filters(self, filters=[], alias=None):
if len(filters) == 0:
return {'colId':[self.col2idx['NA']],
'opId': [self.op2idx['NA']]}
res = {'colId':[],'opId': []}
for filt in filters:
filt = ''.join(c for c in filt if c not in '()')
fs = re.split(' AND | OR ', filt)
for f in fs:
op = None
for k, v in self.idx2op.items():
if v in f:
op = v
if op is None:
op = 'NA'
col = f.split(' ')[0]
if alias is None:
column = col
else:
column = alias + '.' + col
if column not in self.col2idx:
self.col2idx[column] = len(self.col2idx)
self.idx2col[self.col2idx[column]] = column
res['colId'].append(self.col2idx[column])
res['opId'].append(self.op2idx[op])
return res