Salome HOME
Issue #1865: Create a field
[modules/shaper.git] / utils.py
1 # coding: utf-8
2 import os, os.path
3
4 #SHAPER_SRC = os.environ['SHAPER_SRC']
5 SHAPER_SRC = os.environ['PWD']
6 # VERBOSE_FLAG = os.environ['VERBOSE_FLAG']
7 VERBOSE_FLAG = ""
8 ENCODING = u"utf-8"
9 OPERATORS=[u">", u"<", u"+", u"=", u"-", u"*", u"/"]
10
11 def create_warning_generator(fichier):
12         """
13         fichier est le fichier de log cpplint ouvert à la position courante.
14         Un trou dans le fichier résulte en l'arrêt de la génération
15         """
16         ligne = "-"
17         ligne = fichier.readline()
18         i = 1
19         while ligne.strip("\n") :
20                 ligne = ligne.decode(ENCODING)
21                 liste = ligne.split(":")
22                 print "Size of liste = ", len(liste)
23                 print "ligne = ", ligne
24                 print "n° ligne = ", i
25                 print "XXX : ", ligne.find(u'Done processing ')
26
27                 if len(liste) < 3:
28                         if ligne.find(u'Done processing ') == -1 and ligne.find(u'Category ') == -1 and ligne.find(u'Total errors found: ') == -1:
29                                 raise Exception(u"Fichier de log mal formé")
30                         else:
31                                 ligne = fichier.readline()
32                                 i += 1
33                                 continue
34                 elif len(liste) != 3:
35                         item1=liste[0]
36                         item2=liste[1]
37                         merge = u""
38                         sep = u""
39                         for item in liste[2:]:
40                                 merge += sep
41                                 merge += item
42                                 sep = u":"
43                         liste = [item1, item2, merge]
44                 ligne = fichier.readline()
45                 i += 1
46                 yield liste[0], int(liste[1]), liste[2]
47
48 def get_src_path(path):
49         return os.path.normpath(os.path.join(SHAPER_SRC, path))
50
51 def get_line_no(path, nol):
52         """retourne la ligne No nol du fichier path (relatif à DST_SRC_PARENT) sous forme d'un unicode"""
53         ligne = ""
54         fic = open(get_src_path(path), "r")
55         for i in xrange(nol):
56                 ligne = fic .readline()
57         fic.close()
58         ligne_u = ligne.decode(ENCODING)
59         return ligne_u
60
61 def fic_readlines(fic):
62         tmp=fic.readlines()
63         liste=[]
64         for ligne in tmp:
65                 liste.append(ligne.decode(ENCODING))
66         return liste
67
68 def fic_writelines(liste):
69         liste2=[]
70         for ligne in liste:
71                 liste2.append(ligne.encode(ENCODING))
72         return liste2