Ejemplo n.º 1
0
    def getCompressed(self, profile):
        """Returns the compressed CSS code of this item."""

        field = "style:compressed[%s]-%s" % (self.id, profile.getId())
        mtime = self.getModificationTime(profile)

        compressed = self.project.getCache().read(field, mtime)

        if compressed is None:

            Console.info("Compressing tree %s...", Console.colorize(self.id, "bold"))

            # Start with the merged tree (includes resolved)
            tree = self.getMergedTree(profile)

            # Reduce tree
            Engine.reduceTree(tree, profile)

            # Compress tree
            compressed = Engine.compressTree(tree, profile.getCompressionLevel(), profile.getFormattingLevel())

            # Store in cache
            self.project.getCache().store(field, compressed, mtime)

        return compressed
Ejemplo n.º 2
0
    def process(self, code):
        callerName = inspect.stack()[1][3][5:]

        permutation = Permutation.Permutation({"jasy.engine": "gecko", "jasy.debug": True})

        tree = Engine.getTree(code, callerName)
        tree = Engine.permutateTree(tree, permutation)
        tree = Engine.reduceTree(tree)

        return Engine.compressTree(tree)
Ejemplo n.º 3
0
    def process(self, code):
        callerName = inspect.stack()[1][3][5:]

        permutation = Permutation.Permutation({
            "jasy.engine": "gecko",
            "jasy.debug": True
        })

        tree = Engine.getTree(code, callerName)
        tree = Engine.permutateTree(tree, permutation)
        tree = Engine.reduceTree(tree)

        return Engine.compressTree(tree)
Ejemplo n.º 4
0
    def __getPermutatedTree(self, permutation=None):
        """
        Returns a permutated tree: a copy of the original tree
        where conditions based on the given permutation are resolved.
        """

        if permutation is None:
            return self.__getTree()

        permutation = self.filterPermutation(permutation)
        field = "style:permutated[%s]-%s" % (self.id, permutation)
        tree = self.project.getCache().read(field, self.mtime)

        if not tree:
            tree = copy.deepcopy(self.__getTree())

            Console.info("Permutating stylesheet %s...", Console.colorize(self.id, "bold"))
            Console.indent()
            Engine.permutateTree(tree, permutation)
            Console.outdent()

            self.project.getCache().store(field, tree, self.mtime, True)

        return tree
Ejemplo n.º 5
0
    def __getTree(self):
        """Returns the abstract syntax tree of the stylesheet."""

        field = "style:tree[%s]" % self.id
        tree = self.project.getCache().read(field, self.mtime)

        if not tree:
            Console.info("Parsing stylesheet %s...", Console.colorize(self.id, "bold"))

            Console.indent()
            tree = Engine.getTree(self.getText(), self.id)
            Console.outdent()

            self.project.getCache().store(field, tree, self.mtime, True)

        return tree
Ejemplo n.º 6
0
    def process(self, code):
        callerName = inspect.stack()[1][3][5:]

        tree = Engine.getTree(code, callerName)
        return Engine.compressTree(tree)
Ejemplo n.º 7
0
    def process(self, code):
        callerName = inspect.stack()[1][3][5:]

        tree = Engine.getTree(code, callerName)
        tree = Engine.processTree(tree)
        return Engine.compressTree(tree)
Ejemplo n.º 8
0
logging.basicConfig(level=logging.DEBUG, format="%(message)s")

import jasy

import jasy.style.Engine as Engine
import jasy.style.output.Formatting as Formatting


for fname in sys.argv[2:]:
    text = open(fname, encoding="utf-8").read()
    
    print(">>> File: %s" % fname)
    
    if job == "optimize":    
        tree = Engine.getTree(text, fname)
        tree = Engine.processTree(tree)
        print(Engine.compressTree(tree))

    elif job == "compress":    
        formatting = Formatting.Formatting("blocks", "whitespace", "statements", "indent")
        tree = Engine.getTree(text, fname)
        tree = Engine.processTree(tree)
        print(Engine.compressTree(tree, formatting))
        
    elif job == "tree":
        print(Engine.getTree(text, fname).toXml())

    elif job == "tokens":
        Engine.printTokens(text, fname)
Ejemplo n.º 9
0
logging.basicConfig(level=logging.DEBUG, format="%(message)s")

import jasy

import jasy.style.Engine as Engine
import jasy.style.output.Formatting as Formatting


for fname in sys.argv[2:]:
    text = open(fname, encoding="utf-8").read()

    print(">>> File: %s" % fname, file=sys.stderr)

    if job == "optimize":
        tree = Engine.getTree(text, fname)
        tree = Engine.reduceTree(tree)
        print(Engine.compressTree(tree))

    elif job == "compress":
        formatting = Formatting.Formatting("blocks", "whitespace", "statements", "indent")
        tree = Engine.getTree(text, fname)
        tree = Engine.reduceTree(tree)
        print(Engine.compressTree(tree, formatting))

    elif job == "reduced":
        formatting = Formatting.Formatting("blocks", "whitespace", "statements", "indent")
        tree = Engine.getTree(text, fname)
        tree = Engine.reduceTree(tree)
        print(tree.toXml())