updated the python bindings, added code for easier File I/O, and the
* python/generator.py python/libxml.c python/libxml.py
python/libxml2-python-api.xml python/libxml2class.txt
python/libxml_wrap.h python/types.c: updated the python
bindings, added code for easier File I/O, and the ability to
define a resolver from Python fixing bug #91635
* python/tests/Makefile.am python/tests/inbuf.py
python/tests/outbuf.py python/tests/pushSAXhtml.py
python/tests/resolver.py python/tests/serialize.py: updated
and augmented the set of Python tests.
Daniel
diff --git a/python/generator.py b/python/generator.py
index c34949e..e2a4204 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -268,6 +268,8 @@
'xmlCatalogPtr': ('O', "catalog", "xmlCatalogPtr", "xmlCatalogPtr"),
'FILE *': ('O', "File", "FILEPtr", "FILE *"),
'xmlURIPtr': ('O', "URI", "xmlURIPtr", "xmlURIPtr"),
+ 'xmlOutputBufferPtr': ('O', "outputBuffer", "xmlOutputBufferPtr", "xmlOutputBufferPtr"),
+ 'xmlParserInputBufferPtr': ('O', "inputBuffer", "xmlParserInputBufferPtr", "xmlParserInputBufferPtr"),
}
py_return_types = {
@@ -583,6 +585,8 @@
"htmlParserCtxt *": ("._o", "parserCtxt(_obj=%s)", "parserCtxt"),
"xmlCatalogPtr": ("._o", "catalog(_obj=%s)", "catalog"),
"xmlURIPtr": ("._o", "URI(_obj=%s)", "URI"),
+ "xmlOutputBufferPtr": ("._o", "outputBuffer(_obj=%s)", "outputBuffer"),
+ "xmlParserInputBufferPtr": ("._o", "inputBuffer(_obj=%s)", "inputBuffer"),
}
converter_type = {
@@ -600,11 +604,15 @@
"xmlEntity" : "xmlNode",
"xmlElement" : "xmlNode",
"xmlAttribute" : "xmlNode",
+ "outputBuffer": "ioWriteWrapper",
+ "inputBuffer": "ioReadWrapper",
}
classes_destructors = {
"parserCtxt": "xmlFreeParserCtxt",
"catalog": "xmlFreeCatalog",
"URI": "xmlFreeURI",
+# "outputBuffer": "xmlOutputBufferClose",
+ "inputBuffer": "xmlFreeParserInputBuffer",
}
functions_noexcept = {
@@ -647,6 +655,12 @@
elif name[0:11] == "xmlXPathSet" and file == "python_accessor":
func = name[8:]
func = string.lower(func[0:1]) + func[1:]
+ elif name[0:15] == "xmlOutputBuffer" and file != "python":
+ func = name[15:]
+ func = string.lower(func[0:1]) + func[1:]
+ elif name[0:20] == "xmlParserInputBuffer" and file != "python":
+ func = name[20:]
+ func = string.lower(func[0:1]) + func[1:]
elif name[0:11] == "xmlACatalog":
func = name[11:]
func = string.lower(func[0:1]) + func[1:]