]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
Support des accents dans les noms de fichiers
authorRenaud Barate <renaud.barate@edf.fr>
Thu, 10 Jul 2014 13:44:25 +0000 (13:44 +0000)
committerRenaud Barate <renaud.barate@edf.fr>
Thu, 10 Jul 2014 13:44:25 +0000 (13:44 +0000)
InterfaceQT4/browser.py
InterfaceQT4/editor.py
Noyau/N_Exception.py
Noyau/N_JDC.py
Noyau/N_utils.py
Noyau/nommage.py
Validation/V_ETAPE.py
generator/generator_openturns_study.py

index 535c00b0b463ea44fe1a9a54971e93fc17ca71bf..d4c1e6ca4c92b2c100440bb383721f5f33021745 100644 (file)
@@ -110,9 +110,8 @@ class JDCNode(QTreeWidgetItem):
         #if hasattr(self.editor, 'affichage_onglet' ) :self.affichage_onglet=self.editor.affichage_onglet
         #else : self.affichage_onglet=False
 
-                        
-        name  = self.appliEficas.trUtf8(  str( item.GetLabelText()[0] ) )
-        value = self.appliEficas.trUtf8(  str( item.GetText() ) )
+        name  = self.appliEficas.trUtf8( item.GetLabelText()[0] )
+        value = self.appliEficas.trUtf8( item.GetText() )
         mesColonnes=QStringList()
         mesColonnes <<  name << value
         QTreeWidgetItem.__init__(self,treeParent,mesColonnes)
@@ -178,7 +177,7 @@ class JDCNode(QTreeWidgetItem):
         """
         Cette methode a pour but de commentariser la commande pointee par self
         """
-        # On traite par une exception le cas ou l'utilisateur final cherche a désactiver
+        # On traite par une exception le cas où l'utilisateur final cherche à désactiver
         # (commentariser) un commentaire.
         try :
             pos=self.treeParent.children.index(self)
@@ -295,7 +294,7 @@ class JDCNode(QTreeWidgetItem):
           child=old_obj[-1]
           child.affichePanneau() 
         except:
-          # Souci pour gerer les copies des AFFE d'une commande à l autre
+          # Souci pour gérer les copies des AFFE d'une commande à l autre
           try :
              child=self.children[index]
              child.affichePanneau() 
@@ -347,7 +346,7 @@ class JDCNode(QTreeWidgetItem):
             if noeud.treeParent.children.index(noeud) < index : index=noeud.treeParent.children.index(noeud)
         if index < 0 : index =0
 
-        # Cas ou on détruit dans une ETape
+        # Cas ou on détruit dans une Etape
         if index == 9999 : 
               parentPosition=self.treeParent
               while not(isinstance(parentPosition, compojdc.Node)):
@@ -476,8 +475,8 @@ class JDCNode(QTreeWidgetItem):
 
     def doPaste(self,node_selected,pos='after'):
         """
-            Déclenche la copie de l'objet item avec pour cible
-            l'objet passé en argument : node_selected
+            Déclenche la copie de l'objet item avec pour cible
+            l'objet passé en argument : node_selected
         """
         #print 'je passe dans doPaste'
         objet_a_copier = self.item.get_copie_objet()
@@ -486,7 +485,7 @@ class JDCNode(QTreeWidgetItem):
 
     def doPasteCommande(self,objet_a_copier,pos='after'):
         """
-          Réalise la copie de l'objet passé en argument qui est nécessairement
+          Réalise la copie de l'objet passé en argument qui est nécessairement
           une commande
         """
         child=None
@@ -498,7 +497,7 @@ class JDCNode(QTreeWidgetItem):
 
     def doPastePremier(self,objet_a_copier):
         """
-           Réalise la copie de l'objet passé en argument (objet_a_copier)
+           Réalise la copie de l'objet passé en argument (objet_a_copier)
         """
         objet = objet_a_copier.item.get_copie_objet()
         child = self.append_child(objet,pos='first')
index 3f2c96d07d7b1671755ae8222ec67d9758b32de1..5f9b2eaa29b8c705787e71cfe8fb5c108e6ea1c8 100644 (file)
@@ -157,7 +157,7 @@ class JDCEditor(QSplitter):
             if txt_exception:
                 self.jdc = None
                 qApp.restoreOverrideCursor()
-                self.affiche_infos(tr("Erreur fatale au chargement de %s",str(fichier)),Qt.red)
+                self.affiche_infos(tr("Erreur fatale au chargement de %s", fichier), Qt.red)
                 if (self.appliEficas.ssIhm == False) : QMessageBox.critical( self, tr("Erreur fatale au chargement d'un fichier"), txt_exception)
             else:
                 comploader.charger_composants("QT")
@@ -850,7 +850,7 @@ class JDCEditor(QSplitter):
       if QFileInfo(fn).exists():
            abort = QMessageBox.warning(self,
                    tr("Sauvegarde du Fichier"),
-                   tr("Le fichier <b>%s</b> existe deja.",str(fn)),
+                   tr("Le fichier <b>%s</b> existe deja.", unicode(fn)),
                    tr("&Ecraser"),
                    self.trUtf8("&Abandonner"))
            if abort == 1 :  return (0, "")
index 00eecd9163a34ed8613bee833ac3f009ec0fee1b..1c4b0221c0cab318948e71da210a7df44185ffa3 100644 (file)
@@ -1,4 +1,3 @@
-# -*- coding: iso-8859-1 -*-
 # Copyright (C) 2007-2013   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
    Ce module contient la classe AsException
 """
 
-# Modules Python
-import types
+# Modules EFICAS
+from strfunc import get_encoding
 
 class AsException(Exception):
-  def __str__(self):
-    if not self.args:
-      return ''
-    elif len(self.args) == 1:
-      return str(self.args[0])
-    else:
-      s=''
-      for e in self.args:
-        if type(e) == types.StringType: s=s+ ' ' + e
-        else:s=s+ ' ' + str(e)
-      return s
+  def __unicode__(self):
+    return " ".join([unicode(x) for x in self.args])
 
+  def __str__(self):
+    return unicode(self).encode(get_encoding())
index 0213907542eb16c52be3f5a19fd20e481400ea97..463738ab923e81aefbf99c17a51b145e041740a5 100644 (file)
@@ -33,6 +33,7 @@ import N_CR
 from N_Exception import AsException
 from N_ASSD import ASSD
 from N_info import message, SUPERV
+from strfunc import get_encoding
 
 
 MemoryErrorMsg = """MemoryError :
@@ -141,7 +142,10 @@ NONE = None
       try:
          if self.appli != None :
             self.appli.affiche_infos('Compilation du fichier de commandes en cours ...')
-         self.proc_compile=compile(self.procedure,self.nom,'exec')
+         # Python 2.7 compile function does not accept unicode filename, so we encode it
+         # with the current locale encoding in order to have a correct traceback
+         encoded_filename = self.nom.encode(get_encoding())
+         self.proc_compile = compile(self.procedure, encoded_filename, 'exec')
       except SyntaxError, e:
          if CONTEXT.debug : traceback.print_exc()
          l=traceback.format_exception_only(SyntaxError,e)
index 7b909f18a4945787f42b603063a48cd396fbae3a..0e5227ff2873cfc386c2fa39d663af62bc2ce275 100644 (file)
@@ -28,6 +28,7 @@ import sys
 # Modules EFICAS
 from N_Exception import AsException
 from N_types     import is_int, is_float, is_complex, is_str, is_sequence, is_assd
+from strfunc import get_encoding
 
 SEP='_'
 
@@ -59,7 +60,11 @@ def callee_where(niveau=4):
    frame=cur_frame(niveau)
    if frame == None: return 0,"inconnu",0,{}
    try:
-     return frame.f_lineno,frame.f_code.co_filename,frame.f_code.co_firstlineno,frame.f_locals
+     # Python 2.7 compile function does not accept unicode filename, so we encode it
+     # with the current locale encoding in order to have a correct traceback.
+     # Here, we convert it back to unicode.
+     filename = unicode(frame.f_code.co_filename, get_encoding())
+     return frame.f_lineno,filename,frame.f_code.co_firstlineno,frame.f_locals
    except:
      return 0,"inconnu",0,{}
 
index e8bb5e844fa27ce760912f25dd2cbf106f287f38..eddbc7ae67dce844ea1a604dda44d4151363d2c6 100644 (file)
@@ -42,6 +42,7 @@ from functools import partial
 
 # Modules EFICAS
 import N_utils
+from strfunc import get_encoding
 
 regex1='=?\s*%s\s*\('
 #commentaire standard precede d'un nombre quelconque de blancs (pas multiligne)
@@ -68,7 +69,7 @@ def _GetNomConceptResultat(ope, level=2):
   lineno = f.f_lineno     # XXX Too bad if -O is used
   #lineno = f_lineno(f)  # Ne marche pas toujours
   co = f.f_code
-  filename = co.co_filename
+  filename = unicode(co.co_filename, get_encoding())
   name = co.co_name
   #pattern pour identifier le debut de la commande
   pattern_oper=re.compile(regex1 % ope)
index 0a38fbe0b8c5d102a282ce963f1c503ae4eaf639..03254488f6096ae5aa276fad0053b4f6d97fecb1 100644 (file)
@@ -222,7 +222,7 @@ class ETAPE(V_MCCOMPO.MCCOMPO):
       """
       self.cr=self.CR(debut=u'Etape : '+self.nom \
                 + u'    ligne : '+`self.appel[0]`\
-                + u'    fichier : '+`self.appel[1]`,
+                + u'    fichier : '+ self.appel[1],
                  fin = u'Fin Etape : '+self.nom)
       self.state = 'modified'
       try:
index 0b0df3bdc47c3d4d6b0f21972cba3c0b769e5571..e603d902ea5c2871c50a8380b4398f66304c1b26 100644 (file)
@@ -128,9 +128,8 @@ class OpenturnsGenerator(PythonGenerator):
 
    def writeDefault(self, fn):
       fileSTD = fn[:fn.rfind(".")] + '.py'
-      f = open( str(fileSTD), 'wb')
-      f.write( self.texteSTD )
-      f.close()
+      with open(fileSTD, 'w') as f:
+        f.write(self.texteSTD)
 
    def getGenerateur (self):
       print "IDM: getGenerateur dans generator_openturns_study.py"