Grammalecte  Check-in [23db08c484]

Overview
Comment:[core] display morphologic data in info()
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | core
Files: files | file ages | folders
SHA3-256: 23db08c484b843184a832d3fac852ec6a61951632e76587b51e0862bd95a0391
User & Date: olr on 2025-09-12 13:18:49
Other Links: manifest | tags
Context
2025-09-12
13:27
[fr] update dictionnaries again (due to wrong previous commit) Leaf check-in: c3a309fb13 user: olr tags: trunk, fr
13:18
[core] display morphologic data in info() check-in: 23db08c484 user: olr tags: trunk, core
13:13
[fr] faux positifs et ajustements check-in: 71ddee21a9 user: olr tags: trunk, fr
Changes

Modified gc_core/py/lang_core/gc_functions.py from [8b75051fd9] to [1771d4c3d2].

155
156
157
158
159
160
161


162
163
164
165
166
167


168
169
170
171
172
173
174
155
156
157
158
159
160
161
162
163
164
165
166
167


168
169
170
171
172
173
174
175
176







+
+




-
-
+
+







#### Analyse tokens for graph rules

def g_info (dToken):
    "for debugging: retrieve info of word"
    if not dToken:
        echo("> no token")
        return True
    for sKey, val in dToken.items():
        echo(sKey + ":" + str(val))
    lMorph = dToken["lMorph"]  if "lMorph" in dToken  else _oSpellChecker.getMorph(dToken["sValue"])
    if not lMorph:
        echo("> not in dictionary: " + dToken["sValue"])
        return True
    for sKey, val in dToken.items():
        echo(sKey + ":" + str(val))
    for sMorph in lMorph:
        echo(sMorph)
    return True


def g_value (dToken, sValues, nLeft=None, nRight=None):
    "test if <dToken['sValue']> is in sValues (each value should be separated with |)"
    sValue = "|"+dToken["sValue"]+"|"  if nLeft is None  else "|"+dToken["sValue"][slice(nLeft, nRight)]+"|"
    if sValue in sValues:

Modified gc_lang/fr/dictionnaire/orthographe/FRANCAIS.dic from [222108d243] to [f615e002da].

4988
4989
4990
4991
4992
4993
4994
4995

4996
4997
4998
4999
5000
5001
5002
4988
4989
4990
4991
4992
4993
4994

4995
4996
4997
4998
4999
5000
5001
5002







-
+







appétit/S.()	po:nom	is:mas	di:*	fq:7
appétitif/F.()	po:adj	di:*	fq:5
applaudimètre/S.()	po:nom	is:mas	di:*	fq:4
applaudir/f0p+()	po:v2_itnq__a	di:*	fq:7
applaudissement/S.()	po:nom	is:mas	di:*	fq:6
applaudisseur/Fs()	po:nom	di:*	fq:4
Apple/L'D'Q'	po:npr	is:epi	is:inv	se:soc	se:info	di:*	fq:5
applet/S.()	po:nom	is:mas	et:angl	di:*	fq:4
applet/S.()	po:nom	is:fem	et:angl	di:*	fq:4
applette/S.()	po:nom	is:fem	lx:néo	se:info	et:angl	di:*	fq:2
appli/S.()	po:nom	is:fem	lx:abr	se:info	di:*	fq:5
applicabilité/S.()	po:nom	is:fem	di:*	fq:6
applicable/S.()	po:adj	is:epi	di:*	fq:7
applicage/S.()	po:nom	is:mas	di:*	fq:3
applicateur/Fc()	po:nom	di:*	fq:5
applicatif/F.()	po:adj	di:*	fq:5
51364
51365
51366
51367
51368
51369
51370

51371
51372
51373
51374
51375
51376
51377
51364
51365
51366
51367
51368
51369
51370
51371
51372
51373
51374
51375
51376
51377
51378







+







mémorialiste/S.()	po:nom	is:epi	di:*	fq:5
mémoriel/F+()	po:adj	di:*	fq:5
mémorisable/S.()	po:adj	is:epi	di:*	fq:4
mémorisation/S.()	po:nom	is:fem	di:*	fq:6
mémoriser/a0p+()	po:v1_it___zz	di:*	fq:6
Memphis/L'D'Q'	po:npr	is:epi	is:inv	se:cité	di:*	fq:6
m’en	po:err	di:*	fq:0
m’y	po:err	di:*	fq:0
menaçant/F.()	po:adj	di:*	fq:6
menace/S.()	po:nom	is:fem	di:*	fq:7
menacer/a0p+()	po:v1_it___zz	di:*	fq:7
ménade/S.()	po:nom	is:fem	se:myth	et:grec	di:*	fq:4
ménage/S.()	po:nom	is:mas	di:*	fq:7
ménageable/S.()	po:adj	is:epi	di:*	fq:1
ménagement/S.()	po:nom	is:mas	di:*	fq:6
79459
79460
79461
79462
79463
79464
79465

79466
79467
79468
79469
79470
79471
79472
79460
79461
79462
79463
79464
79465
79466
79467
79468
79469
79470
79471
79472
79473
79474







+







temporisateur/Fc()	po:nom	po:adj	di:*	fq:5
temporisation/S.()	po:nom	is:fem	di:*	fq:5
temporiser/a0p+()	po:v1_it___zz	di:*	fq:6
temporo-pariétal/W.()	po:adj	se:anat	di:*	fq:2
temps/L'D'Q'	po:nom	is:mas	is:inv	se:temps	et:lat	di:*	fq:9
temps-réel/L'D'Q'	po:nom	is:mas	is:sg	di:*	fq:3
t’en	po:err	di:*	fq:0
t’y	po:err	di:*	fq:0
tenable/S.()	po:adj	is:epi	di:*	fq:5
tenace/S.()	po:adj	is:epi	di:*	fq:6
tenacement/L'D'Q'	po:adv	di:*	fq:5
ténacité/S.()	po:nom	is:fem	di:*	fq:6
tenaille/S.()	po:nom	is:fem	di:*	fq:5
tenaillement/S.()	po:nom	is:mas	di:*	fq:3
tenailler/a0p+()	po:v1__t___zz	di:*	fq:5
86979
86980
86981
86982
86983
86984
86985

86986
86987
86988
86989
86990
86991
86992
86981
86982
86983
86984
86985
86986
86987
86988
86989
86990
86991
86992
86993
86994
86995







+







paralimbique/S.()	po:adj	is:epi	se:anat	di:*
perfluoré/F.()	po:nom	po:adj	se:chim	di:*
photophérèse/S.()	po:nom	is:fem	se:méd	di:*
phytoplasme/S.()	po:nom	is:mas	se:bio	et:grec	di:*
plaçable/S.()	po:adj	is:epi	di:*
pluricentenaire/S.()	po:adj	is:epi	se:temps	di:*
proxiphotographie/S.()	po:nom	is:fem	se:image	di:*
recréditer/a0p+()	po:v1__t___zz	di:*
résumable/S.()	po:adj	is:epi	se:litt	di:*
résurrecteur/Fc()	po:adj	se:reli	di:*
riparien/F+()	po:adj	se:géogr	di:*
ripisylve/S.()	po:nom	is:fem	se:sylvi	di:*
ronin/S.()	po:nom	is:mas	se:hist	et:jap	di:*
Rosalinde/L'D'Q'	po:prn	is:fem	is:inv	di:*
sacoglosse/S.()	po:nom	is:fem	se:zool	di:*

Modified gc_lang/fr/modules/tests_modules.py from [4ad642ab21] to [5dcbe6a7fd].

39
40
41
42
43
44
45
46

47
48
49
50

51
52
53
54

55
56
57
58
59
60
61
39
40
41
42
43
44
45

46
47
48
49

50
51
52
53

54
55
56
57
58
59
60
61







-
+



-
+



-
+







            self.assertTrue(self.oSpellChecker.lookup(sWord), sWord)

    def test_lookup_failed (self):
        for sWord in ["Branche", "BRANCHE", "BranchE", "BRanche", "BRAnCHE", "émilie"]:
            self.assertFalse(self.oSpellChecker.lookup(sWord), sWord)

    def test_isvalidtoken (self):
        for sWord in ["Branche", "branche", "BRANCHE", "Émilie", "ÉMILIE", "aujourd'hui", "aujourd’hui", "Aujourd'hui", "Aujourd’hui", "je-suis-vraiment-fatigué", ""]:
        for sWord in ["Branche", "branche", "BRANCHE", "Émilie", "ÉMILIE", "aujourd'hui", "aujourd’hui", "Aujourd'hui", "Aujourd’hui", "je-suis-vraiment-fatigué", "donne-m’en", "tiens-t’y"]:
            self.assertTrue(self.oSpellChecker.isValidToken(sWord), sWord)

    def test_isvalid (self):
        for sWord in ["Branche", "branche", "BRANCHE", "Émilie", "ÉMILIE", "aujourd’hui", "Aujourd’hui"]:
        for sWord in ["Branche", "branche", "BRANCHE", "Émilie", "ÉMILIE", "aujourd’hui", "Aujourd’hui", "M’EN", "T’Y"]:
            self.assertTrue(self.oSpellChecker.isValid(sWord), sWord)

    def test_isvalid_failed (self):
        for sWord in ["BranchE", "BRanche", "BRAnCHE", "émilie", "éMILIE", "émiLie", "aujourd'hui", "Aujourd'hui", ]:
        for sWord in ["BranchE", "BRanche", "BRAnCHE", "émilie", "éMILIE", "émiLie", "aujourd'hui", "Aujourd'hui"]:
            self.assertFalse(self.oSpellChecker.isValid(sWord), sWord)

    def test_suggest (self):
        for sWrong, sSugg in [
            ("chassis", "châssis"),
            ("francais", "français"),
            ("déelirranttesss", "délirantes"),