1 # -*- coding: utf-8 -*-
2 #Author: Pierre Ratinaud
3 #Copyright (c) 2008-2020 Pierre Ratinaud
4 #modification pour python 3 : Laurent Mérat, 6x7 - mai 2020
7 #------------------------------------
8 # import des modules wx
9 #------------------------------------
13 #------------------------------------
14 # import des fichiers du projet
15 #------------------------------------
16 from corpus import Corpus
19 def checkline(line, lnb) :
20 if line.startswith('****') or (line[0:4].isdigit() and '*' in line) :
22 return [False, 1, lnb]
26 gv = [val for val in lp if not val.startswith('*') or ('-' in val)]
28 return [False, 4, lnb]
31 elif line.startswith('-*') :
32 if ' ' in line.strip() :
33 return [False, 2, lnb]
37 return [False, 3, lnb]
44 def __init__(self, parent):
46 self.corpus = Corpus(parent)
47 self.corpus.parametre['encodage'] = parent.corpus_encodage
48 self.corpus.parametre['filename'] = parent.filename
49 self.corpus.content = parent.content
50 res = [checkline(line, i) for i, line in enumerate(self.corpus.content.strip().splitlines())]
51 res_nok = [val for val in res if not val[0]]
52 if len(res_nok) != 0 :
53 erreur_label = {1 : "une variable étoilée contient un espace",
54 2 : "une thématique contient un espace",
55 3 : "étoile dans ligne de texte",
56 4 : "une variable étoilée contient un espace ou un -"
58 erreur = [['ligne %i' % val[2], erreur_label[val[1]]] for val in res_nok]
59 txt = '\n----------------\n'.join(['\t'.join(line) for line in erreur])
61 deb = self.parent.text_ctrl_txt.XYToPosition(0,val[2])
62 fin = deb + self.parent.text_ctrl_txt.GetLineLength(val[2])
63 self.parent.text_ctrl_txt.SetStyle(deb, fin, wx.TextAttr("#ff9c00", "#000000"))
64 msg = "Veuillez corriger les fautes suivantes dans un éditeur de texte\npuis rechargez le corpus :\n\n" + txt
65 win = wx.lib.dialogs.ScrolledMessageDialog(self.parent, msg, "Erreurs")
70 win = wx.MessageDialog(parent, "Pas de fautes !", "Corpus ok", wx.OK | wx.ICON_INFORMATION)