Blame benchmark/bench_xslt.py
|
Packit Service |
b74dd5 |
from itertools import *
|
|
Packit Service |
b74dd5 |
|
|
Packit Service |
b74dd5 |
import benchbase
|
|
Packit Service |
b74dd5 |
from benchbase import onlylib
|
|
Packit Service |
b74dd5 |
|
|
Packit Service |
b74dd5 |
############################################################
|
|
Packit Service |
b74dd5 |
# Benchmarks
|
|
Packit Service |
b74dd5 |
############################################################
|
|
Packit Service |
b74dd5 |
|
|
Packit Service |
b74dd5 |
class XSLTBenchMark(benchbase.TreeBenchMark):
|
|
Packit Service |
b74dd5 |
@onlylib('lxe')
|
|
Packit Service |
b74dd5 |
def bench_xslt_extensions_old(self, root):
|
|
Packit Service |
b74dd5 |
tree = self.etree.XML("""\
|
|
Packit Service |
b74dd5 |
|
|
Packit Service |
b74dd5 |
xmlns:l="test"
|
|
Packit Service |
b74dd5 |
xmlns:testns="testns"
|
|
Packit Service |
b74dd5 |
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
Packit Service |
b74dd5 |
<l:data>TEST</l:data>
|
|
Packit Service |
b74dd5 |
<xsl:template match="/">
|
|
Packit Service |
b74dd5 |
<l:result>
|
|
Packit Service |
b74dd5 |
<xsl:for-each select="*/*">
|
|
Packit Service |
b74dd5 |
<xsl:copy-of select="testns:child(.)"/>
|
|
Packit Service |
b74dd5 |
</xsl:for-each>
|
|
Packit Service |
b74dd5 |
</l:result>
|
|
Packit Service |
b74dd5 |
</xsl:template>
|
|
Packit Service |
b74dd5 |
</xsl:stylesheet>
|
|
Packit Service |
b74dd5 |
""")
|
|
Packit Service |
b74dd5 |
def return_child(_, elements):
|
|
Packit Service |
b74dd5 |
return elements[0][0]
|
|
Packit Service |
b74dd5 |
|
|
Packit Service |
b74dd5 |
extensions = {('testns', 'child') : return_child}
|
|
Packit Service |
b74dd5 |
|
|
Packit Service |
b74dd5 |
transform = self.etree.XSLT(tree, extensions)
|
|
Packit Service |
b74dd5 |
for i in range(10):
|
|
Packit Service |
b74dd5 |
transform(root)
|
|
Packit Service |
b74dd5 |
|
|
Packit Service |
b74dd5 |
@onlylib('lxe')
|
|
Packit Service |
b74dd5 |
def bench_xslt_document(self, root):
|
|
Packit Service |
b74dd5 |
transform = self.etree.XSLT(self.etree.XML("""\
|
|
Packit Service |
b74dd5 |
|
|
Packit Service |
b74dd5 |
xmlns:l="test"
|
|
Packit Service |
b74dd5 |
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
Packit Service |
b74dd5 |
<l:data>TEST</l:data>
|
|
Packit Service |
b74dd5 |
<xsl:template match="/">
|
|
Packit Service |
b74dd5 |
<l:result>
|
|
Packit Service |
b74dd5 |
<xsl:for-each select="*/*">
|
|
Packit Service |
b74dd5 |
<l:test><xsl:copy-of select="document('')//l:data/text()"/></l:test>
|
|
Packit Service |
b74dd5 |
</xsl:for-each>
|
|
Packit Service |
b74dd5 |
</l:result>
|
|
Packit Service |
b74dd5 |
</xsl:template>
|
|
Packit Service |
b74dd5 |
</xsl:stylesheet>
|
|
Packit Service |
b74dd5 |
"""))
|
|
Packit Service |
b74dd5 |
transform(root)
|
|
Packit Service |
b74dd5 |
|
|
Packit Service |
b74dd5 |
if __name__ == '__main__':
|
|
Packit Service |
b74dd5 |
benchbase.main(XSLTBenchMark)
|