20110728

watch_tim noch immer nicht bugfrei

Wer hätte das gedacht! Es gibt noch immer Bugs watch_tim! (Seriös: natürlich gibt es noch Bugs in 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 lino.tools.obj2str() hatte einen Bug, der auf einem Django-Pitfall beruht (oder findet ihr das normal, dass die Python-Funktion repr() auch unsaubere Strings (d.h. basestrings mit non-ascii chars darin) zurückgeben darf? Jedenfalls ist der Bug nun hoffentlich behoben. lino.apps.dsbe.tests.dsbe_tests.test05().

Aber trotzdem macht watch_tim noch UnicodeDecodeErrors im Modul logging. Um rauszufinden, was er da loggen will, habe ich in der /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 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 lino.tools.obj2unicode().