2 Ce module contient des modifications mineures du comportement
3 du noyau ou de validation
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 :
16 while ligne[coupure] not in separateurs and coupure > 0:
19 # Il faut augmenter la cesure
21 while ligne[coupure] not in separateurs and coupure < len(ligne)-1 :
23 if coupure == len(ligne)-1:
26 return ligne[:coupure+1]+ '\n' + split(ligne[coupure+1:],cesure)
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')
36 Noyau.N_CR.justify_text=justify_text
40 def encadre_message(texte,motif):
42 Retourne la chaine de caractères texte entourée d'un cadre formés
45 texte = justify_text(texte,cesure=80)
46 lignes = string.split(texte,'\n')
49 if len(ligne)> longueur : longueur = len(ligne)
50 longueur = longueur + 4
51 txt = motif*longueur+'\n'
53 txt = txt + motif + ' '+ligne+' '*(longueur-len(motif+ligne)-2)+motif+'\n'
54 txt = txt + motif*longueur+'\n'
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