query.py (2247B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\sofDnaLibrary\query.py 2 from __future__ import print_function 3 from sofDnaLibrary.data import GetTypes 4 from sofDnaLibrary.dataLookup import GetSkinnedDnaForDnaQuery, GetDefaultDnaStringsForDnaQuery 5 import time 6 queryResultCache = {} 7 8 def GenerateDnaString(hull, faction, race, dnaAddition = ''): 9 dna = '%s:%s:%s' % (hull, faction, race) 10 if dnaAddition != '': 11 dna += ':%s' % dnaAddition 12 return dna 13 14 15 def GetSkinnedDnaStringsMatchingQuery(hullQuery = '.*', factionQuery = '.*', raceQuery = '.*'): 16 graphicIdsToDnaStrings = GetSkinnedDnaForDnaQuery(hullQuery, factionQuery, raceQuery) 17 dnaStrings = [] 18 for graphicID, dnaList in graphicIdsToDnaStrings.iteritems(): 19 dnaStrings.extend(dnaList) 20 21 return list(set(dnaStrings)) 22 23 24 def GetDefaultDnaStringsMatchingQuery(hullQuery = '.*', factionQuery = '.*', raceQuery = '.*'): 25 return GetDefaultDnaStringsForDnaQuery(hullQuery, factionQuery, raceQuery).values() 26 27 28 def GetDnaStringsMatchingQuery(hullQuery = '.*', factionQuery = '.*', raceQuery = '.*'): 29 dnaString = GenerateDnaString(hullQuery, factionQuery, raceQuery) 30 print("Getting dna strings that match '%s'" % dnaString) 31 skinnedDna = GetSkinnedDnaStringsMatchingQuery(hullQuery, factionQuery, raceQuery) 32 defaultDna = GetDefaultDnaStringsMatchingQuery(hullQuery, factionQuery, raceQuery) 33 dnaStrings = skinnedDna 34 dnaStrings.extend(defaultDna) 35 return dnaStrings 36 37 38 def GetDefaultDnaStringsWithTypesMatchingQuery(hullQuery = '.*', factionQuery = '.*', raceQuery = '.*'): 39 dnaString = GenerateDnaString(hullQuery, factionQuery, raceQuery) 40 print("Getting dna strings that match '%s' and are linked to types" % dnaString) 41 defaultDnaGraphicID = GetDefaultDnaStringsForDnaQuery(hullQuery, factionQuery, raceQuery) 42 dnaStrings = set() 43 for typeID, typeData in GetTypes().iteritems(): 44 if typeData.graphicID in defaultDnaGraphicID: 45 dnaStrings.add(defaultDnaGraphicID[typeData.graphicID]) 46 47 return list(dnaStrings) 48 49 50 if __name__ == '__main__': 51 start = time.time() 52 dnaResult = GetDnaStringsMatchingQuery(hullQuery='asd1_t1', raceQuery='amarr') 53 print(dnaResult)