summaryrefslogtreecommitdiff
path: root/python/generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/generator.py')
-rwxr-xr-xpython/generator.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/python/generator.py b/python/generator.py
index 3ae5729..df89c4e 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -282,6 +282,9 @@ py_types = {
'xmlRelaxNGPtr': ('O', "relaxNgSchema", "xmlRelaxNGPtr", "xmlRelaxNGPtr"),
'xmlRelaxNGParserCtxtPtr': ('O', "relaxNgParserCtxt", "xmlRelaxNGParserCtxtPtr", "xmlRelaxNGParserCtxtPtr"),
'xmlRelaxNGValidCtxtPtr': ('O', "relaxNgValidCtxt", "xmlRelaxNGValidCtxtPtr", "xmlRelaxNGValidCtxtPtr"),
+ 'xmlSchemaPtr': ('O', "Schema", "xmlSchemaPtr", "xmlSchemaPtr"),
+ 'xmlSchemaParserCtxtPtr': ('O', "SchemaParserCtxt", "xmlSchemaParserCtxtPtr", "xmlSchemaParserCtxtPtr"),
+ 'xmlSchemaValidCtxtPtr': ('O', "SchemaValidCtxt", "xmlSchemaValidCtxtPtr", "xmlSchemaValidCtxtPtr"),
}
py_return_types = {
@@ -666,6 +669,9 @@ classes_type = {
'xmlRelaxNGPtr': ('._o', "relaxNgSchema(_obj=%s)", "relaxNgSchema"),
'xmlRelaxNGParserCtxtPtr': ('._o', "relaxNgParserCtxt(_obj=%s)", "relaxNgParserCtxt"),
'xmlRelaxNGValidCtxtPtr': ('._o', "relaxNgValidCtxt(_obj=%s)", "relaxNgValidCtxt"),
+ 'xmlSchemaPtr': ("._o", "Schema(_obj=%s)", "Schema"),
+ 'xmlSchemaParserCtxtPtr': ("._o", "SchemaParserCtxt(_obj=%s)", "SchemaParserCtxt"),
+ 'xmlSchemaValidCtxtPtr': ("._o", "SchemaValidCtxt(_obj=%s)", "SchemaValidCtxt"),
}
converter_type = {
@@ -699,6 +705,9 @@ classes_destructors = {
"relaxNgSchema": "xmlRelaxNGFree",
"relaxNgParserCtxt": "xmlRelaxNGFreeParserCtxt",
"relaxNgValidCtxt": "xmlRelaxNGFreeValidCtxt",
+ "Schema": "xmlSchemaFree",
+ "SchemaParserCtxt": "xmlSchemaFreeParserCtxt",
+ "SchemaValidCtxt": "xmlSchemaFreeValidCtxt",
}
functions_noexcept = {
@@ -710,6 +719,7 @@ functions_noexcept = {
reference_keepers = {
"xmlTextReader": [('inputBuffer', 'input')],
"relaxNgValidCtxt": [('relaxNgSchema', 'schema')],
+ "SchemaValidCtxt": [('Schema', 'schema')],
}
function_classes = {}
@@ -1016,6 +1026,13 @@ def buildWrappers():
classes.write("class %s(%s):\n" % (classname,
classes_ancestor[classname]))
classes.write(" def __init__(self, _obj=None):\n")
+ if classes_ancestor[classname] == "xmlCore" or \
+ classes_ancestor[classname] == "xmlNode":
+ classes.write(" if type(_obj).__name__ != ")
+ classes.write("'PyCObject':\n")
+ classes.write(" raise TypeError, ")
+ classes.write("'%s needs a PyCObject argument'\n" % \
+ classname)
if reference_keepers.has_key(classname):
rlist = reference_keepers[classname]
for ref in rlist: