Salome HOME
#12754 fixed i18n accent francais
[tools/sat.git] / src / ElementTree.py
index d11ad7fe2df0838170b29281b9ba457ae134fb6a..0519dab157e44a8b28b34872bda836922278ac00 100644 (file)
@@ -324,6 +324,8 @@ class _ElementInterface:
     # @defreturn Element or None
 
     def find(self, path):
+        if ElementPath.find(self, path) == None:
+            return ElementPath.find(self, path.encode())
         return ElementPath.find(self, path)
 
     ##
@@ -370,7 +372,13 @@ class _ElementInterface:
     # @defreturn string or None
 
     def get(self, key, default=None):
-        return self.attrib.get(key, default)
+        res = self.attrib.get(key, default)
+        if not res:
+            res = self.attrib.get(key.encode(), default)
+        if isinstance(res, bytes):
+            return res.decode()
+        else:
+            return res
 
     ##
     # Sets an element attribute.
@@ -389,8 +397,14 @@ class _ElementInterface:
     # @defreturn list of strings
 
     def keys(self):
-        return self.attrib.keys()
-
+        res = []
+        for key in self.attrib.keys():
+            if isinstance(key, bytes):
+                res.append(key.decode())
+            else:
+                res.append(key)
+        return res
+                
     ##
     # Gets element attributes, as a sequence.  The attributes are
     # returned in an arbitrary order.
@@ -881,6 +895,8 @@ class iterparse:
 
     def __init__(self, source, events=None):
         if not hasattr(source, "read"):
+            # OP TEST
+            print("iterparse.__init__ source = %s" % source)
             source = open(source, "rb")
         self._file = source
         self._events = []
@@ -1057,7 +1073,12 @@ class TreeBuilder:
     def _flush(self):
         if self._data:
             if self._last is not None:
-                text = string.join(self._data, "")
+                text = ""
+                for item in self._data:
+                    try:
+                        text += item
+                    except:
+                        text += item.decode()
                 if self._tail:
                     assert self._last.tail is None, "internal error (tail)"
                     self._last.tail = text
@@ -1150,9 +1171,9 @@ class XMLTreeBuilder:
             parser.StartElementHandler = self._start_list
         except AttributeError:
             pass
-        encoding = None
-        if not parser.returns_unicode:
-            encoding = "utf-8"
+        #encoding = None
+        #if not parser.returns_unicode:
+        #    encoding = "utf-8"
         # target.xml(encoding, None)
         self._doctype = None
         self.entity = {}
@@ -1253,6 +1274,9 @@ class XMLTreeBuilder:
     # @param data Encoded data.
 
     def feed(self, data):
+        # OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb
+        #               de remontee de log des tests
+        #print "TRACES OP - ElementTree.py/XMLTreeBuilder.feed() data = '#%s#'" %data
         self._parser.Parse(data, 0)
 
     ##