def analyze(folder, file): resultsMetrics = defaultdict(list) # erasing for the next file outputFile = open(folder + "/" + CONSTS.PUPPETEER_OUT_FILE, 'a+') print("folder: ", folder) print("file: ", file) puppetFileCount = FileOperations.countPuppetFiles(file) # print("puppetFileCount: ", puppetFileCount) resultsMetrics[file].append(puppetFileCount) outputFile.write(CONSTS.PUPPET_FILE_COUNT + str(puppetFileCount) + "\n") Utilities.myPrint(CONSTS.PUPPET_FILE_COUNT + str(puppetFileCount)) metricsResults = SizeMetrics.collectSizeMetrics(file, outputFile) for i in metricsResults: resultsMetrics[file].append(i) # puppetFileCount, totalClasses,totalDefines,totalFiles,totalPackages,totalServices,totalExecs,totalLOC # print("RESULTS: ", resultsMetrics) CONSTS.smellsResults = {} # erasing for the next file SmellDectector.detectSmells(file, outputFile) # print("CONSTS.smellsResults: ", CONSTS.smellsResults) # print("\n\n") outputFile.close() return resultsMetrics, CONSTS.smellsResults
def detectMissingModules(folder, outputFile): #print("%s" % (inspect.stack()[0][3])) classNamesSet = set() includeClassSet = set() for abspath, dirs, files in os.walk(folder): for file in files: #print(file) if file.endswith(".pp") and not os.path.islink(os.path.join(abspath, file)): #print(file) fileObj = SourceModel.SM_File.SM_File(os.path.join(abspath, file)) classNames, fileIncludes = detectMissingClassesByInclude(fileObj, outputFile) #print("Classes: %s" % ','.join(n for n in classNames)) classNamesSet = classNamesSet.union(classNames) #print("Union with %s: %s" % (','.join(n for n in classNames), ','.join(n for n in classNamesSet))) includeClassSet = includeClassSet.union(fileIncludes) #print("%s: Classes: %s" % (inspect.stack()[0][3], ','.join(n for n in classNamesSet))) #print("%s: Class includes: %s" % (inspect.stack()[0][3], ','.join(i for i in includeClassSet))) missingDependencySet = includeClassSet.difference(classNamesSet) #print(includeClassSet) #print(classNamesSet) #print(missingDependencySet) Utilities.myPrint("Missing dependency set: %s" % ','.join(c for c in missingDependencySet)) #for md in missingDependencySet: #Utilities.reportSmell(outputFile, folder, CONSTS.SMELL_MIS_DEP, CONSTS.FILE_RES) with open('missDependencies.puppeteer.txt', 'a+') as f: for md in missingDependencySet: f.write("%s\n" % md) Utilities.reportSmell(outputFile, folder, CONSTS.SMELL_MIS_DEP, CONSTS.FILE_RES)
def getServiceResourceList(self): compiledRE = re.compile(SMCONSTS.SERVICE_REGEX) serviceResourceList = [] for match in (compiledRE.findall(self.fileText)): serviceResourceText = self.extractResourceText(match) Utilities.myPrint("Extracted service declaration: " + serviceResourceText) serviceResourceObj = SourceModel.SM_ServiceResource.SM_ServiceResource(serviceResourceText) serviceResourceList.append(serviceResourceObj) return serviceResourceList
def getPackageResourceList(self): compiledRE = re.compile(SMCONSTS.PACKAGE_REGEX) packageResourceList = [] for match in (compiledRE.findall(self.fileText)): packageResourceText = self.extractResourceText(match) Utilities.myPrint("Extracted package declaration: " + packageResourceText) packageResourceObj = SourceModel.SM_PackageResource.SM_PackageResource(packageResourceText) packageResourceList.append(packageResourceObj) return packageResourceList
def getDefineDeclarationList(self): compiledRE = re.compile(SMCONSTS.DEFINE_REGEX) defineList = [] for match in compiledRE.findall(self.fileText): defineText, s, e = self.extractElementText(match) Utilities.myPrint("Extracted define declaration: " + defineText) defineObj = SourceModel.SM_Define.SM_Define(defineText) defineList.append(defineObj) return defineList
def getNodeDeclarations(self): compiledRE = re.compile(SMCONSTS.NODE_REGEX) nodeResourceList = [] for match in (compiledRE.findall(self.fileText)): nodeResourceText = self.extractResourceText(match) Utilities.myPrint("Extracted node declaration: " + nodeResourceText) nodeResourceObj = SourceModel.SM_Node.SM_Node(nodeResourceText) nodeResourceList.append(nodeResourceObj) return nodeResourceList
def getFileResourceList(self): compiledRE = re.compile(SMCONSTS.FILE_REGEX) fileResourceList = [] for match in (compiledRE.findall(self.fileText)): fileResourceText = self.extractResourceText(match) Utilities.myPrint("Extracted file declaration: " + fileResourceText) fileResourceObj = SourceModel.SM_FileResource.SM_FileResource(fileResourceText) fileResourceList.append(fileResourceObj) return fileResourceList
def getFileResourceList(self): compiledRE = re.compile(SMCONSTS.FILE_REGEX) fileResourceList = [] for match in (compiledRE.findall(self.fileText)): fileResourceText = self.extractResourceText(match) Utilities.myPrint("Extracted file declaration: " + fileResourceText) fileResourceObj = SourceModel.SM_FileResource.SM_FileResource( fileResourceText) fileResourceList.append(fileResourceObj) return fileResourceList
def getPackageResourceList(self): compiledRE = re.compile(SMCONSTS.PACKAGE_REGEX) packageResourceList = [] for match in (compiledRE.findall(self.fileText)): packageResourceText = self.extractResourceText(match) Utilities.myPrint("Extracted package declaration: " + packageResourceText) packageResourceObj = SourceModel.SM_PackageResource.SM_PackageResource( packageResourceText) packageResourceList.append(packageResourceObj) return packageResourceList
def getServiceResourceList(self): compiledRE = re.compile(SMCONSTS.SERVICE_REGEX) serviceResourceList = [] for match in (compiledRE.findall(self.fileText)): serviceResourceText = self.extractResourceText(match) Utilities.myPrint("Extracted service declaration: " + serviceResourceText) serviceResourceObj = SourceModel.SM_ServiceResource.SM_ServiceResource( serviceResourceText) serviceResourceList.append(serviceResourceObj) return serviceResourceList
def getClassDeclarationList(self): compiledRE = re.compile(SMCONSTS.CLASS_REGEX) compiledClassNameRE = re.compile(SMCONSTS.CLASS_NAME_REGEX) classList = [] for match in compiledRE.findall(self.fileText): className = compiledClassNameRE.findall(match)[0] #print("Class name: %s" % (className)) classText = self.extractResourceText(match) Utilities.myPrint("Extracted class declaration: " + classText) classObj = SourceModel.SM_Class.SM_Class(classText, className) classList.append(classObj) return classList
def getOnlyIncludeClassesCount(self): cnt_of_includes = 0 compiledIncludeRE = re.compile(SMCONSTS.ONLY_INCLUDE_REGEX) declareClassList = [] for match in (compiledIncludeRE.findall(self.fileText)): cnt_of_includes = cnt_of_includes + 1 #print match declareClassText = match cleanInclude = re.sub(r'^\s*include \[?(.+)\]?\s*$', r'\1', declareClassText) #print "Clean include: ", cleanInclude class_name = r'(?:Class\[)?\'?\:{0,2}([\w\d\:\-_\$]+)\'?\]?' classRE = re.compile(class_name) if ',' in cleanInclude: classes = cleanInclude.split(',') for c in classes: for m in classRE.findall(c): # Find a variable value in text if m.startswith('$'): #print("Variable: %s" % m) varRE = r'(?:^|\n)\s*\$[\w\d\-_]+\s?=\s?\'?\"?([\w\d\-_]+)\'?\"?\n' compiledVarRE = re.compile(varRE) for v in (compiledVarRE.findall(self.fileText)): #print(v) declareClassName = v #Utilities.myPrint("Extracted include class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource( declareClassText, declareClassName) declareClassList.append(declareResourceObj) break #print("Variable %s value) #print "if block: Extracted class name:", m else: declareClassName = m Utilities.myPrint( "Extracted include class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource( declareClassText, declareClassName) declareClassList.append(declareResourceObj) else: for c in classRE.findall(cleanInclude): #print "else block: Extracted class name: ", c declareClassName = c #print("%s" % includeClassText) #Utilities.myPrint("Extracted include class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource( declareClassText, declareClassName) declareClassList.append(declareResourceObj) #print "Declre class list contents in the end:", declareClassList #print "Total count of includes: ", cnt_of_includes return cnt_of_includes
def analyze(folder, repoName): outputFile = open(folder + "/" + CONSTS.PUPPETEER_OUT_FILE, 'w') puppetFileCount = FileOperations.countPuppetFiles(folder) outputFile.write(CONSTS.PUPPET_FILE_COUNT + str(puppetFileCount) + "\n") Utilities.myPrint(CONSTS.PUPPET_FILE_COUNT + str(puppetFileCount)) SizeMetrics.collectSizeMetrics(folder, outputFile) SmellDectector.detectSmells(folder, outputFile) outputFile.close() return
def getOnlyRequireCount(self): cnt_of_requires = 0 compiledIncludeRE = re.compile(SMCONSTS.ONLY_REQUIRE_REGEX) declareClassList = [] for match in (compiledIncludeRE.findall(self.fileText)): cnt_of_requires = cnt_of_requires + 1 #print match declareClassText = match cleanInclude = re.sub(r'^\s*require \[?(.+)\]?\s*$', r'\1', declareClassText) class_name = r'(?:Class\[)?\'?\:{0,2}([\w\d\:\-_\$]+)\'?\]?' classRE = re.compile(class_name) if ',' in cleanInclude: classes = cleanInclude.split(',') for c in classes: for m in classRE.findall(c): # Find a variable value in text if m.startswith('$'): #print("Variable: %s" % m) varRE = r'(?:^|\n)\s*\$[\w\d\-_]+\s?=\s?\'?\"?([\w\d\-_]+)\'?\"?\n' compiledVarRE = re.compile(varRE) for v in (compiledVarRE.findall(self.fileText)): #print(v) declareClassName = v declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource( declareClassText, declareClassName) declareClassList.append(declareResourceObj) break else: declareClassName = m Utilities.myPrint( "Extracted include class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource( declareClassText, declareClassName) declareClassList.append(declareResourceObj) else: for c in classRE.findall(cleanInclude): declareClassName = c declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource( declareClassText, declareClassName) declareClassList.append(declareResourceObj) return cnt_of_requires
def getPhysicalResourceDeclarationCount(self): pkg_count = 0 compiledRE = re.compile(r'\'.+\'\W*:|\".+\":') tempVar = compiledRE.findall(self.resourceText) Utilities.myPrint("Found package declarations: " + str(tempVar)) pkg_count = len(tempVar) # Find list type package declarations compiledRE = re.compile(r'{\[((\".+?\"),?)+\]:\s*}') result = compiledRE.finditer(self.resourceText) all_pkgs = "" for m in result: all_pkgs = m.group(1) pkgs = all_pkgs.split(',') for pkg in pkgs: Utilities.myPrint("Found package declarations: " + str(pkg)) pkg_count += len(pkgs) return pkg_count
def getIncludeClasses(self): compiledIncludeRE = re.compile(SMCONSTS.DECLARE_INCLUDE_REGEX) compiledResourceRE = re.compile(SMCONSTS.DECLARE_RESOURCE_REGEX) declareClassList = [] declareClassName = "" for match in (compiledIncludeRE.findall(self.fileText)): #print(match) declareClassText = match cleanInclude = re.sub(r'^\s*include \[?(.+)\]?\s*$', r'\1', declareClassText) #print("Clean include: %s" % cleanInclude) class_name = r'(?:Class\[)?\'?\:{0,2}([\w\d\:\-_\$]+)\'?\]?' classRE = re.compile(class_name) if ',' in cleanInclude: classes = cleanInclude.split(',') for c in classes: for m in classRE.findall(c): # Find a variable value in text if m.startswith('$'): #print("Variable: %s" % m) varRE = r'(?:^|\n)\s*\$[\w\d\-_]+\s?=\s?\'?\"?([\w\d\-_]+)\'?\"?\n' compiledVarRE = re.compile(varRE) for v in (compiledVarRE.findall(self.fileText)): #print(v) declareClassName = v Utilities.myPrint("Extracted include class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource(declareClassText, declareClassName) declareClassList.append(declareResourceObj) break #print("Variable %s value) #print("Extracted class name: %s" % m) else: declareClassName = m Utilities.myPrint("Extracted include class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource(declareClassText, declareClassName) declareClassList.append(declareResourceObj) else: for c in classRE.findall(cleanInclude): #print("Extracted class name: %s" % c) declareClassName = c #print("%s" % includeClassText) Utilities.myPrint("Extracted include class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource(declareClassText, declareClassName) declareClassList.append(declareResourceObj) for match in (compiledResourceRE.findall(self.fileText)): #print(match) declareClassText = match declareClassName = declareClassText #print("%s" % includeClassText) Utilities.myPrint("Extracted resource class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource(declareClassText, declareClassName) declareClassList.append(declareResourceObj) return declareClassList
def collectSizeMetrics(folder, outputFile): totalClasses = 0 totalDefines = 0 totalFiles = 0 totalPackages = 0 totalServices = 0 totalExecs = 0 totalLOC = 0 for root, dirs, files in os.walk(folder): for file in files: if file.endswith(".pp") and not os.path.islink( os.path.join(root, file)): Utilities.myPrint("Reading file: " + os.path.join(root, file)) fileObj = SourceModel.SM_File.SM_File(os.path.join(root, file)) totalClasses += fileObj.getNoOfClassDeclarations() totalDefines += fileObj.getNoOfDefineDeclarations() totalFiles += fileObj.getNoOfFileDeclarations() totalPackages += fileObj.getNoOfPackageDeclarations() totalServices += fileObj.getNoOfServiceDeclarations() totalExecs += fileObj.getNoOfExecDeclarations() totalLOC += fileObj.getLinesOfCode() print("1,TotalClasses," + str(totalClasses) + "\n") print("1,TotalDefines," + str(totalDefines) + "\n") print("1,TotalFiles," + str(totalFiles) + "\n") print("1,TotalPackages," + str(totalPackages) + "\n") print("1,TotalServices," + str(totalServices) + "\n") print("1,TotalExecs," + str(totalExecs) + "\n") print("1,TotalLOC," + str(totalLOC) + "\n")
def collectSizeMetrics(folder, outputFile): totalClasses = 0 totalDefines = 0 totalFiles = 0 totalPackages = 0 totalServices = 0 totalExecs = 0 totalLOC = 0 for root, dirs, files in os.walk(folder): for file in files: if file.endswith(".pp") and not os.path.islink(os.path.join(root, file)): Utilities.myPrint("Reading file: " + os.path.join(root, file)) fileObj = SourceModel.SM_File.SM_File(os.path.join(root, file)) totalClasses += fileObj.getNoOfClassDeclarations() totalDefines += fileObj.getNoOfDefineDeclarations() totalFiles += fileObj.getNoOfFileDeclarations() totalPackages += fileObj.getNoOfPackageDeclarations() totalServices += fileObj.getNoOfServiceDeclarations() totalExecs += fileObj.getNoOfExecDeclarations() totalLOC += fileObj.getLinesOfCode() outputFile.write(CONSTS.TOTAL_CLASS_DECLS + str(totalClasses) + "\n") Utilities.myPrint(CONSTS.TOTAL_CLASS_DECLS + str(totalClasses)) outputFile.write(CONSTS.TOTAL_DEFINE_DECLS + str(totalDefines) + "\n") Utilities.myPrint(CONSTS.TOTAL_DEFINE_DECLS + str(totalDefines)) outputFile.write(CONSTS.TOTAL_FILE_RES_DECLS + str(totalFiles) + "\n") Utilities.myPrint(CONSTS.TOTAL_FILE_RES_DECLS + str(totalFiles)) outputFile.write(CONSTS.TOTAL_PACKAGE_RES_DECLS + str(totalPackages) + "\n") Utilities.myPrint(CONSTS.TOTAL_PACKAGE_RES_DECLS + str(totalPackages)) outputFile.write(CONSTS.TOTAL_SERVICE_RES_DECLS + str(totalServices) + "\n") Utilities.myPrint(CONSTS.TOTAL_SERVICE_RES_DECLS + str(totalServices)) outputFile.write(CONSTS.TOTAL_EXEC_DECLS + str(totalExecs) + "\n") Utilities.myPrint(CONSTS.TOTAL_EXEC_DECLS + str(totalExecs)) outputFile.write(CONSTS.TOTAL_LOC + str(totalLOC) + "\n") Utilities.myPrint(CONSTS.TOTAL_LOC + str(totalLOC))
def collectSizeMetrics(folder, outputFile): totalClasses = 0 totalDefines = 0 totalFiles = 0 totalPackages = 0 totalServices = 0 totalExecs = 0 totalLOC = 0 for root, dirs, files in os.walk(folder): for file in files: if file.endswith(".pp") and not os.path.islink( os.path.join(root, file)): Utilities.myPrint("Reading file: " + os.path.join(root, file)) fileObj = SourceModel.SM_File.SM_File(os.path.join(root, file)) totalClasses += fileObj.getNoOfClassDeclarations() totalDefines += fileObj.getNoOfDefineDeclarations() totalFiles += fileObj.getNoOfFileDeclarations() totalPackages += fileObj.getNoOfPackageDeclarations() totalServices += fileObj.getNoOfServiceDeclarations() totalExecs += fileObj.getNoOfExecDeclarations() totalLOC += fileObj.getLinesOfCode() outputFile.write(CONSTS.TOTAL_CLASS_DECLS + str(totalClasses) + "\n") Utilities.myPrint(CONSTS.TOTAL_CLASS_DECLS + str(totalClasses)) outputFile.write(CONSTS.TOTAL_DEFINE_DECLS + str(totalDefines) + "\n") Utilities.myPrint(CONSTS.TOTAL_DEFINE_DECLS + str(totalDefines)) outputFile.write(CONSTS.TOTAL_FILE_RES_DECLS + str(totalFiles) + "\n") Utilities.myPrint(CONSTS.TOTAL_FILE_RES_DECLS + str(totalFiles)) outputFile.write(CONSTS.TOTAL_PACKAGE_RES_DECLS + str(totalPackages) + "\n") Utilities.myPrint(CONSTS.TOTAL_PACKAGE_RES_DECLS + str(totalPackages)) outputFile.write(CONSTS.TOTAL_SERVICE_RES_DECLS + str(totalServices) + "\n") Utilities.myPrint(CONSTS.TOTAL_SERVICE_RES_DECLS + str(totalServices)) outputFile.write(CONSTS.TOTAL_EXEC_DECLS + str(totalExecs) + "\n") Utilities.myPrint(CONSTS.TOTAL_EXEC_DECLS + str(totalExecs)) outputFile.write(CONSTS.TOTAL_LOC + str(totalLOC) + "\n") Utilities.myPrint(CONSTS.TOTAL_LOC + str(totalLOC))
def countEntityDeclaration(self, regEx, entityType): compiledRE = re.compile(regEx) Utilities.myPrint("Identified " + entityType + " declarations: " + str(compiledRE.findall(self.fileText)) + \ " Size: " + str(len(compiledRE.findall(self.fileText)))) return len(compiledRE.findall(self.fileText))
def getPhysicalResourceDeclarationCount(self): compiledRE = re.compile(r'\'.+\'\W*:|\".+\":') tempVar = compiledRE.findall(self.resourceText) Utilities.myPrint("Found file declarations: " + str(tempVar)) return len(tempVar)
def getIncludeClasses(self): compiledIncludeRE = re.compile(SMCONSTS.DECLARE_INCLUDE_REGEX) compiledResourceRE = re.compile(SMCONSTS.DECLARE_RESOURCE_REGEX) declareClassList = [] declareClassName = "" for match in (compiledIncludeRE.findall(self.fileText)): #print(match) declareClassText = match cleanInclude = re.sub(r'^\s*include \[?(.+)\]?\s*$', r'\1', declareClassText) #print("Clean include: %s" % cleanInclude) class_name = r'(?:Class\[)?\'?\:{0,2}([\w\d\:\-_\$]+)\'?\]?' classRE = re.compile(class_name) if ',' in cleanInclude: classes = cleanInclude.split(',') for c in classes: for m in classRE.findall(c): # Find a variable value in text if m.startswith('$'): #print("Variable: %s" % m) varRE = r'(?:^|\n)\s*\$[\w\d\-_]+\s?=\s?\'?\"?([\w\d\-_]+)\'?\"?\n' compiledVarRE = re.compile(varRE) for v in (compiledVarRE.findall(self.fileText)): #print(v) declareClassName = v Utilities.myPrint( "Extracted include class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource( declareClassText, declareClassName) declareClassList.append(declareResourceObj) break #print("Variable %s value) #print("Extracted class name: %s" % m) else: declareClassName = m Utilities.myPrint( "Extracted include class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource( declareClassText, declareClassName) declareClassList.append(declareResourceObj) else: for c in classRE.findall(cleanInclude): #print("Extracted class name: %s" % c) declareClassName = c #print("%s" % includeClassText) Utilities.myPrint("Extracted include class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource( declareClassText, declareClassName) declareClassList.append(declareResourceObj) for match in (compiledResourceRE.findall(self.fileText)): #print(match) declareClassText = match declareClassName = declareClassText #print("%s" % includeClassText) Utilities.myPrint("Extracted resource class declaration: " + declareClassText) declareResourceObj = SourceModel.SM_IncludeResource.SM_IncludeResource( declareClassText, declareClassName) declareClassList.append(declareResourceObj) return declareClassList
def collectSizeMetrics(file, outputFile): # print(">>> file SIZE METRICS: ", file) # print("\n\n") results = [] totalClasses = 0 totalDefines = 0 totalFiles = 0 totalPackages = 0 totalServices = 0 totalExecs = 0 totalLOC = 0 #for root, dirs, files in os.walk(folder): # for file in files: #if file.endswith(".pp") and not os.path.islink(os.path.join(root, file)): if file.endswith(".pp"): Utilities.myPrint("Reading file: " + file) #fileObj = SourceModel.SM_File.SM_File(os.path.join(root, file)) fileObj = SourceModel.SM_File.SM_File(file) totalClasses += fileObj.getNoOfClassDeclarations() # print("total classes: ", totalClasses) totalDefines += fileObj.getNoOfDefineDeclarations() # print("total defines: ", totalDefines) totalFiles += fileObj.getNoOfFileDeclarations() # print("total files: ", totalFiles) totalPackages += fileObj.getNoOfPackageDeclarations() # print("totalPackages: ", totalPackages) totalServices += fileObj.getNoOfServiceDeclarations() # print("totalServices: ", totalServices) totalExecs += fileObj.getNoOfExecDeclarations() # print("totalExecs: ", totalExecs) totalLOC += fileObj.getLinesOfCode() # print("totalLOC: ", totalLOC) results = [ totalClasses, totalDefines, totalFiles, totalPackages, totalServices, totalExecs, totalLOC ] outputFile.write(file + "\n") Utilities.myPrint(file) outputFile.write(CONSTS.TOTAL_CLASS_DECLS + str(totalClasses) + "\n") Utilities.myPrint(CONSTS.TOTAL_CLASS_DECLS + str(totalClasses)) outputFile.write(CONSTS.TOTAL_DEFINE_DECLS + str(totalDefines) + "\n") Utilities.myPrint(CONSTS.TOTAL_DEFINE_DECLS + str(totalDefines)) outputFile.write(CONSTS.TOTAL_FILE_RES_DECLS + str(totalFiles) + "\n") Utilities.myPrint(CONSTS.TOTAL_FILE_RES_DECLS + str(totalFiles)) outputFile.write(CONSTS.TOTAL_PACKAGE_RES_DECLS + str(totalPackages) + "\n") Utilities.myPrint(CONSTS.TOTAL_PACKAGE_RES_DECLS + str(totalPackages)) outputFile.write(CONSTS.TOTAL_SERVICE_RES_DECLS + str(totalServices) + "\n") Utilities.myPrint(CONSTS.TOTAL_SERVICE_RES_DECLS + str(totalServices)) outputFile.write(CONSTS.TOTAL_EXEC_DECLS + str(totalExecs) + "\n") Utilities.myPrint(CONSTS.TOTAL_EXEC_DECLS + str(totalExecs)) outputFile.write(CONSTS.TOTAL_LOC + str(totalLOC) + "\n") Utilities.myPrint(CONSTS.TOTAL_LOC + str(totalLOC)) outputFile.write("\n\n") Utilities.myPrint("\n\n") return results
def getPhysicalResourceDeclarationCount(self): compiledRE = re.compile(r'\'.+\'\W*:|\".+\":') tempVar = compiledRE.findall(self.resourceText) Utilities.myPrint("Found service declarations: " + str(tempVar)) return len(tempVar)