Projet

Général

Profil

Evolution #6623

CreoleSet traceback sur modification d'une variable frozen

Ajouté par Joël Cuissinat il y a plus de 10 ans. Mis à jour il y a plus de 10 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Gwenael Remond
Catégorie:
-
Début:
18/11/2013
Echéance:
22/11/2013
% réalisé:

100%

Temps estimé:
0.33 h
Temps passé:
Distribution:
EOLE 2.4

Description

root@amon:~# CreoleSet numero_etab toto
Traceback (most recent call last):
  File "/usr/bin/CreoleSet", line 77, in <module>
    main()
  File "/usr/bin/CreoleSet", line 58, in main
    print_red(u"Erreur de propriété : ", unicode(err))
  File "/usr/lib/python2.7/dist-packages/pyeole/ansiprint.py", line 46, in print_red
    print_color(string, (1, 'red'), newline)
  File "/usr/lib/python2.7/dist-packages/pyeole/ansiprint.py", line 42, in print_color
    system("\n".join(cmd))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 35: ordinal not in range(128)

Demandes liées

Lié à python-pyeole - Anomalie #6216: Les fonctions de pyeole.ihm ne supporte pas l’unicode Fermé 04/11/2013 08/11/2013

Révisions associées

Révision f03be797 (diff)
Ajouté par Joël Cuissinat il y a plus de 10 ans

  • CreoleSet : correction des appels à print_red

Fixes #6623 @20m

Révision 360640f7 (diff)
Ajouté par Joël Cuissinat il y a plus de 10 ans

  • pyeole/ansiprint.py : fix UnicodeEncodeError

Fixes #6623 @10m

Historique

#1 Mis à jour par Joël Cuissinat il y a plus de 10 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

#2 Mis à jour par Joël Cuissinat il y a plus de 10 ans

Gwen propose le patch suivant en complément mais c'est peut-être un peu surfait ?

diff --git a/pyeole/ansiprint.py b/pyeole/ansiprint.py
index e2b08f4..abccc03 100644
--- a/pyeole/ansiprint.py
+++ b/pyeole/ansiprint.py
@@ -32,6 +32,8 @@ def print_color(string, color=(0, 'black'), newline=True):
         print """<font color="%s"> %s </font><br>""" % (color_name, string.replace('\n','<br>\n').replace('\t','&nbsp;'))
     else:
         cmd = []
+        if isinstance(string, unicode):
+            string = string.encode('utf8')
         for line in string.splitlines():
             cmd.append("""echo \"%s\" """ % line.replace('"', '\\"'))
         if not newline:

#3 Mis à jour par Joël Cuissinat il y a plus de 10 ans

  • Statut changé de Résolu à À valider
  • % réalisé changé de 100 à 80

La correction de CreoleSet n'était pas suffisante, il faut bien appliquer le patch en plus :o

#4 Mis à jour par Joël Cuissinat il y a plus de 10 ans

  • Statut changé de À valider à Résolu
  • % réalisé changé de 80 à 100

#5 Mis à jour par Joël Cuissinat il y a plus de 10 ans

  • Statut changé de Résolu à Fermé
root@sentinelle:~# CreoleSet numero_etab toto
Erreur de propriété : cannot change the value for option numero_etab this option is frozen

Formats disponibles : Atom PDF