diff --git a/ChangeLog b/ChangeLog index 9c430939..32977bb3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Jan 15 00:48:46 CET 2004 Daniel Veillard + + * python/generator.py python/tests/tstLastError.py: applied + patch from Stephane Bidoul to add enums to the Python bindings. + Tue Jan 13 21:50:05 CET 2004 Daniel Veillard * testHTML.c: another small patch from Mark Vadoc diff --git a/python/generator.py b/python/generator.py index db7be28f..0891eede 100755 --- a/python/generator.py +++ b/python/generator.py @@ -4,6 +4,7 @@ # functions = {} +enums = {} # { enumType: { enumConstant: enumValue } } import sys import string @@ -137,7 +138,8 @@ class docParser: self.function_return_info = attrs['info'] if attrs.has_key('field'): self.function_return_field = attrs['field'] - + elif tag == 'enum': + enum(attrs['type'],attrs['name'],attrs['value']) def end(self, tag): if debug: @@ -167,10 +169,13 @@ class docParser: def function(name, desc, ret, args, file): - global functions - functions[name] = (desc, ret, args, file) +def enum(type, name, value): + if not enums.has_key(type): + enums[type] = {} + enums[type][name] = value + ####################################################################### # # Some filtering rukes to drop functions/types which should not @@ -1161,9 +1166,19 @@ def buildWrappers(): classes.write(" return ret\n"); classes.write("\n"); + # + # Generate enum constants + # + for type,enum in enums.items(): + classes.write("# %s\n" % type) + items = enum.items() + items.sort(lambda i1,i2: cmp(long(i1[1]),long(i2[1]))) + for name,value in items: + classes.write("%s = %s\n" % (name,value)) + classes.write("\n"); + txt.close() classes.close() - buildStubs() buildWrappers() diff --git a/python/tests/tstLastError.py b/python/tests/tstLastError.py index 12229e8c..83e98b87 100755 --- a/python/tests/tstLastError.py +++ b/python/tests/tstLastError.py @@ -48,10 +48,10 @@ class TestCase(unittest.TestCase): self.failUnlessXmlError(libxml2.readFile, ("dummy.xml",None,0), libxml2.treeError, - domain=8, # XML_FROM_IO - code=1549, # XML_IO_LOAD_ERROR + domain=libxml2.XML_FROM_IO, + code=libxml2.XML_IO_LOAD_ERROR, message='failed to load external entity "dummy.xml"\n', - level=1, # XML_ERR_WARNING + level=libxml2.XML_ERR_WARNING, file=None, line=0) @@ -61,10 +61,10 @@ class TestCase(unittest.TestCase): self.failUnlessXmlError(libxml2.readMemory, (s,len(s),"dummy.xml",None,0), libxml2.treeError, - domain=1, # XML_FROM_PARSER - code=77, # XML_ERR_TAG_NOT_FINISHED + domain=libxml2.XML_FROM_PARSER, + code=libxml2.XML_ERR_TAG_NOT_FINISHED, message='Premature end of data in tag x line 1\n', - level=3, # XML_ERR_FATAL + level=libxml2.XML_ERR_FATAL, file='dummy.xml', line=3)