def loadTreeFromFile(self, treefilename): self.currentFile = self._treefileToSourceFile(treefilename) p = GzipPickler() try: self.tree = p.load(treefilename).prunedTree.children[0] except: self.tree = p.load(treefilename).children[0]
def embedAllFunctions(self): if self._embeddingExists(): print 'Global Embedding already exists, skipping.' return codeTreeWalker = FunctionPythonASTIterator(self.projectRoot) for picklFilename in codeTreeWalker: funcDir = '/'.join(picklFilename.split('/')[:-1]) rootNode = GzipPickler().load(picklFilename) self.filterAndAddAST(funcDir, rootNode)
def dumpTree(self, node): csvRow = self.functionRow functionName = getFunctionNameForFunction(node) pos = csvRow[1] outputDir = self.currentFile outputDir += '/' + functionName + '_' + pos.replace(':', '_') if not os.path.exists(outputDir): os.mkdir(outputDir) outputFilename = outputDir + '/func_ast.csv' f = file(outputFilename, 'w') f.write(node.toCSV()) f.close() parent = node.parent node.parent = None outputFilename = outputDir + '/func_ast.pickl' GzipPickler().dump(node, outputFilename) node.parent = parent
def writeTreeToDisk(self, tree, location, symbol): filename = self._getFilenameForTree(location, symbol) dirName = '/'.join(filename.split('/')[:-1]) if not os.path.exists(dirName): os.mkdir(dirName) GzipPickler().dump(tree, filename)
def _loadTreeFromDisk(self, location, symbol): filename = self._getFilenameForTree(location, symbol) return GzipPickler().load(filename)
def saveResults(self, filename): from sourceutils.misc.GzipPickler import GzipPickler p = GzipPickler() p.dump(self.rootNode, filename)
def _getASTForLocation(self, location): return GzipPickler().load(location + '/func_ast.pickl')