Skip to content

Commit a13225e

Browse files
committed
compatible with python-2.6
Fixes two issues in generators/xml.py when using python-2.6. The main problem is caused by incompatible between xml.etree.ElementTree-1.2 (used by pyhton-2.6) and xml.etree.ElementTree-1.3 (used by python-2.7). + ElementTree.register_namespace(prefix, uri) Workaround by: ElementTree._namespace_map[uri] = prefix This solution is based on http://goo.gl/Z4Sjtq + ElementTree.write(file, encoding='utf-8', xml_declaration=True) Workaround by: ElementTree.write(file, encoding='UTF-8') This solution is based on http://goo.gl/8K88ow (pls check Olli's answer) Also replaces unittest by unittest2 which is compitable with python-2.6 and fixes the tests. Signed-off-by: Kai Zhang <[email protected]>
1 parent f4da1a2 commit a13225e

35 files changed

+46
-39
lines changed

cldoc/generators/xml.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,12 @@ def generate(self, outdir):
3333
except OSError:
3434
pass
3535

36-
ElementTree.register_namespace('gobject', 'http://jessevdk.github.com/cldoc/gobject/1.0')
37-
ElementTree.register_namespace('cldoc', 'http://jessevdk.github.com/cldoc/1.0')
36+
if ElementTree.VERSION[0:3] == '1.2':
37+
ElementTree._namespace_map['http://jessevdk.github.com/cldoc/gobject/1.0'] = 'gobject'
38+
ElementTree._namespace_map['http://jessevdk.github.com/cldoc/1.0'] = 'cldoc'
39+
else:
40+
ElementTree.register_namespace('gobject', 'http://jessevdk.github.com/cldoc/gobject/1.0')
41+
ElementTree.register_namespace('cldoc', 'http://jessevdk.github.com/cldoc/1.0')
3842

3943
self.index = ElementTree.Element('index')
4044
self.written = {}
@@ -110,7 +114,10 @@ def write_xml(self, elem, fname):
110114
self.indent(tree.getroot())
111115

112116
f = fs.fs.open(os.path.join(self.outdir, fname), 'w')
113-
tree.write(f, encoding='utf-8', xml_declaration=True)
117+
if ElementTree.VERSION[0:3] == '1.2':
118+
tree.write(f, encoding='UTF-8')
119+
else:
120+
tree.write(f, encoding='UTF-8', xml_declaration=True)
114121
f.write('\n')
115122

116123
f.close()

tests/output/abstract-A.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version='1.0' encoding='utf-8'?>
1+
<?xml version='1.0' encoding='UTF-8'?>
22
<class id="A" interface="true" name="A" xmlns="http://jessevdk.github.com/cldoc/1.0">
33
<method abstract="yes" id="A::f" name="f" virtual="yes">
44
<brief>A function of A.</brief>

tests/output/abstract-index.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version='1.0' encoding='utf-8'?>
1+
<?xml version='1.0' encoding='UTF-8'?>
22
<index xmlns="http://jessevdk.github.com/cldoc/1.0">
33
<class name="A" ref="A#A" />
44
</index>

tests/output/base-A.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version='1.0' encoding='utf-8'?>
1+
<?xml version='1.0' encoding='UTF-8'?>
22
<class id="A" name="A" xmlns="http://jessevdk.github.com/cldoc/1.0">
33
<doc>
44
The class A.

tests/output/base-Base.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version='1.0' encoding='utf-8'?>
1+
<?xml version='1.0' encoding='UTF-8'?>
22
<class id="Base" interface="true" name="Base" xmlns="http://jessevdk.github.com/cldoc/1.0">
33
<subclass access="public" name="A" ref="A#A" />
44
<method abstract="yes" id="Base::b" name="b" virtual="yes">

tests/output/base-index.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version='1.0' encoding='utf-8'?>
1+
<?xml version='1.0' encoding='UTF-8'?>
22
<index xmlns="http://jessevdk.github.com/cldoc/1.0">
33
<class name="A" ref="A#A" />
44
<class name="Base" ref="Base#Base" />

tests/output/class-A.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version='1.0' encoding='utf-8'?>
1+
<?xml version='1.0' encoding='UTF-8'?>
22
<class id="A" name="A" xmlns="http://jessevdk.github.com/cldoc/1.0">
33
<doc>
44
The class A.

tests/output/class-index.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version='1.0' encoding='utf-8'?>
1+
<?xml version='1.0' encoding='UTF-8'?>
22
<index xmlns="http://jessevdk.github.com/cldoc/1.0">
33
<class name="A" ref="A#A" />
44
</index>

tests/output/constructor-A.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version='1.0' encoding='utf-8'?>
1+
<?xml version='1.0' encoding='UTF-8'?>
22
<class id="A" name="A" xmlns="http://jessevdk.github.com/cldoc/1.0">
33
<constructor id="A::A" name="A">
44
<brief>Constructor.</brief>

tests/output/constructor-index.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version='1.0' encoding='utf-8'?>
1+
<?xml version='1.0' encoding='UTF-8'?>
22
<index xmlns="http://jessevdk.github.com/cldoc/1.0">
33
<class name="A" ref="A#A" />
44
</index>

0 commit comments

Comments
 (0)