Example #1
0
            return elements[0][0]

        extensions = {("testns", "child"): return_child}

        transform = self.etree.XSLT(tree, extensions)
        for i in range(10):
            transform(root)

    @onlylib("lxe")
    def bench_xslt_document(self, root):
        transform = self.etree.XSLT(
            self.etree.XML("""\
<xsl:stylesheet version="1.0"
   xmlns:l="test"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <l:data>TEST</l:data>
  <xsl:template match="/">
    <l:result>
      <xsl:for-each select="*/*">
        <l:test><xsl:copy-of select="document('')//l:data/text()"/></l:test>
      </xsl:for-each>
    </l:result>
  </xsl:template>
</xsl:stylesheet>
"""))
        transform(root)


if __name__ == "__main__":
    benchbase.main(XSLTBenchMark)
Example #2
0
        extensions = {("test", "child"): return_child}
        xpath = self.etree.XPath("t:child(.)",
                                 namespaces={"t": "test"},
                                 extensions=extensions)
        for child in children:
            xpath(child)

    @nochange
    @onlylib("lxe")
    @children
    def bench_xpath_extensions(self, children):
        def return_child(_, elements):
            if elements:
                return elements[0][0]
            else:
                return ()

        self.etree.FunctionNamespace("testns")["t"] = return_child

        try:
            xpath = self.etree.XPath("test:t(.)",
                                     namespaces={"test": "testns"})
            for child in children:
                xpath(child)
        finally:
            del self.etree.FunctionNamespace("testns")["t"]


if __name__ == "__main__":
    benchbase.main(XPathBenchMark)
        transform = self.etree.XSLT(tree, extensions)
        for i in range(10):
            transform(root)

    @onlylib("lxe")
    def bench_xslt_document(self, root):
        transform = self.etree.XSLT(
            self.etree.XML(
                """\
<xsl:stylesheet version="1.0"
   xmlns:l="test"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <l:data>TEST</l:data>
  <xsl:template match="/">
    <l:result>
      <xsl:for-each select="*/*">
        <l:test><xsl:copy-of select="document('')//l:data/text()"/></l:test>
      </xsl:for-each>
    </l:result>
  </xsl:template>
</xsl:stylesheet>
"""
            )
        )
        transform(root)


if __name__ == "__main__":
    benchbase.main(XSLTBenchMark)
Example #4
0
            else:
                return ()

        extensions = {("test", "child"): return_child}
        xpath = self.etree.XPath("t:child(.)", namespaces={"test": "t"}, extensions=extensions)
        for child in children:
            xpath(child)

    @nochange
    @onlylib("lxe")
    @children
    def bench_xpath_extensions(self, children):
        def return_child(_, elements):
            if elements:
                return elements[0][0]
            else:
                return ()

        self.etree.FunctionNamespace("testns")["t"] = return_child

        try:
            xpath = self.etree.XPath("test:t(.)", namespaces={"test": "testns"})
            for child in children:
                xpath(child)
        finally:
            del self.etree.FunctionNamespace("testns")["t"]


if __name__ == "__main__":
    benchbase.main(XPathBenchMark)
Example #5
0
    def bench_iter_single(self, root):
        next(root.iter(self.SEARCH_TAG))

    _bench_xpath_two_xpath = None

    @nochange
    @onlylib('lxe')
    def bench_xpath_two(self, root):
        xpath = self._bench_xpath_two_xpath
        if xpath is None:
            ns, tag = self.SEARCH_TAG[1:].split('}')
            xpath = self._bench_xpath_two_xpath = self.etree.XPath(
                './/p:%s[position() < 3]' % tag, namespaces={'p': ns})
        xpath(root)

    @nochange
    def bench_iterfind_two(self, root):
        it = root.iterfind(".//%s" % self.SEARCH_TAG)
        next(it)
        next(it)

    @nochange
    def bench_iter_two(self, root):
        it = root.iter(self.SEARCH_TAG)
        next(it)
        next(it)


if __name__ == '__main__':
    benchbase.main(BenchMark)
Example #6
0
    @nochange
    @with_text(text=True)
    def bench_type_inference(self, root):
        "1 2 4"
        el = root.aaaaa
        for i in self.repeat1000:
            el.getchildren()

    @nochange
    @with_text(text=True)
    def bench_type_inference_annotated(self, root):
        "1 2 4"
        el = root.aaaaa
        self.objectify.annotate(el)
        for i in self.repeat1000:
            el.getchildren()

    @nochange
    @children
    def bench_elementmaker(self, children):
        E = self.objectify.E
        for child in children:
            root = E.this("test", E.will(
                E.do("nothing"),
                E.special,
            ))


if __name__ == '__main__':
    benchbase.main(BenchMark)