1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# Lexicon Editor
# by Olivier R.
# License: GPL 3
import unohelper
import uno
import json
import re
import traceback
import helpers
import lxe_strings
import lxe_conj_data
import grammalecte.graphspell as sc
import grammalecte.graphspell.dawg as dawg
import grammalecte.graphspell.ibdawg as ibdawg
import grammalecte.fr.conj as conj
from com.sun.star.task import XJobExecutor
from com.sun.star.awt import XActionListener
from com.sun.star.awt import XKeyListener
def _waitPointer (funcDecorated):
|
<
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# Lexicon Editor
# by Olivier R.
# License: GPL 3
import unohelper
import uno
import json
import re
import traceback
import helpers
import lxe_strings
import grammalecte.graphspell as sc
import grammalecte.graphspell.dawg as dawg
import grammalecte.graphspell.ibdawg as ibdawg
import grammalecte.fr.conj as conj
import grammalecte.fr.conj_generator as conjgen
from com.sun.star.task import XJobExecutor
from com.sun.star.awt import XActionListener
from com.sun.star.awt import XKeyListener
def _waitPointer (funcDecorated):
|
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
|
# tables de conjugaison du 1er et du 2e groupe
cGroup = "1" if sLemma.endswith("er") else "2"
for nCut, sAdd, sFlexTags, sPattern in self._getConjRules(sLemma):
if not sPattern or re.search(sPattern, sLemma):
self.lGeneratedFlex.append((sLemma[0:-nCut]+sAdd, sLemma, ":V" + cGroup + "_" + sVerbTag + sFlexTags))
# participes passés
bPpasVar = "var" if self.xV_pp.State else "invar"
lPpasRules = lxe_conj_data.oConj["V1_ppas"][bPpasVar] if sLemma.endswith("er") else lxe_conj_data.oConj["V2_ppas"][bPpasVar]
for nCut, sAdd, sFlexTags, sPattern in lPpasRules:
if not sPattern or re.search(sPattern, sLemma):
self.lGeneratedFlex.append((sLemma[0:-nCut]+sAdd, sLemma, ":V" + cGroup + "_" + sVerbTag + sFlexTags))
else:
# copie du motif d’un autre verbe : utilisation du conjugueur
if conj.isVerb(sVerbPattern):
oVerb = conj.Verb(sLemma, sVerbPattern)
|
|
|
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
|
# tables de conjugaison du 1er et du 2e groupe
cGroup = "1" if sLemma.endswith("er") else "2"
for nCut, sAdd, sFlexTags, sPattern in self._getConjRules(sLemma):
if not sPattern or re.search(sPattern, sLemma):
self.lGeneratedFlex.append((sLemma[0:-nCut]+sAdd, sLemma, ":V" + cGroup + "_" + sVerbTag + sFlexTags))
# participes passés
bPpasVar = "var" if self.xV_pp.State else "invar"
lPpasRules = conjgen.oConj["V1_ppas"][bPpasVar] if sLemma.endswith("er") else conjgen.oConj["V2_ppas"][bPpasVar]
for nCut, sAdd, sFlexTags, sPattern in lPpasRules:
if not sPattern or re.search(sPattern, sLemma):
self.lGeneratedFlex.append((sLemma[0:-nCut]+sAdd, sLemma, ":V" + cGroup + "_" + sVerbTag + sFlexTags))
else:
# copie du motif d’un autre verbe : utilisation du conjugueur
if conj.isVerb(sVerbPattern):
oVerb = conj.Verb(sLemma, sVerbPattern)
|
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
|
if sFlexion and sTags.startswith(":"):
self.lGeneratedFlex.append((sFlexion, sLemma, sTags))
self._showGenWords()
def _getConjRules (self, sVerb):
if sVerb.endswith("ir"):
# deuxième groupe
return lxe_conj_data.oConj["V2"]
elif sVerb.endswith("er"):
# premier groupe, conjugaison en fonction de la terminaison du lemme
# 5 lettres
if sVerb[-5:] in lxe_conj_data.oConj["V1"]:
return lxe_conj_data.oConj["V1"][sVerb[-5:]]
# 4 lettres
if sVerb[-4:] in lxe_conj_data.oConj["V1"]:
if sVerb.endswith(("eler", "eter")):
return lxe_conj_data.oConj["V1"][sVerb[-4:]]["1"]
return lxe_conj_data.oConj["V1"][sVerb[-4:]]
# 3 lettres
if sVerb[-3:] in lxe_conj_data.oConj["V1"]:
return lxe_conj_data.oConj["V1"][sVerb[-3:]]
return lxe_conj_data.oConj["V1"]["er"]
else:
# troisième groupe
return [ [0, "", ":Y/*", false] ]
def _showGenWords (self):
xGridDataModel = self.xGridModelNew.GridDataModel
xGridDataModel.removeAllRows()
|
|
|
|
|
|
|
|
|
|
|
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
|
if sFlexion and sTags.startswith(":"):
self.lGeneratedFlex.append((sFlexion, sLemma, sTags))
self._showGenWords()
def _getConjRules (self, sVerb):
if sVerb.endswith("ir"):
# deuxième groupe
return conjgen.oConj["V2"]
elif sVerb.endswith("er"):
# premier groupe, conjugaison en fonction de la terminaison du lemme
# 5 lettres
if sVerb[-5:] in conjgen.oConj["V1"]:
return conjgen.oConj["V1"][sVerb[-5:]]
# 4 lettres
if sVerb[-4:] in conjgen.oConj["V1"]:
if sVerb.endswith(("eler", "eter")):
return conjgen.oConj["V1"][sVerb[-4:]]["1"]
return conjgen.oConj["V1"][sVerb[-4:]]
# 3 lettres
if sVerb[-3:] in conjgen.oConj["V1"]:
return conjgen.oConj["V1"][sVerb[-3:]]
return conjgen.oConj["V1"]["er"]
else:
# troisième groupe
return [ [0, "", ":Y/*", false] ]
def _showGenWords (self):
xGridDataModel = self.xGridModelNew.GridDataModel
xGridDataModel.removeAllRows()
|