20110728 ======== :term:`watch_tim` noch immer nicht bugfrei ------------------------------------------ Wer hätte das gedacht! Es gibt noch immer Bugs :term:`watch_tim`! (Seriös: natürlich gibt es noch Bugs in :term:`watch_tim`, denn der ist hochkomplex und schwer zu warten. Aber ich bin im Grunde sehr zufrieden, wie stabil das Ding läuft und wie die Bugs immer subtiler werden. Diesmal lag es daran, dass mein Bugfix von gestern noch Bug hatte. UnicodeDecodeError ------------------ Meine :func:`lino.tools.obj2str` hatte einen Bug, der auf einem Django-Pitfall beruht (oder findet ihr das normal, dass die Python-Funktion :func:`repr` auch unsaubere Strings (d.h. basestrings mit non-ascii chars darin) zurückgeben darf? Jedenfalls ist der Bug nun hoffentlich behoben. :func:`lino.apps.dsbe.tests.dsbe_tests.test05`. Aber trotzdem macht :term:`watch_tim` noch UnicodeDecodeErrors im Modul `logging`. Um rauszufinden, was er da loggen will, habe ich in der :file:`/usr/lib/python2.6/logging/__init__.py` auf Jana ein paar Änderungen gemacht. Mein Fazit nach stundenlangem Suchen: das `logging` vom Python 2.6.6 hat noch irgendwelche subtilen Probleme, wenn man ihm unicode-Strings zu loggen gibt. Ich ändere meine :func:`lino.tools.obj2str` so das sie immer garantiert einen basestring zurückgibt (also Sonderzeichen stehen dann im Stil ``\xe9`` da). Für Meldungen an den Benutzer, die in Unicode sein dürfen und sollen, gibt es jetzt die neue Funktion :func:`lino.tools.obj2unicode`.