def get_sql_query(self,csv,q): sf=self.slot_fill(csv, q) sub_clause=''' WHERE {} = "{}" ''' schema=self.data_process.get_schema_for_csv(csv) sf_columns=[i[0] for i in sf] ex_kwd=self.kword_extractor(q) unknown_slot,flag=self.unknown_slot_extractor(schema,sf_columns,ex_kwd) clause=Clause() question="" if flag: for col in schema["columns"]: if "priority" in col.keys() and flag: question=clause.adapt(q,inttype=True,priority=True) else: question=clause.adapt(q,inttype=True) else: question=clause.adapt(q) if unknown_slot is None: unknown_slot='*' question=question.format(unknown_slot,schema["name"].lower()) valmap = {} def get_key(val): return f"val_{len(valmap)}" print(sf) for i,s in enumerate(sf): col,val=s[0],s[2] typ = column_types.get(s[1]) if i>0: sub_clause='''AND {} = "{}" ''' if issubclass(typ, column_types.Number): val=self.cond_map(val) if issubclass(typ, column_types.String): k = get_key(val) valmap[k] = val else: k = val if any(i in conditions.keys() for i in k): subq=sub_clause.format(col, k) subq=subq.replace('=','') subq=subq.replace('"','') else: subq=sub_clause.format(col, k) question+=subq return question, valmap