def __compileFilterExpr(self, classes): """Returns the regular expression object to use for filtering""" # Merge asset hints from all classes and remove duplicates hints = set() for classObj in classes: hints.update(classObj.getMetaData(getPermutation()).assets) # Compile filter expressions matcher = "^%s$" % "|".join(["(%s)" % fnmatch.translate(hint) for hint in hints]) debug("Compiled asset matcher: %s" % matcher) return re.compile(matcher)
def __init__(self, resolver): # Keep classes/permutation reference # Classes is set(classObj, ...) self.__resolver = resolver self.__permutation = getPermutation() classes = self.__resolver.getIncludedClasses() # Build class name dict self.__names = dict([(classObj.getId(), classObj) for classObj in classes]) # Initialize fields self.__loadDeps = {} self.__circularDeps = {} self.__sortedClasses = []
def __init__(self): # Keep permutation reference self.__permutation = getPermutation() # Required classes by the user self.__required = [] # Hard excluded classes (used for filtering previously included classes etc.) self.__excluded = [] # Included classes after dependency calculation self.__included = [] # Collecting all available classes self.__classes = {} for project in session.getProjects(): self.__classes.update(project.getClasses())
def storeCompressed(classes, fileName, bootCode=""): """ Combines the compressed result of the stored class list - classes: List of sorted classes to compress - fileName: Filename to write result to - bootCode: Code to execute once all the classes are loaded """ info("Merging compressed output of %s classes...", len(classes)) indent() result = [] try: # FIXME translation = None for classObj in classes: #debug("Adding class %s", classObj.id) #indent() result.append(classObj.getCompressed(getPermutation(), translation, jsOptimization, jsFormatting)) #outdent() except ClassError as error: raise JasyError("Error during class compression! %s" % error) outdent() assetData = assetManager.export(classes) if assetData: assetCode = 'core.io.Asset.addData(%s);' % assetData result.append(packCode(assetCode)) if bootCode: wrappedBootCode = "(function(){%s})();" % bootCode result.append(packCode(wrappedBootCode)) writeFile(fileName, "".join(result))