def decompress(): caches2 = [ ('mayaCmdsListAll', True), ('mayaApiMelBridge',False), ('mayaApi',True) ] num = 3 s = time.time() for i in range(num): for cache, useVersion in caches2: data = mayautils.loadCache(cache, useVersion=useVersion, compressed=False) print "compress=0, docstrings=1:", time.time()-s s1 = time.time() for i in range(num): for cache, useVersion in caches: data = mayautils.loadCache(cache, useVersion=useVersion, compressed=False) print "compress=0, docstrings=0:", time.time()-s1 s1 = time.time() for i in range(num): for cache, useVersion in caches2: data = mayautils.loadCache(cache, useVersion=useVersion, compressed=True) print "compress=1, docstrings=1:", time.time()-s1 s1 = time.time() for i in range(num): for cache, useVersion in caches: data = mayautils.loadCache(cache, useVersion=useVersion, compressed=True) print "compress=1, docstrings=0:", time.time()-s1
def mergedTest(): s1 = time.time() for cache, useVersion in caches: mayautils.loadCache(cache, useVersion=useVersion) print time.time()-s1 s2 = time.time() mayautils.loadCache('mayaAll') print time.time() - s2
def upgradeCmdCaches(): import pymel.internal.cmdcache as cmdcache data = list(mayautils.loadCache('mayaCmdsList',compressed=False)) cmdlist = data[0] nodeHierarchy = data[1] cmdDocList = {} examples = {} succ = fail = 0 for cmdName, cmdInfo in cmdlist.iteritems(): flags = cmdcache.getCallbackFlags(cmdInfo) if flags: cmdlist[cmdName]['callbackFlags'] = flags try: examples[cmdName] = cmdInfo.pop('example') except KeyError: pass newCmdInfo = {} if 'description' in cmdInfo: newCmdInfo['description'] = cmdInfo.pop('description') newFlagInfo = {} if 'flags' in cmdInfo: for flag, flagInfo in cmdInfo['flags'].iteritems(): newFlagInfo[flag] = { 'docstring' : flagInfo.pop('docstring') } newCmdInfo['flags'] = newFlagInfo if newCmdInfo: cmdDocList[cmdName] = newCmdInfo if 'shortFlags' in cmdInfo: d = {} #print cmdName for flag, flagInfo in cmdInfo['shortFlags'].iteritems(): if isinstance(flagInfo, dict): d[flag] = flagInfo['longname'] elif isinstance(flagInfo, basestring): d[flag] = flagInfo else: raise TypeError cmdInfo['shortFlags'] = d hierarchy = [ (x.key, tuple( [y.key for y in x.parents()]), tuple( [y.key for y in x.childs()] ) ) \ for x in nodeHierarchy.preorder() ] data[0] = cmdlist data[1] = hierarchy mayautils.writeCache( tuple(data), 'mayaCmdsList', 'the list of Maya commands',compressed=True ) mayautils.writeCache( cmdDocList, 'mayaCmdsDocs', 'the Maya command documentation',compressed=True ) mayautils.writeCache( examples, 'mayaCmdsExamples', 'the list of Maya command examples',compressed=True )
def pprintCache(cache, compressed, outputDir): useVersion = dict(caches).get(cache,True) data = mayautils.loadCache(cache, useVersion=useVersion, compressed=compressed) fname = os.path.realpath(os.path.join('', cache+ ('_zip.txt' if compressed else '_bin.txt') ) ) print "writing to", fname f = open(fname, 'w') pprint.pprint( data, f) f.close()
def addCallbackFlags(): data = list(mayautils.loadCache('mayaCmdsList',compressed=True)) cmdlist = data[0] succ = 0 for cmdName, cmdInfo in cmdlist.iteritems(): flags = factories.getCallbackFlags(cmdInfo) if flags: cmdlist[cmdName]['callbackFlags'] = flags succ += 1 data[0] = cmdlist mayautils.writeCache( tuple(data), 'mayaCmdsList', 'the list of Maya commands',compressed=True )
def separateApiDocs(): data = list(mayautils.loadCache('mayaApi',compressed=True)) apiClassInfo = data[7] newApiDocs = {} for mfn, mfnInfo in apiClassInfo.iteritems(): #print mfn, type(mfnInfo) if isinstance(mfnInfo, dict): #print mfn newAllMethodsInfo = {} for method, methodInfoList in mfnInfo['methods'].iteritems(): newMethodInfoList = [] for i, methodInfo in enumerate(methodInfoList): newMethodInfo = {} if 'doc' in methodInfo: newMethodInfo['doc'] = methodInfo.pop('doc') newArgInfo = {} for arg, argInfo in methodInfo['argInfo'].iteritems(): if 'doc' in argInfo: newArgInfo[arg] = {'doc': argInfo.pop('doc')} if newArgInfo: newMethodInfo['argInfo'] = newArgInfo newMethodInfoList.append(newMethodInfo) if newMethodInfoList: newAllMethodsInfo[method] = newMethodInfoList if newAllMethodsInfo: newApiDocs[mfn] = {'methods': newAllMethodsInfo } else: pass #print mfn, type(mfnInfo) #pprint.pprint(newApiDocs['MFnTransform']) data[7] = apiClassInfo mayautils.writeCache( tuple(data), 'mayaApi', compressed=True ) mayautils.writeCache( newApiDocs, 'mayaApiDocs',compressed=True )
def compress(cache, useVersion=True): useVersion = dict(caches).get(cache,useVersion) data = mayautils.loadCache(cache, useVersion=useVersion, compressed=False) mayautils.writeCache(data, cache, useVersion=useVersion, compressed=True)
def mergeAll(): data = [] for cache, useVersion in caches: data.append( mayautils.loadCache(cache, useVersion=useVersion)) mayautils.writeCache( tuple(data), 'mayaAll' )