def addEntry(self,commandStrings, command): #check commandStrings if commandStrings == None or type(commandStrings) != list or len(commandStrings) < 0: raise triesException("need string token to find a value, no token found") #search a similar commandString tries_tmp = self.levelOneTries for i in range(0,len(commandStrings)): tmp = tries_tmp.search(commandStrings[i]) if tmp != None and tmp.value != None: if isinstance(tmp.value,tries) : tries_tmp = tmp.value continue #elif isinstance(tmp,commandShell) : #on ne sait pas encore ce qu'on va stocker dans le multitries # raise triesException("a similar command chain already exists") else: existingPath = "" for k in range(0,i): existingPath += commandStrings[k]+" " raise triesException("can't insert a command here, another command already exists <"+existingPath+">"+" vs <"+str(commandStrings)+">") break #insert the new command string for j in range(i,len(commandStrings)-1): tries_tmp = tries_tmp.insert(commandStrings[j],tries("")).value else: j = len(commandStrings)-2 tries_tmp.insert(commandStrings[j+1],command)
def addEntry(self, commandStrings, command): #check commandStrings if commandStrings == None or type(commandStrings) != list or len( commandStrings) < 0: raise triesException( "need string token to find a value, no token found") #search a similar commandString tries_tmp = self.levelOneTries for i in range(0, len(commandStrings)): tmp = tries_tmp.search(commandStrings[i]) if tmp != None and tmp.value != None: if isinstance(tmp.value, tries): tries_tmp = tmp.value continue #elif isinstance(tmp,commandShell) : #on ne sait pas encore ce qu'on va stocker dans le multitries # raise triesException("a similar command chain already exists") else: existingPath = "" for k in range(0, i): existingPath += commandStrings[k] + " " raise triesException( "can't insert a command here, another command already exists <" + existingPath + ">" + " vs <" + str(commandStrings) + ">") break #insert the new command string for j in range(i, len(commandStrings) - 1): tries_tmp = tries_tmp.insert(commandStrings[j], tries("")).value else: j = len(commandStrings) - 2 tries_tmp.insert(commandStrings[j + 1], command)
def __init__(self): self.levelOneTries = tries("")