return [] elif case == 3: try: tmp = float(args[i]) except: return [] elif case == 4: output = ['and', 'or'] if not (args[i] in output): return [] # increment index if case == 4: case = 1 else: case += 1 # suggest if case == 1: output = ObservableType.get_cutlist2(self.main.mode) return self.finalize_complete(text, output) elif case == 2: output = ['<=', '<', '>', '>=', '=', '!='] return self.finalize_complete(text, output) elif case == 3: return [] elif case == 4: output = ['and', 'or', '['] return self.finalize_complete(text, output) return []
def complete(self, text, args, begidx, endidx): # cut ( part ... ) > = 100 and ... [ ] # 0 1 2 3 # Getting back arguments nargs = len(args) if not text: nargs += 1 # Safe : impossible case if nargs <= 1: return [] # first agument elif nargs == 2: output = ['('] output.extend(ObservableType.get_cutlist1(self.main.mode)) return self.finalize_complete(text, output) elif nargs > 2: if args[1] != '(' and not (args[1] in ObservableType.get_cutlist1( self.main.mode)): return [] # counting number of () and [] nbracket1 = 0 nbracket2 = 0 endArguments = -1 for i in range(len(args)): if args[i] == "(": nbracket1 += 1 if args[i] == ")": nbracket1 -= 1 if nbracket1 == 0: endArguments = i if args[i] == "[": nbracket2 += 1 if args[i] == "]": nbracket2 -= 1 # User is writting particle combination if nbracket1 > 0 and endArguments == -1: # PTrank if nbracket2 > 0: return [] # List of multiparticles output = (self.main.multiparticles.GetNames()) if nargs >= 4: output.append(')') output.append('or') return self.finalize_complete(text, output) # determine position of conditions if args[1] != '(': endArguments = 1 else: endArguments += 1 # observable with particle if nargs == endArguments + 1: output = ObservableType.get_cutlist2(self.main.mode) return self.finalize_complete(text, output) # observable with particle if nargs == endArguments + 2: output = ['<=', '<', '>', '>=', '=', '!='] return self.finalize_complete(text, output) if nargs == endArguments + 3: return [] # observable with particle if nargs == endArguments + 4: output = ['and', 'or', '['] return self.finalize_complete(text, output) # options mode if nbracket1 == 0 and nbracket2 == 1: output = Cut.userShortcuts.keys() output.append("]") return self.finalize_complete(text, output) # loop over arguments case = 1 for i in range(endArguments, nargs - 1): if case == 1: output = ObservableType.get_cutlist2(self.main.mode) if not (args[i] in output): return [] elif case == 2: output = ['<=', '<', '>', '>=', '=', '!='] if not (args[i] in output): return [] elif case == 3: try: tmp = float(args[i]) except: return [] elif case == 4: output = ['and', 'or'] if not (args[i] in output): return [] # increment index if case == 4: case = 1 else: case += 1
def complete(self,text,args,begidx,endidx): # cut ( part ... ) > = 100 and ... [ ] # 0 1 2 3 # Getting back arguments nargs=len(args) if not text: nargs += 1 # Safe : impossible case if nargs<=1: return [] # first agument elif nargs==2: output=['('] output.extend(ObservableType.get_cutlist1(self.main.mode)) return self.finalize_complete(text,output) elif nargs>2: if args[1]!='(' and not (args[1] in ObservableType.get_cutlist1(self.main.mode)): return [] # counting number of () and [] nbracket1=0 nbracket2=0 endArguments=-1 for i in range(len(args)): if args[i]=="(": nbracket1+=1 if args[i]==")": nbracket1-=1 if nbracket1==0: endArguments=i if args[i]=="[": nbracket2+=1 if args[i]=="]": nbracket2-=1 # User is writting particle combination if nbracket1>0 and endArguments==-1: # PTrank if nbracket2>0: return [] # List of multiparticles output=(self.main.multiparticles.GetNames()) if nargs>=4: output.append(')') output.append('or') return self.finalize_complete(text,output) # determine position of conditions if args[1]!='(': endArguments=1 else: endArguments+=1 # observable with particle if nargs==endArguments+1: output=ObservableType.get_cutlist2(self.main.mode) return self.finalize_complete(text,output) # observable with particle if nargs==endArguments+2: output=['<=','<','>','>=','=','!='] return self.finalize_complete(text,output) if nargs==endArguments+3: return [] # observable with particle if nargs==endArguments+4: output=['and','or','['] return self.finalize_complete(text,output) # options mode if nbracket1==0 and nbracket2==1: output=Cut.userShortcuts.keys() output.append("]") return self.finalize_complete(text,output) # loop over arguments case=1 for i in range(endArguments,nargs-1): if case==1: output=ObservableType.get_cutlist2(self.main.mode) if not (args[i] in output): return [] elif case==2: output=['<=','<','>','>=','=','!='] if not (args[i] in output): return [] elif case==3: try: tmp=float(args[i]) except: return [] elif case==4: output=['and','or'] if not (args[i] in output): return [] # increment index if case==4: case=1 else: case+=1 # suggest if case==1: output=ObservableType.get_cutlist2(self.main.mode) return self.finalize_complete(text,output) elif case==2: output=['<=','<','>','>=','=','!='] return self.finalize_complete(text,output) elif case==3: return [] elif case==4: output=['and','or','['] return self.finalize_complete(text,output) return []