def getIncludes(includeCfg): # Splitting lists self._console.debug("Preparing include configuration...") includeWithDeps, includeNoDeps = textutil.splitPrefixedStrings( includeCfg) self._console.indent() if len(includeWithDeps) > 0 or len(includeNoDeps) > 0: # Configuration feedback self._console.debug( "Including %s items smart, %s items explicit" % (len(includeWithDeps), len(includeNoDeps))) if len(includeNoDeps) > 0: if self._job.get("config-warnings/include", True): self._console.warn( "Explicitly included classes may not work") # ?! # Resolve regexps self._console.debug("Expanding expressions...") try: includeWithDeps = textutil.expandGlobs( includeWithDeps, self._classesObj) includeNoDeps = textutil.expandGlobs( includeNoDeps, self._classesObj) except RuntimeError: self._console.error("Invalid include block: %s" % includeCfg) raise elif self._job.get("packages"): # Special part include handling self._console.info("Including part classes...") partsCfg = partsCfg = self._job.get("packages/parts", {}) includeWithDeps = [] for partId in partsCfg: includeWithDeps.extend(partsCfg[partId]) # Configuration feedback self._console.debug( "Including %s items smart, %s items explicit" % (len(includeWithDeps), len(includeNoDeps))) # Resolve regexps self._console.debug("Expanding expressions...") includeWithDeps = textutil.expandGlobs(includeWithDeps, self._classesObj) self._console.outdent() return includeWithDeps, includeNoDeps
def getIncludes(includeCfg): # Splitting lists self._console.debug("Preparing include configuration...") includeWithDeps, includeNoDeps = textutil.splitPrefixedStrings(includeCfg) self._console.indent() if len(includeWithDeps) > 0 or len(includeNoDeps) > 0: # Configuration feedback self._console.debug( "Including %s items smart, %s items explicit" % (len(includeWithDeps), len(includeNoDeps)) ) if len(includeNoDeps) > 0: if self._job.get("config-warnings/include", True): self._console.warn("Explicitly included classes may not work") # ?! # Resolve regexps self._console.debug("Expanding expressions...") try: includeWithDeps = textutil.expandGlobs(includeWithDeps, self._classesObj) includeNoDeps = textutil.expandGlobs(includeNoDeps, self._classesObj) except RuntimeError: self._console.error("Invalid include block: %s" % includeCfg) raise elif self._job.get("packages"): # Special part include handling self._console.info("Including part classes...") partsCfg = partsCfg = self._job.get("packages/parts", {}) includeWithDeps = [] for partId in partsCfg: includeWithDeps.extend(partsCfg[partId]) # Configuration feedback self._console.debug( "Including %s items smart, %s items explicit" % (len(includeWithDeps), len(includeNoDeps)) ) # Resolve regexps self._console.debug("Expanding expressions...") includeWithDeps = textutil.expandGlobs(includeWithDeps, self._classesObj) self._console.outdent() return includeWithDeps, includeNoDeps
def runLogUnusedClasses(jobconf, script): if not jobconf.get("log/classes-unused", False): return console = Context.console packages = script.packagesSorted() namespaces = jobconf.get("log/classes-unused", []) console.info("Find unused classes...") console.indent() usedClassesArr = {} allClassesArr = {} for namespace in namespaces: usedClassesArr[namespace] = [] allClassesArr[namespace] = [] # used classes of interest for packageId, package in enumerate(packages): for namespace in namespaces: packageClasses = textutil.expandGlobs( [namespace], [x.id for x in package.classes]) usedClassesArr[namespace].extend(packageClasses) # available classes of interest for namespace in namespaces: allClassesArr[namespace] = textutil.expandGlobs([namespace], script.classesAll) # check for namespace in namespaces: console.info("Checking namespace: %s" % namespace) console.indent() for cid in allClassesArr[namespace]: if cid not in usedClassesArr[namespace]: console.info("Unused class: %s" % cid) console.outdent() console.outdent() return
def runLogUnusedClasses(jobconf, script): if not jobconf.get("log/classes-unused", False): return console = Context.console packages = script.packagesSorted() namespaces = jobconf.get("log/classes-unused", []) console.info("Find unused classes..."); console.indent() usedClassesArr = {} allClassesArr = {} for namespace in namespaces: usedClassesArr[namespace] = [] allClassesArr[namespace] = [] # used classes of interest for packageId, package in enumerate(packages): for namespace in namespaces: packageClasses = textutil.expandGlobs([namespace], [x.id for x in package.classes]) usedClassesArr[namespace].extend(packageClasses) # available classes of interest for namespace in namespaces: allClassesArr[namespace] = textutil.expandGlobs([namespace], script.classesAll) # check for namespace in namespaces: console.info("Checking namespace: %s" % namespace); console.indent() for cid in allClassesArr[namespace]: if cid not in usedClassesArr[namespace]: console.info("Unused class: %s" % cid) console.outdent() console.outdent() return
def evalPackagesConfig(excludeWithDeps, classList, variants): # Reading configuration partsCfg = self._job.get("packages/parts", {}) # Expanding expressions self._console.debug("Expanding include expressions...") partIncludes = {} for partId in partsCfg: partIncludes[partId] = textutil.expandGlobs(partsCfg[partId]['include'], self._classesObj) # Computing packages #boot, partPackages, packageClasses = self._partBuilder.getPackages(partIncludes, excludeWithDeps, self._context, script) partPackages, _ = self._partBuilder.getPackages(partIncludes, excludeWithDeps, self._context, script) packageClasses = script.packagesSorted() #return boot, partPackages, packageClasses return script.boot, script.parts, packageClasses
def evalPackagesConfig(excludeWithDeps, classList, variants): # Reading configuration partsCfg = self._job.get("packages/parts", {}) # Expanding expressions self._console.debug("Expanding include expressions...") partIncludes = {} for partId in partsCfg: partIncludes[partId] = textutil.expandGlobs( partsCfg[partId]['include'], self._classesObj) # Computing packages #boot, partPackages, packageClasses = self._partBuilder.getPackages(partIncludes, excludeWithDeps, self._context, script) partPackages, _ = self._partBuilder.getPackages( partIncludes, excludeWithDeps, self._context, script) packageClasses = script.packagesSorted() #return boot, partPackages, packageClasses return script.boot, script.parts, packageClasses