def flattenNodeHier(): hierarchy = [ (x.key, tuple( [y.key for y in x.parents()]) ) for x in factories.nodeHierarchy.preorder() ] factories.nodeHierarchy = hierarchy mayautils.writeCache( (factories.cmdlist, factories.nodeHierarchy, factories.uiClassList, factories.nodeCommandList, factories.moduleCmds), 'mayaCmdsList', 'the list of Maya commands' )
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 separateExampleCache(): examples = {} succ = fail = 0 for cmdName, cmdInfo in factories.cmdlist.iteritems(): try: examples[cmdName] = cmdInfo.pop('example') succ += 1 except KeyError: fail += 1 pass print "succeeded", succ print "failed ", fail mayautils.writeCache( (factories.cmdlist, factories.nodeHierarchy, factories.uiClassList, factories.nodeCommandList, factories.moduleCmds), 'mayaCmdsList', 'the list of Maya commands', compressed=False ) mayautils.writeCache( examples, 'mayaCmdsExamples', 'the list of Maya command examples',compressed=False )
def reduceShortFlags(): succ = 0 for cmdName, cmdInfo in factories.cmdlist.iteritems(): 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 succ += 1 print "reduced", succ mayautils.writeCache( (factories.cmdlist, factories.nodeHierarchy, factories.uiClassList, factories.nodeCommandList, factories.moduleCmds), 'mayaCmdsList', 'the list of Maya commands' )
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 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' )