2 # -*- coding: utf-8 -*-
3 #Author: Pierre Ratinaud
4 #Copyright (c) 2010, Pierre Ratinaud
6 from corpus import Corpus
11 def checkline(line, lnb) :
12 if line.startswith(u'****') or (line[0:4].isdigit() and u'*' in line) :
14 return [False, 1, lnb]
18 gv = [val for val in lp if not val.startswith(u'*') or (u'-' in val)]
20 return [False, 4, lnb]
24 elif line.startswith(u'-*') :
25 if u' ' in line.strip() :
26 return [False, 2, lnb]
30 return [False, 3, lnb]
36 def __init__(self, parent):
38 self.corpus = Corpus(parent)
39 self.corpus.parametre['encodage'] = parent.corpus_encodage
40 self.corpus.parametre['filename'] = parent.filename
41 self.corpus.content = parent.content
42 res = [checkline(line, i) for i, line in enumerate(self.corpus.content.strip().splitlines())]
43 res_nok = [val for val in res if not val[0]]
44 if len(res_nok) != 0 :
45 erreur_label = {1 : u"une variable étoilée contient un espace",
46 2 : u"une thématique contient un espace",
47 3 : u"étoile dans ligne de texte",
48 4 : u"une variable étoilée contient un espace ou un -"
50 erreur = [[u'ligne %i' % val[2], erreur_label[val[1]]] for val in res_nok]
51 txt = '\n----------------\n'.join(['\t'.join(line) for line in erreur])
53 deb = self.parent.text_ctrl_txt.XYToPosition(0,val[2])
54 fin = deb + self.parent.text_ctrl_txt.GetLineLength(val[2])
55 self.parent.text_ctrl_txt.SetStyle(deb, fin, wx.TextAttr("#ff9c00", "#000000"))
56 msg = u"Veuillez corriger les fautes suivantes dans un éditeur de texte\npuis rechargez le corpus :\n\n" + txt
57 win = wx.lib.dialogs.ScrolledMessageDialog(self.parent, msg, u"Erreurs")
62 win = wx.MessageDialog(parent, "Pas de fautes !", "Corpus ok", wx.OK | wx.ICON_INFORMATION)