]> SALOME platform Git repositories - tools/eficas.git/blob - Editeur/patches.py
Salome HOME
CCAR: Modified Files:
[tools/eficas.git] / Editeur / patches.py
1 """
2    Ce module contient des modifications mineures du comportement
3    du noyau ou de validation
4 """
5 import string
6
7 if 1:
8    # Modification de la fonction justify_text de Noyau.N_CR
9    separateurs=(' ',',','/')
10    def split(ligne,cesure):
11        ligne= string.rstrip(ligne)
12        if len(ligne) <= cesure : 
13           return ligne
14        else:
15           coupure=cesure
16           while ligne[coupure] not in separateurs and coupure > 0:
17              coupure = coupure - 1
18           if coupure == 0:
19              # Il faut augmenter la cesure
20              coupure =cesure
21              while ligne[coupure] not in separateurs and coupure < len(ligne)-1 :
22                 coupure = coupure + 1
23           if coupure == len(ligne)-1:
24              return ligne
25           else:
26              return ligne[:coupure+1]+ '\n' + split(ligne[coupure+1:],cesure)
27
28    def justify_text(texte='',cesure=50):
29        texte = string.strip(texte)
30        liste_lignes = string.split(texte,'\n')
31        l=[split(l,cesure) for l in liste_lignes]
32        texte_justifie=string.join(l,'\n')
33        return texte_justifie
34    try:
35       import Noyau.N_CR
36       Noyau.N_CR.justify_text=justify_text
37    except:
38       pass
39
40 def encadre_message(texte,motif):
41   """
42      Retourne la chaine de caractères texte entourée d'un cadre formés
43      d'éléments 'motif'
44   """
45   texte = justify_text(texte,cesure=80)
46   lignes = string.split(texte,'\n')
47   longueur = 0
48   for ligne in lignes :
49     if len(ligne)> longueur : longueur = len(ligne)
50   longueur = longueur + 4
51   txt = motif*longueur+'\n'
52   for ligne in lignes :
53     txt = txt + motif + ' '+ligne+' '*(longueur-len(motif+ligne)-2)+motif+'\n'
54   txt = txt + motif*longueur+'\n'
55   return txt
56
57 if __name__ == "__main__":
58    print encadre_message(motif='!',
59 texte="""- Il faut au moins un mot-clé parmi : ('DEBUT', 'POURSUITE')     
60 - Il faut au moins un mot-clé parmi : ('FIN',)               
61 - Il faut qu'au moins un objet de la liste : ('DEBUT', 'POURSUITE') soit suivi d'au moins un objet de la liste : ('FIN',) 
62 ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
63 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,yyyyyyyyyyyyyyyy
64 """)
65
66
67