""" ******************************************************* Owner: Ashutosh Jha For: APPCAIR BITS Pilani Goa Campus, Reflexis Systems Function Name: addChosenRule This function takes as input a node of class Tree() and a list containing the column name, value of one row and another string describing whether the column is of type str or not. ******************************************************* """ def addChosenRule(node,inp_cond_list): if(inp_cond_list[2] == "str"): print("Do you want substring comparison?(y or n)") inp = input() if((inp=="y") or (inp=="Y")): print("The value of the string column selected by you and it's index are as follows:") print("String:",end=" ") for i in range(0,len(inp_cond_list[1])): print(inp_cond_list[1][i],end=" ") print("\nindex: ",end=" ") for i in range(0,len(inp_cond_list[1])): print(i,end=" ") print("\n") print("Insert the starting and ending index of the substring " + "that you want to compare.(starting from 0)") print("Starting index:",end=" ") s_ind=int(input()) print("Ending index:",end=" ") e_ind = int(input()) if((s_ind <= e_ind) and (s_ind >= 0) and (e_ind >= 0)): str_to_comp = inp_cond_list[1][s_ind:e_ind+1] node.inp_cond = "cur_row['" + inp_cond_list[0] + "'][" + str(s_ind) + ":" + str(e_ind+1) + "]=='" + str_to_comp + "'" else: print("Invalid Indexes: starting",s_ind,"and ending:",e_ind) node.inp_cond = None else: node.inp_cond = "cur_row['" + inp_cond_list[0] + "']==" + "'" + inp_cond_list[1] + "'" #Only euality that is == operator is supported for rules involving strings else: op_dict = {1:"==",2:"<=",3:">="} print("Kindly choose the operator by indicating" + " the serial number from the following:") for key, value in op_dict.items(): print(key, ' : ', value) op = 0 while ( op not in [1,2,3]): op = int(input()) if op in [1,2,3]: node.inp_cond = "cur_row['" + inp_cond_list[0] + "']" + op_dict[op] + inp_cond_list[1] break else: print("Fail: Wrong input for operator. Enter Again.") continue node.data =""" if(eval(node.inp_cond) == True): node.belongs = True print("Row No.",z,"satisfies condition in node",node.name) else: print("Row No.",z,"Does not satisfy condition in node",node.name) node.belongs = False"""