IRC logs of #tryton-fr for Wednesday, 2011-12-14

chat.freenode.net #tryton-fr log beginning Wed Dec 14 00:00:02 CET 2011
piloucedk: salut ! a propos du bug 2302, les exceptions la traceback de l'exception remontée par pyscopg n'est pas de type unicode mais de type str contenant de l'unicode12:09
cedkpilou: je pense que c'est pas possible d'avoir des str qui contienent de l'unicode12:16
cedkpilou: je pense que tu veux dire de l'utf-812:16
pilououais12:17
cedkpilou: le truc est de se fixer un format d'encodage pour les exception12:19
cedkpilou: si on a toujours de l'utf-8 dans des str12:20
cedkpilou: on a plus besoin de l'appel à encode12:21
pilouje n'ai pas compris dans quels cas l'appel à encode servait. "line.encode('utf-8')" est équivalement à "line.decode(sys.getdefaultencoding()).encode('ascii')"12:25
piloucomme ce sont des exceptions il me semble que c'est forcément des str. pour l'encodage ça peut varier: les exceptions qui viennent de la base de données sont bien en utf-8.12:26
cedkà priori c'est pour convertir de unicode (utf-8) en str12:26
cedkpilou: ok mais comment peut-on savoir l'encodage12:27
cedkc'est un peu null cette method format_exception si on ne connait pas l'encodage des str12:29
piloules exceptions de la lib standard utilisent locale.getdefaultlocale()12:36
cedkpilou: tu a vu ça où?12:38
piloueuh j'ai pas de source là c'est que je crois :)12:54
piloupour détecter l'encodage haypo a écrit ça https://bitbucket.org/haypo/hachoir/src/b662b521c8b0/hachoir-core/hachoir_core/i18n.py#cl-16812:55
cedkpilou: oui mais on devrait avoir le control sur l'encodage12:55
cedkpilou: je n'aime vraiment pas les trucs un peu magique12:55
piloulocale.setlocale permet d'avoir le controle (ou sinon les variables LC_*) sur ce que retourne locale.getlocale()12:57
cedkpilou: mais on est pas sure que l'encodage de la traceback sera celui là?13:00
piloupar exemple pour les exceptions provenant des bases de données l'encodage de la traceback depend de l'encodage de la connexion13:02
cedkXMLRPC server uses sys.exc_info http://hg.python.org/cpython/file/98df29d51e12/Lib/xmlrpc/server.py#l26613:03
cedkje ne suis pas sur que l'encodage de la traceback soit différent en fonction de la source de l'exception13:22
piloule code que j'ai pasté là https://bugs.tryton.org/msg9530 ne montre pas ça ?13:30
cedkhttp://bugs.python.org/issue654313:31
pilouc'est pas la même versionde python ;)13:31
cedkpilou: je sais mais ça explique que la traceback est encodée de la même manière13:34
cedkpilou: en fait dans msg9530, c'est le message d'erreur de la DB qui est dans l'encodage de la connection13:34
cedkpilou: je me demande si le mieux ne serait pas de simplement ne rien faire13:44
cedkdonc passer la string sans essayer de la convertir13:44
cedket de mettre l'encodage et la langue par default de trytond à en_US.UTF-813:48
pilouje pense que c'est une bonne solution14:28
piloupeut être que la langue pourrait être un paramètre de config ?14:29
cedkpilou: c'est du technique donc je pense que l'anglais est le plus approrié14:34
cedkpilou: mais faudrait voir ce qui se passe si la locale n'existe pas sur la machine14:35
cedkou bien on laisse l'utilisateur le définir pour le user qui lance trytond14:37
cedkpilou: tu peux proposer un patch pour le problème d'encodage?16:52
pilououi16:59
pilouun patch qui simplement supprime l'appel à encode ?16:59
cedkpilou: oui17:00
cedkpilou: ce serait bien de tester ce que ça donne dans le client quand les locale sont en français17:00
pilouok17:01
piloucedk: j'ai demandé à haypo qui connait bien le sujet, les exceptions ne dépendent pas de la locale avec python 217:47
nicoepilou: sur python-fr ? J'ai rien vu passé17:49
cedkpilou: et donc elles sont encodée en quoi?17:50
piloupar exemple oserror qui affiche le nom du fichier ne décode pas le nom du fichier17:51
cedkpilou: et il est dans quel encodage?17:52
pilourectification, le nom du fichier n'est bien pas décodé mais le message d'erreur tiens compte de la locale18:09
piloupar exemple avec la locale C.UTF-8: "OSError: [Errno 17] File exists" et avec la locale ru_RU.CP1251 : "OSError: [Errno 17] \xd4\xe0\xe9\xeb \xf1\xf3\xf9\xe5\xf1\xf2\xe2\xf3\xe5\xf2"18:11
pilou\xd4\xe0\xe9\xeb -> c'est encodé en cp125118:12
cedkpilou: donc comme c'est potentiellement en mixte de différente encodage18:13
cedkpilou: on ne peut rien faire18:13
piloupour oserror le nom de fichier est en ascii (le nom encodé selon le système de fichier est dispo dans err.filename)18:14
piloucedk: les différents systèmes d'encodage c'est celui de la connection à la base de données et celui du système ?18:17
piloucedk: les différents systèmes d'encodage c'est celui de la connection à la base de données et celui de "locale.getlocale()" .18:17
pilou?18:17
cedkpilou: je sais pas et ça ne m'interresse pas vraiment18:17
pilouclos le bug alors18:17
cedkpilou: le truc important, c'est que'il n'y a aucune convention18:17
cedkpilou: donc on peut pas decoder18:18
cedkpilou: du coup, on ne peut qu'envoyer la str18:18
cedkce qu'il faut vérifier c'est que le client ne crash pas en essayant d'afficher cette str18:19

Generated by irclog2html.py 2.11.0 by Marius Gedminas - find it at mg.pov.lt!