diff -u python-meld3-0.6.5/debian/changelog python-meld3-0.6.5/debian/changelog --- python-meld3-0.6.5/debian/changelog +++ python-meld3-0.6.5/debian/changelog @@ -1,3 +1,10 @@ +python-meld3 (0.6.5-3build1ubuntu1) oneiric; urgency=low + + * Apply most of commit afe92611 upstream to make the package compatible + with Python 2.7. (LP #749880) + + -- Jessica McKellar Sun, 02 Oct 2011 16:08:55 -0400 + python-meld3 (0.6.5-3build1) natty; urgency=low * Rebuild to add support for python 2.7. only in patch2: unchanged: --- python-meld3-0.6.5.orig/meld3/test_meld3.py +++ python-meld3-0.6.5/meld3/test_meld3.py @@ -1,6 +1,7 @@ import unittest from StringIO import StringIO import re +import sys _SIMPLE_XML = r""" @@ -1671,9 +1672,13 @@ """ def test_unknown_entity(self): - from xml.parsers import expat - self.assertRaises(expat.error, self._parse, - '&fleeb;') + if sys.version_info[:3] >= (2,7,0): + self.assertRaises(SyntaxError, self._parse, + '&fleeb;') + else: + from xml.parsers import expat + self.assertRaises(expat.error, self._parse, + '&fleeb;') def test_content_nostructure(self): root = self._parse(_SIMPLE_XML) only in patch2: unchanged: --- python-meld3-0.6.5.orig/meld3/meld3.py +++ python-meld3-0.6.5/meld3/meld3.py @@ -3,6 +3,7 @@ import re import types import mimetools +import string from StringIO import StringIO try: @@ -24,10 +25,32 @@ from xml.etree.ElementTree import QName from xml.etree.ElementTree import _raise_serialization_error from xml.etree.ElementTree import _namespace_map - from xml.etree.ElementTree import fixtag from xml.etree.ElementTree import parse as et_parse from xml.etree.ElementTree import ElementPath + try: + from xml.etree.ElementTree import fixtag + except: + def fixtag(tag, namespaces): + # given a decorated tag (of the form {uri}tag), return prefixed + # tag and namespace declaration, if any + if isinstance(tag, QName): + tag = tag.text + namespace_uri, tag = string.split(tag[1:], "}", 1) + prefix = namespaces.get(namespace_uri) + if prefix is None: + prefix = _namespace_map.get(namespace_uri) + if prefix is None: + prefix = "ns%d" % len(namespaces) + namespaces[namespace_uri] = prefix + if prefix == "xml": + xmlns = None + else: + xmlns = ("xmlns:%s" % prefix, namespace_uri) + else: + xmlns = None + return "%s:%s" % (prefix, tag), xmlns + # HTMLTreeBuilder does not exist in python 2.5 standard elementtree from HTMLParser import HTMLParser AUTOCLOSE = "p", "li", "tr", "th", "td", "head", "body"