[Lxml-checkins] r44070 - lxml/trunk/src/lxml
scoder at codespeak.net
scoder at codespeak.net
Thu Jun 7 09:42:25 CEST 2007
Author: scoder
Date: Thu Jun 7 09:42:24 2007
New Revision: 44070
Modified:
lxml/trunk/src/lxml/builder.py
Log:
E factory cleanup for lxml.etree, 'parser' keyword argument
Modified: lxml/trunk/src/lxml/builder.py
==============================================================================
--- lxml/trunk/src/lxml/builder.py (original)
+++ lxml/trunk/src/lxml/builder.py Thu Jun 7 09:42:24 2007
@@ -16,9 +16,6 @@
return lambda *args, **kwargs: func(tag, *args, **kwargs)
-class _C:
- pass
-
class ElementMaker(object):
"""Element generator factory.
@@ -97,7 +94,12 @@
</html>
"""
- def __init__(self, typemap=None):
+ def __init__(self, typemap=None, parser=None):
+ if parser is not None:
+ self._makeelement = parser.makeelement
+ else:
+ self._makeelement = ET.Element
+
# initialize type map for this element factory
if typemap:
@@ -121,20 +123,12 @@
attrib[k] = typemap[type(v)](None, v)
typemap[dict] = add_dict
- def add_elem(elem, item):
- elem.append(item)
- t = type(ET.Element("tag"))
- if t is not type(_C()):
- typemap[t] = add_elem
-
self._typemap = typemap
- # print typemap
-
def __call__(self, tag, *children, **attrib):
get = self._typemap.get
- elem = ET.Element(tag)
+ elem = self._makeelement(tag)
if attrib:
get(dict)(elem, attrib)
More information about the lxml-checkins
mailing list