summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Behnel <stefan_ml@behnel.de>2018-12-02 16:20:37 +0100
committerStefan Behnel <stefan_ml@behnel.de>2018-12-02 16:20:37 +0100
commit6c2d46e785abb939a5cc9a0d752241d54da46683 (patch)
tree06a4d4f3b8215546cc7c944f7db5a1adda93a021
parent10ce94b0a7db3470792e2e0fdd180e6f1ba52212 (diff)
downloadpython-lxml-6c2d46e785abb939a5cc9a0d752241d54da46683.tar.gz
Speed up sax.py by converting ElementTreeProducer into an extension type and inlining its internal method calls.
-rw-r--r--src/lxml/sax.pxd14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lxml/sax.pxd b/src/lxml/sax.pxd
new file mode 100644
index 00000000..215e53fa
--- /dev/null
+++ b/src/lxml/sax.pxd
@@ -0,0 +1,14 @@
+cimport cython
+
+cdef tuple _getNsTag(tag)
+
+cdef class ElementTreeProducer:
+ cdef _element
+ cdef _content_handler
+ cdef _attr_class
+ cdef _empty_attributes
+
+ @cython.locals(element_nsmap=dict)
+ cdef inline _recursive_saxify(self, element, dict parent_nsmap)
+
+ cdef inline _build_qname(self, ns_uri, local_name, dict nsmap, preferred_prefix, bint is_attribute)