Пример #1
0
 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)
Пример #2
0
    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)
Пример #3
0
 def __init__(self):
     self.levelOneTries = tries("")
Пример #4
0
 def __init__(self):
     self.levelOneTries = tries("")