Package TEES :: Package Utils :: Package InteractionXML :: Module IDUtils
[hide private]

Source Code for Module TEES.Utils.InteractionXML.IDUtils

 1  import sys 
 2   
3 -def getNextFreeId(elements):
4 highest = -1 5 for element in elements: 6 id = element.get("id") 7 assert id.find(".") != -1, id 8 lastPart = id.rsplit(".",1)[-1] 9 assert len(lastPart) > 1, id 10 number = int(lastPart[1:]) 11 if number > highest: 12 highest = number 13 if len(elements) - 1 > highest: 14 highest = len(elements) - 1 15 return highest + 1
16
17 -def getIdNumberType(idNumber):
18 if idNumber[0] == "d": 19 return "document" 20 elif idNumber[0] == "s": 21 return "sentence" 22 elif idNumber[0] == "i": 23 return "interaction" 24 elif idNumber[0] == "p": 25 return "pair" 26 elif idNumber[0] == "e": 27 return "entity" 28 elif idNumber[0] == "a": 29 return "path" 30 else: 31 sys.exit("Unknown type")
32
33 -def splitInteractionId(id):
34 dict = {} 35 splits = id.split(".") 36 dict["corpus"] = splits[0] 37 for i in splits[1:]: 38 dict[getIdNumberType(i)] = int(i[1:]) 39 return dict
40
41 -def buildInteractionId(id):
42 idString = id["corpus"] 43 if id.has_key("document"): 44 idString += ".d" + str(id["document"]) 45 if id.has_key("sentence"): 46 idString += ".s" + str(id["sentence"]) 47 48 if id.has_key("entity"): 49 idString += ".e" + str(id["e"]) 50 if id.has_key("interaction"): 51 idString += ".i" + str(id["interaction"]) 52 if id.has_key("pair"): 53 idString += ".p" + str(id["pair"]) 54 if id.has_key("path"): 55 idString += ".a" + str(id["path"]) 56 return idString
57
58 -def sortInteractionIds(id1, id2):
59 splits1 = id1.split(".") 60 splits2 = id2.split(".") 61 # start from split 1 since token 0 is the name of the dataset 62 for i in range(1,len(splits1)): 63 # each level's index starts with a letter (s for sentence etc.) 64 number1 = int(splits1[i][1:]) 65 number2 = int(splits2[i][1:]) 66 67 if number1 > number2: 68 return 1 69 elif number1 < number2: 70 return -1 71 return 0 # last number1 == number 2
72