[Lxml-checkins] r43590 - in lxml/trunk: . src/lxml

scoder at codespeak.net scoder at codespeak.net
Wed May 23 21:51:22 CEST 2007


Author: scoder
Date: Wed May 23 21:51:22 2007
New Revision: 43590

Modified:
   lxml/trunk/CHANGES.txt
   lxml/trunk/src/lxml/objectify.pyx
Log:
parse() function in objectify

Modified: lxml/trunk/CHANGES.txt
==============================================================================
--- lxml/trunk/CHANGES.txt	(original)
+++ lxml/trunk/CHANGES.txt	Wed May 23 21:51:22 2007
@@ -8,6 +8,8 @@
 Features added
 --------------
 
+* ``parse()`` function in ``objectify``, corresponding to ``XML()`` etc.
+
 * ``column`` field on error log entries to accompany the ``line`` field
 
 * Error specific messages in XPath parsing and evaluation

Modified: lxml/trunk/src/lxml/objectify.pyx
==============================================================================
--- lxml/trunk/src/lxml/objectify.pyx	(original)
+++ lxml/trunk/src/lxml/objectify.pyx	Wed May 23 21:51:22 2007
@@ -1685,8 +1685,8 @@
 __DEFAULT_PARSER = etree.XMLParser(remove_blank_text=True)
 __DEFAULT_PARSER.setElementClassLookup( ObjectifyElementClassLookup() )
 
-cdef object parser
-parser = __DEFAULT_PARSER
+cdef object objectify_parser
+objectify_parser = __DEFAULT_PARSER
 
 def setDefaultParser(new_parser = None):
     """Replace the default parser used by objectify's Element() and
@@ -1696,16 +1696,16 @@
 
     Call without arguments to reset to the original parser.
     """
-    global parser
+    global objectify_parser
     if new_parser is None:
-        parser = __DEFAULT_PARSER
+        objectify_parser = __DEFAULT_PARSER
     elif isinstance(new_parser, etree.XMLParser):
-        parser = new_parser
+        objectify_parser = new_parser
     else:
         raise TypeError, "parser must inherit from lxml.etree.XMLParser"
 
 cdef _Element _makeElement(tag, text, attrib, nsmap):
-    return cetree.makeElement(tag, None, parser, text, None, attrib, nsmap)
+    return cetree.makeElement(tag, None, objectify_parser, text, None, attrib, nsmap)
 
 ################################################################################
 # Module level factory functions
@@ -1718,10 +1718,18 @@
 
     NOTE: requires parser based element class lookup activated in lxml.etree!
     """
-    return _fromstring(xml, parser)
+    return _fromstring(xml, objectify_parser)
 
 XML = fromstring
 
+cdef object _parse
+_parse = etree.parse
+
+def parse(f, parser=None):
+    if parser is None:
+        parser = objectify_parser
+    return _parse(f, parser)
+
 cdef object _DEFAULT_NSMAP
 _DEFAULT_NSMAP = { "py"  : PYTYPE_NAMESPACE,
                    "xsi" : XML_SCHEMA_INSTANCE_NS,


More information about the lxml-checkins mailing list