Skip to content

Commit 9e32999

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. Signed-off-by: Kai Zhang <zhangk1985@gmail.com>
1 parent f4da1a2 commit 9e32999

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
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()

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,6 @@ def run(self):
145145
},
146146
package_data={'cldoc': datafiles},
147147
cmdclass=cmdclass,
148-
install_requires=['pyparsing ==1.5.7'])
148+
install_requires=['pyparsing ==1.5.7', 'unittest2 == 0.8.0'])
149149

150150
# vi:ts=4:et

tests/regression.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
lcldoc = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
66
sys.path.insert(0, lcldoc)
77

8-
import unittest
8+
import unittest2
99
from cldoc import cmdgenerate
1010

1111
from cldoc import fs
@@ -15,7 +15,7 @@
1515

1616
fs.fs = fs.Virtual
1717

18-
class Regression(unittest.TestCase):
18+
class Regression(unittest2.TestCase):
1919
def setUp(self):
2020
pass
2121

@@ -70,6 +70,6 @@ def generate_tests():
7070
generate_tests()
7171

7272
if __name__ == '__main__':
73-
unittest.main()
73+
unittest2.main()
7474

7575
# vi:ts=4:et

0 commit comments

Comments
 (0)