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()
.