ElementTree.tostring() returning str by default in Py3.2

I just noticed that the xml.etree.ElementTree.tostring() function in Py3.2 returns a str object by default, unless an encoding is specified. This is a backwards incompatible change compared to ET 1.2. For one, it breaks tons of tests in lxml's compatibility test suite. Previously, the default encoding was 'ASCII', and tostring() was guaranteed to always return a byte string.

Stefan Behnel, 02.03.2010 10:06: > I just noticed that the xml.etree.ElementTree.tostring() function in Py3.2 > returns a str object by default, unless an encoding is specified. This is a > backwards incompatible change compared to ET 1.2. For one, it breaks tons > of tests in lxml's compatibility test suite. Previously, the default > encoding was 'ASCII', and tostring() was guaranteed to always return a byte > string. > > According to svn blame, this was changed by GvR in rev. 56841. > > Is there any reasoning behind this?

BTW, sorry for not reporting this earlier (the change is from 2007). It seems that bug 7173 (or some other bug) prevented me from running lxml's test suite in Py3 for quite a while now. This is the first time in ages that I get a complete run in Py3.x (x>0).

Stefan Behnel, 02.03.2010 10:06: > I just noticed that the xml.etree.ElementTree.tostring() function in Py3.2 > returns a str object by default, unless an encoding is specified. This is a > backwards incompatible change compared to ET 1.2. For one, it breaks tons > of tests in lxml's compatibility test suite. Previously, the default > encoding was 'ASCII', and tostring() was guaranteed to always return a byte > string. > > According to svn blame, this was changed by GvR in rev. 56841. > > Is there any reasoning behind this?