I find convenient to use the str() method(*) on each and every Python object. Since currently there's no Tree.str() method, I suggest the following modifications. The tests with Python3 are ok.
added a Tree.str() method, describing the tree with the help of Tree._print_backend();
modified Tree._print_backend() so that this function prints the result OR returns it;
modified Tree.show() which simply prints the value returned by Tree.str();
modified the test TreeCase.test_print_backend(), which now is simply using the str() method;
I find convenient to use the str() method(*) on each and every Python object. Since currently there's no Tree.str() method, I suggest the following modifications. The tests with Python3 are ok.
(*) about str() : https://docs.python.org/3.4/reference/datamodel.html?highlight=__str__#object.__str__