Index: doc/build.md ================================================================== --- doc/build.md +++ doc/build.md @@ -1,22 +1,22 @@ +# Building Grammalecte # How to build Grammalecte ## Required ## For building: -* Python 3.7+ -* NodeJS - * npm - * web-ext : `https://developer.mozilla.org/fr/Add-ons/WebExtensions/Getting_started_with_web-ext` +* Python 3.7+ > [download](https://www.python.org/) +* NodeJS > [download](https://nodejs.org/) + * npm (should be installed with NodeJS) + * web-ext > [instructions](https://extensionworkshop.com/documentation/develop/getting-started-with-web-ext/) For testing: -* Firefox Developper -* Firefox Nightly -* Thunderbird +* Firefox Developer > [download](https://www.mozilla.org/en-US/firefox/developer/) +* Thunderbird > [download](https://www.thunderbird.net/) ## Commands ## **Build a language** @@ -59,11 +59,11 @@ `-fx --firefox` > Launch Firefox Developper. > Unit tests can be launched from the menu (Tests section). -`-we --webext` +`-fxn --firefox_nightly` > Launch Firefox Nightly. > Unit tests can be launched from the menu (Tests section). `-tb --thunderbird` Index: gc_lang/fr/build.py ================================================================== --- gc_lang/fr/build.py +++ gc_lang/fr/build.py @@ -51,14 +51,18 @@ for spf in ["LICENSE.txt", "LICENSE.fr.txt"]: hZip.write(spf) dVars = _createOptionsForThunderbird(dVars) helpers.addFolderToZipAndFileFile(hZip, "gc_lang/"+sLang+"/mailext", "", dVars, True) hZip.close() - spExtension = dVars['win_tb_debug_extension_path'] if platform.system() == "Windows" else dVars['linux_tb_debug_extension_path'] - file_util.copy_file(spfZip, spExtension + "/" + dVars['tb_identifier']+ ".xpi") # Filename for TB is just - spExtension = dVars['win_tb_beta_extension_path'] if platform.system() == "Windows" else dVars['linux_tb_beta_extension_path'] - file_util.copy_file(spfZip, spExtension + "/" + dVars['tb_identifier']+ ".xpi") # Filename for TB is just + #spExtension = dVars['win_tb_debug_extension_path'] if platform.system() == "Windows" else dVars['linux_tb_debug_extension_path'] + #if os.path.isdir(spExtension): + # file_util.copy_file(spfZip, spExtension + "/" + dVars['tb_identifier']+ ".xpi") # Filename for TB is just + # print(f"TB extension copied in <{spExtension}>") + #spExtension = dVars['win_tb_beta_extension_path'] if platform.system() == "Windows" else dVars['linux_tb_beta_extension_path'] + #if os.path.isdir(spExtension): + # print(f"TB extension copied in <{spExtension}>") + # file_util.copy_file(spfZip, spExtension + "/" + dVars['tb_identifier']+ ".xpi") # Filename for TB is just def _createOptionsForThunderbird (dVars): dVars['sXULTabs'] = "" dVars['sXULTabPanels'] = "" Index: gc_lang/fr/config.ini ================================================================== --- gc_lang/fr/config.ini +++ gc_lang/fr/config.ini @@ -57,10 +57,11 @@ tb_name = Grammalecte [fr] win_tb_path = C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe win_tb_beta_path = C:\Program Files\Thunderbird Daily\thunderbird.exe linux_tb_path = /usr/bin/thunderbird linux_tb_beta_path = /usr/bin/thunderbird +# useless now win_tb_debug_extension_path = D:\_temp\tb-debug.profile\extensions linux_tb_debug_extension_path = ~/tb-debug.profile/extensions win_tb_beta_extension_path = D:\_temp\tb-beta.profile\extensions linux_tb_beta_extension_path = ~/tb-beta.profile/extensions # Set Thunderbird folder in your PATH variable Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -1996,18 +1996,21 @@ <<- =>> exclude(\4, ":[123][sp]") en peine <<- =>> exclude(\2, ":V") - par *WORD - <<- =>> exclude(\2, ":[123][sp]") + m’ [dame|sieur] + <<- ~>> ␣ nombre [de|d’|des] [@:[NA]||,] <<- not morph(<1, ":D") >>> <<- morph(<1, ":A.*:[me]:[si]") =>> add_morph(\1, [">nombre/:G:D"]) <<- __else__ =>> define(\1, [">nombre/:G:D"]) + par *WORD + <<- =>> exclude(\2, ":[123][sp]") + plein [de|d’] @:[AN] <<- not morph(<1, ":D.*:m|>(?:être|(?:re|)devenir|rester|demeurer|sembler|para[iî]tre)/") =>> =define(\1, [":G"]) source [de|d’] <<- morph(<1, ">(?:être|(?:re|)devenir|rester|demeurer|sembler|para[iî]tre)/") =>> define(\1, [":LV"]) @@ -8124,11 +8127,12 @@ <<- /conf/ not \1.isupper() and not \2.isupper() -1>> de|dès # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. <<- /conf/ __also__ and hasSimil(\2, ":[NA].*:[pi]") -2>> =suggSimil(\2, ":[NA].*:[pi]", True) # Confusion probable. Pour la préposition, écrivez “dès” ou “de”. des ~^\d{2,5}$ [|,] des ~^\d{2,5}$ @:¬:[NA].*:[ip]|>(?:à|et|ou)/ - <<- /conf/ not value(<1, "|%|") and not morph(<1, ":B|>(?:pourcent|barre|seuil)/") -1>> dès # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s + <<- /conf/ not value(<1, "|%|") and not morph(<1, ":B|>(?:pourcent|barre|seuil|aucun|plusieurs|certaine?s|une?)/") + -1>> dès # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s [dés|des] *NUM ans [dés|des] $:B ans [dés|des] un an <<- /conf/ not morph(<1, ":R|>(?:approcher|anniversaire|cap|célébration|commémoration|occasion|passage|programme|terme|classe|autour|celui|ceux|celle|celles)/") and not value(>1, "|de|du|des|d’|") @@ -8201,10 +8205,12 @@ TEST: J’ai des X230. TEST: Pour les enfants placés, l’angoisse du passage des 18 ans TEST: C’est la fin des 35 heures. TEST: 98 % des 18‑29 ans considéraient cela comme évident TEST: Gagnez trois dés lors d’un test +TEST: aucun des 19 peuples concernés n’en veut +TEST: un des 18 sera bientôt là. # diagnostic / diagnotique // pronostic / pronostique // public / publique __conf_diagnostic_pronostique__ [ce|un|du|mon|notre|votre|quel] [diagnostique|pronostique|publique] @@ -8744,11 +8750,11 @@ TEST: Très {{jeûne}}, elle a su qu’elle ne voulait pas d’une vie ordinaire. # la / l’a __conf_il_elle_on_la_l_a_vconj__ - [il|elle|on] ?[nous|vous]¿ l’ a ~^[bcdfghjklmnpqrstvwxz] + [il|elle|on|iel] ?[nous|vous]¿ l’ a ~^[bcdfghjklmnpqrstvwxz] <<- /conf/ morph(\-1, ":[123][sp]", ":[GQ]") --3:-2>> la # Confusion probable. Pour un pronom objet féminin, écrivez “la”. [ne|me|te|se] l’ a ~^[bcdfghjklmnpqrstvwxz] <<- /conf/ morph(\4, ":[123][sp]", ":[GQ]") -2:3>> la # Confusion probable. Pour un pronom objet féminin, écrivez “la”. @@ -9646,10 +9652,13 @@ TEST: {{Puis de potentiel}} harmonique TEST: Beaucoup d’abord, ensuite plusieurs puis quelques-uns seulement. TEST: Il faut discrètement en creuser plusieurs puis arrêter aussitôt. TEST: Il vient tel quel puis semble avoir des doutes. TEST: avec un puis plusieurs autres. + + + # quand / quant / qu’en __conf_quant_quand_qu_en__ quand à @@ -11217,62 +11226,66 @@ !!!! Adverbes de négation !! !! !! __neg_ne_manquant__ - [|,|(] je [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:1s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] tu [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:2s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [il|elle|on] [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:3s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] nous [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:1p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] vous [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:2p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [ils|elles] [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:3p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] je [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:1s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] tu [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:2s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [il|elle|on|iel] [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:3s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] nous [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:1p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] vous [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:2p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [ils|elles|iels] [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur] @:3p¬:Ov [pas|rien|jamais|guère|point] <<- /neg/ -3>> ne \3 # Ne … \5 : il manque l’adverbe de négation. - [|,|(] [je|j’] [en|y] @:1s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] tu [en|y] @:2s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [il|elle|on] [en|y] @:3s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] nous [en|y] @:1p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] vous [en|y] @:2p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [ils|elles] [en|y] @:3p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [je|j’] [en|y] @:1s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] tu [en|y] @:2s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [il|elle|on|iel] [en|y] @:3s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] nous [en|y] @:1p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] vous [en|y] @:2p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [ils|elles|iels] [en|y] @:3p¬:Ov [pas|rien|jamais|guère|point] <<- /neg/ -3>> n’\3 # Ne … \5 : il manque l’adverbe de négation. - [|,|(] je [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:1s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] tu [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:2s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [il|elle|on] [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:3s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] nous [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:1p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] vous [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:2p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [ils|elles] [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:3p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] je [le|la|l’|les] [lui|leur|en|y] @:1s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] tu [le|la|l’|les] [lui|leur|en|y] @:2s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [il|elle|on] [le|la|l’|les] [lui|leur|en|y] @:3s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] nous [le|la|l’|les] [lui|leur|en|y] @:1p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] vous [le|la|l’|les] [lui|leur|en|y] @:2p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [ils|elles] [le|la|l’|les] [lui|leur|en|y] @:3p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] je [lui|leur] en @:1s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] tu [lui|leur] en @:2s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [il|elle|on] [lui|leur] en @:3s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] nous [lui|leur] en @:1p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] vous [lui|leur] en @:2p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [ils|elles] [lui|leur] en @:3p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] je [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:1s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] tu [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:2s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [il|elle|on|iel] [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:3s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] nous [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:1p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] vous [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:2p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [ils|elles|iels] [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:3p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] je [le|la|l’|les] [lui|leur|en|y] @:1s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] tu [le|la|l’|les] [lui|leur|en|y] @:2s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [il|elle|on|iel] [le|la|l’|les] [lui|leur|en|y] @:3s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] nous [le|la|l’|les] [lui|leur|en|y] @:1p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] vous [le|la|l’|les] [lui|leur|en|y] @:2p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [ils|elles|iels] [le|la|l’|les] [lui|leur|en|y] @:3p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] je [lui|leur] en @:1s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] tu [lui|leur] en @:2s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [il|elle|on|iel] [lui|leur] en @:3s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] nous [lui|leur] en @:1p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] vous [lui|leur] en @:2p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [ils|elles|iels] [lui|leur] en @:3p¬:Ov [pas|rien|jamais|guère|point] <<- /neg/ -3>> ne \3 # Ne … \6 : il manque l’adverbe de négation. - [|,|(] [je|j’] @:1s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] tu @:2s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [il|elle|on] @:3s¬:Ov [pas|rien|jamais|guère|point] - [|,|(] nous @:1p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] vous @:2p¬:Ov [pas|rien|jamais|guère|point] - [|,|(] [ils|elles] @:3p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [je|j’] @:1s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] tu @:2s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [il|elle|on|iel] @:3s¬:Ov [pas|rien|jamais|guère|point] + [|,|(] nous @:1p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] vous @:2p¬:Ov [pas|rien|jamais|guère|point] + [|,|(] [ils|elles|iels] @:3p¬:Ov [pas|rien|jamais|guère|point] <<- /neg/ morph(\3, ">[aâeéêiîoôuœæ]") -3>> n’\3 # Ne … \4 : il manque l’adverbe de négation. <<- /neg/ __else__ -3>> ne \3 # Ne … \4 : il manque l’adverbe de négation. -TEST: __neg__ On {{a}} pas compris. -TEST: __neg__ Il {{part}} pas encore. -TEST: __neg__ On {{vous}} a pas compris. -TEST: __neg__ On {{en}} a pas. -TEST: __neg__ Il {{y}} a jamais d’eau. -TEST: __neg__ je {{deviendrai}} pas hargneux. -TEST: __neg__ il {{le}} lui donne pas souvent. + [|,|(] [je|tu|il|elle|on|iel|nous|vous|ils|elles|iels] >avoir qu’ à + <<- /neg/ -3>> n’\3 # Locution “n’avoir qu’à” : il manque l’adverbe de négation. + +TEST: __neg__ On {{a}} pas compris. ->> n’a +TEST: __neg__ Il {{part}} pas encore. ->> ne part +TEST: __neg__ On {{vous}} a pas compris. ->> ne vous +TEST: __neg__ On {{en}} a pas. ->> n’en +TEST: __neg__ Il {{y}} a jamais d’eau. ->> n’y +TEST: __neg__ je {{deviendrai}} pas hargneux. ->> ne deviendrai +TEST: __neg__ il {{le}} lui donne pas souvent. ->> ne le +TEST: __neg__ il {{a}} qu’à venir demain ->> n’a !! !! !!!! Infinitif !! @@ -12116,12 +12129,12 @@ d’ ici quelques [secondes|minutes|heures|jours|mois|trimestres|semestres|années|décennies|siècles|millénaires] d’ intérêt général d’ ordinaire d’ origine [inconnue|douteuse|plébéienne|aristocratique] d’ ordre général - d’ où qu’ [il|elle|on] vienne - d’ où qu’ [ils|elles] viennent + d’ où qu’ [il|elle|on|iel] vienne + d’ où qu’ [ils|elles|iels] viennent d’ ouest en est d’ [ors|ores] et déjà d’ un autre côté d’ un [bout|jour] à l’ autre d’ un côté comme [de|d’] l’ autre @@ -12516,11 +12529,11 @@ jusqu’ à ce que mort s’ ensuive jusqu’ à ce que [j’|il|elle|on] en sache plus jusqu’ à ce que tu en saches plus jusqu’ à ce que nous en sachions plus jusqu’ à ce que vous en sachiez plus - jusqu’ à ce que [ils|elles] en sachent plus + jusqu’ à ce que [ils|elles|iels] en sachent plus jusque-là ?[de|d’]¿ là ?[de|d’]¿ là-bas ?[de|d’]¿ là-haut ?[de|d’]¿ là-dedans @@ -12688,14 +12701,14 @@ quand bon [me|te|lui|nous|vous|leur] [semble|semblera|semblait] quant à [ça|cela|ceci] que [ça|ceci|cela] [me|te|lui|leur|nous|vous] plaise ou non que je [le|l’] veuille ou non que tu [le|l’] veuilles ou non - qu’ [il|elle|on] [le|l’] veuille ou non + qu’ [il|elle|on|iel] [le|l’] veuille ou non que vous [le|l’] vouliez ou non que nous [le|l’] voulions ou non - qu’ [ils|elles] [le|l’] veuillent ou non + qu’ [ils|elles|iels] [le|l’] veuillent ou non qu’ à cela ne tienne quel qu’ en soit [le|l’] [moyen|prix|danger] quel qu’ en soit [le|l’] risque ?financier¿ quelle qu’ en soit la [cause|raison] quelque [part|temps] @@ -12738,11 +12751,11 @@ sans [que|qu’] je [le|l’] [sache|susse] sans [que|qu’] tu [le|l’] [saches|susses] sans [que|qu’] [il|elle|on|$:M] [le|l’] [sache|sût] sans [que|qu’] nous [le|l’] [sachions|sussions] sans [que|qu’] vous [le|l’] [sachiez|sussiez] - sans [que|qu’] [ils|elles] [le|l’] [sachent|sussent] + sans [que|qu’] [ils|elles|iels] [le|l’] [sachent|sussent] sans queue ni tête sans raison apparente sans vouloir [me|m’|te|t’|lui|nous|vous|leur] manquer de respect sans y [parvenir|réussir|réfléchir|songer|penser] sans y [réfléchir|songer|penser] à [deux|2] fois @@ -13308,18 +13321,18 @@ pour autant [que|qu’] [je|il|elle|on] le sache pour autant [que|qu’] tu le saches pour autant [que|qu’] nous le sachions pour autant [que|qu’] vous le sachiez - pour autant [que|qu’] [ils|elles] le sachent + pour autant [que|qu’] [ils|elles|iels] le sachent <<- ~>> * pour autant [que|qu’] [je|il|elle|on] sache [,|@¬:Y|] pour autant [que|qu’] tu saches [,|@¬:Y|] pour autant [que|qu’] nous sachions [,|@¬:Y|] pour autant [que|qu’] vous sachiez [,|@¬:Y|] - pour autant [que|qu’] [ils|elles] sachent [,|@¬:Y|] + pour autant [que|qu’] [ils|elles|iels] sachent [,|@¬:Y|] <<- ~1:5>> * pour cette raison [que|qu’] <<- ~1:3>> * @@ -13432,10 +13445,11 @@ >centre [de|d’] rétention ?[préventive|administrative]¿ >chair à [pâté|>canon] >chair [de|d’] poule >chambre à [coucher|gaz] >chambre [de|d’] [agriculture|hôte|hôtel|hôtes|commerce|compensation|décompression|dégrisement] + >chantier [de|d’] construction [>chariot|>charriot] à [bagages|roulettes] >chasse à courre >chasse à l’ homme >chasse d’ eau >chasseur [de|d’] primes @@ -13467,10 +13481,11 @@ >con comme un balai >con comme une valise sans >poignée >conseiller d’ orientation [scolaire|professionnelle] >contrôle [de|d’] routine >convention [récepteur|générateur] + >coque [de|d’] noix >corbeille à >pain >corvéable à merci >coup [de|d’] [avance|balai|barre|bâton|bec|bélier|bite|blues|bol|botte|boule|boutoir|cœur|chaud|coude|couteau|dé|dent|déprime|éclat|épaule|épée|estoc|État|foudre|fil|froid|genou|grâce|>griffe|grisou|gueule|hache|hanche|jarnac|jeune|jus|klaxon|main|maître|maitre|marteau|massue|nostalgie|œil|patte|pied|poignard|poing|poker|pouce|pute|queue|rabot|rein|sabre|sabot|sang|savate|semonce|sifflet|soleil|surin|tête|théâtre|tonnerre|trique|torchon|vent|vieux] >coup [de|d’] baguette ?magique¿ >coup d’ épée dans l’ eau @@ -13501,11 +13516,11 @@ >droit comme un i >eau [de|d’] [bouleau|bleuet|chaux|coco|javel|jouvence|mer|parfum|pluie|seltz|source|vie] >eau [de|d’] noix [de|d’] coco >économie [de|d’] >bout [de|d’] >chandelle >éditeur [de|d’] presse - >effet de bord + >effet [de|d’] bord >élément à charge >emploi du temps >enterrement [de|d’] vie [de|d’] garçon >enterrement [de|d’] vie [de|d’] jeune fille >entrée [de|d’] service @@ -13766,10 +13781,11 @@ >vente à domicile >vente aux enchères >vérification [de|d’] routine vernis à ongles >verre à pied + >virage à [*NUM|:B] degrés >voie [de|d’] [recours|perdition] >vol à l’ étalage >vol à la [sauvette|tire] >vol à main armée >volée [de|d’] bois vert @@ -13777,10 +13793,11 @@ >zone [de|d’] confort >zone [de|d’] transit ?principal¿ <<- ~2:0>> * <<- =>> =select(\1, ":N") + >court sur pattes [daté+ses] du [1er|1ᵉʳ|1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12|13|14|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31] {mois} ?[prochain|passé|dernier|~^[0-9]{2,5}$]¿ >fou de rage ?[contenue|retenue]¿ >mort de trouille <<- ~2:0>> * @@ -18213,14 +18230,14 @@ <<- /conf/ not morph(<1, ":R") --2>> ferez # Confusion probable. Vous confondez le verbe “ferrer” avec le verbe “faire”. vous ?[ne|n’]¿ ?[nous|vous|les|le|la|l’]¿ ferriez $:Y <<- /conf/ not morph(<1, ":R") --2>> ferez # Confusion probable. Vous confondez le verbe “ferrer” avec le verbe “faire”. - [ils|elles] ?[ne|n’]¿ ?[nous|vous|les|le|la|l’]¿ ferront $:Y + [ils|elles|iels] ?[ne|n’]¿ ?[nous|vous|les|le|la|l’]¿ ferront $:Y <<- /conf/ not morph(<1, ":R") --2>> feront # Confusion probable. Vous confondez le verbe “ferrer” avec le verbe “faire”. - [ils|elles] ?[ne|n’]¿ ?[nous|vous|les|le|la|l’]¿ ferraient $:Y + [ils|elles|iels] ?[ne|n’]¿ ?[nous|vous|les|le|la|l’]¿ ferraient $:Y <<- /conf/ not morph(<1, ":R") --2>> feraient # Confusion probable. Vous confondez le verbe “ferrer” avec le verbe “faire”. TEST: nous vous {{ferrons}} apparaître au générique TEST: nous vous {{ferrions}} prendre TEST: vous les {{ferrez}} pendre demain @@ -18882,10 +18899,13 @@ <<- /conf/ -3>> patte # Confusion. Une pâte est une matière pâteuse. Pour désigner le membre d’un animal, écrivez “patte”. >retomber sur [mes|tes|ses|ces|nos|vos|leur|leurs] [>pâte|pat] <<- /conf/ --1>> pattes # Confusion. Une pâte est une matière pâteuse. Pour désigner le membre d’un animal, écrivez “patte”. + >court sur [>pâte|pat] + <<- /conf/ --1>> pattes # Confusion. Une pâte est une matière pâteuse. Pour désigner le membre d’un animal, écrivez “patte”. + TEST: Prépare la {{patte}} à tarte. TEST: Ils mangent souvent des {{pattes}} au thon. TEST: Des {{pattes}} alimentaires. TEST: Elles ont acheté de la {{patte}} à tartiner. TEST: La {{patte}} à pizza est plus épaisse que la pâte à crêpes. @@ -18892,10 +18912,11 @@ TEST: Elle adore la {{patte}} d’amande. TEST: Il est comme un coq en {{pattes}} là. TEST: Elle n’a jamais mis la main à la {{patte}}. TEST: donne-moi un coup de {{pâte}} TEST: elle retombe toujours sur ses {{pâtes}}. +TEST: il est court sur {{pâtes}} # péché / pêcher __conf_péché_pêcher2__ >pêcher par excès [de|d’] @@ -18994,10 +19015,22 @@ TEST: un sale voyou {{peu}} {{marquer}} TEST: une petite personne {{peu}} {{inspirer}} TEST: mon meilleur ami {{peu}} {{remarquer}} par les profs TEST: L’ouvrage décrit très peu les divers modes d’actions. + +__conf_qui_peu_vinfi__ + qui peu [ne|n’|me|m’|te|t’|se|s’] + qui peu [le|la|l’|les|en|nous|vous|lui|leur|y] $:Y + qui peu [nous|vous] [le|la|l’|les|en|y] $:Y + qui peu [le|la|l’|les] [lui|leur|en|y] $:Y + qui peu [lui|leur|y] en $:Y + qui peu $:Y + <<- /conf/ -2>> peut # Confusion : le verbe pouvoir à la 3ᵉ personne du singulier s’écrit “peut”. + +TEST: c’est tout le système qui {{peu}} vaciller ->> peut + # peut-être / peut être __conf_peut_être2__ *WORD peut être <<- /conf/ space_after(\2, 1, 1) and morph(\1, ":V", ":[NAQGM]") -2:3>> peut-être # Confusion probable. Pour dire “possiblement”, écrivez “peut-être”. @@ -19083,15 +19116,27 @@ TEST: Forage de son {{puis}} prévu demain TEST: Creuser un {{puis}}, pas si compliqué -# qu’à / cas +# qu’à / cas / ca __conf_qu_à_cas__ - [je|tu|il|elle|on|nous|vous|ils|elles|iel|iels] ?n’¿ >avoir [ca|cas] @:(?:Ov|Y) - <<- /conf/ --2>> qu’à # Confusion. Écrivez “qu’à”, c’est-à-dire la contraction de “que” suivi de la préposition verbale “à”. + n’ >avoir [cas|qua|ca] + <<- /conf/ --1>> qu’à + # Confusion. Locution : “n’avoir qu’à…” équivalente à “il suffit de…”. L’ensemble “qu’à” est la contraction de “que” suivi de la préposition verbale “à”.|https://fr.wiktionary.org/wiki/n%E2%80%99avoir_qu%E2%80%99%C3%A0 + >avoir [cas|qua|ca] [ne|n’|me|m’|te|t’|se|s’] + >avoir [cas|qua|ca] [le|la|l’|les|en|nous|vous|lui|leur|y] $:Y + >avoir [cas|qua|ca] [nous|vous] [le|la|l’|les|en|y] $:Y + >avoir [cas|qua|ca] [le|la|l’|les] [lui|leur|en|y] $:Y + >avoir [cas|qua|ca] [lui|leur|y] en $:Y + >avoir [cas|qua|ca] $:Y + <<- /conf/ not value(<1, "|n’|") -2>> qu’à + # Confusion. Locution : “n’avoir qu’à…” équivalente à “il suffit de…”. L’ensemble “qu’à” est la contraction de “que” suivi de la préposition verbale “à”.|https://fr.wiktionary.org/wiki/n%E2%80%99avoir_qu%E2%80%99%C3%A0 + +TEST: elles n’ont {{ca}} nous laisser tranquilles ->> qu’à +TEST: ils ont {{qua}} s’en prendre à eux-mêmes ->> qu’à TEST: tu n’as {{cas}} prendre le train # quand même / comme même __conf_quand_même__ @@ -25082,12 +25127,12 @@ si vous >avoir $:Q ?,¿ [je|j’|tu|il|on|elle|nous|ce|vous|ils|elles|iel|iels] $:K si vous >avoir $:Q $:D $:N ?,¿ [je|j’|tu|il|on|elle|nous|ce|vous|ils|elles|iel|iels] $:K <<- /vmode/ morph(\4, ":K") -4>> =suggVerbTense(\4, ":Iq", ":2p") # N’utilisez pas le conditionnel, mais l’imparfait. Exemple : « Si vous aviez perdu, vous auriez recommencé. » - [si|s’] [ils|elles] >avoir $:Q ?,¿ [je|j’|tu|il|on|elle|nous|ce|vous|ils|elles|iel|iels] $:K - [si|s’] [ils|elles] >avoir $:Q $:D $:N ?,¿ [je|j’|tu|il|on|elle|nous|ce|vous|ils|elles|iel|iels] $:K + [si|s’] [ils|elles|iels] >avoir $:Q ?,¿ [je|j’|tu|il|on|elle|nous|ce|vous|ils|elles|iel|iels] $:K + [si|s’] [ils|elles|iels] >avoir $:Q $:D $:N ?,¿ [je|j’|tu|il|on|elle|nous|ce|vous|ils|elles|iel|iels] $:K <<- /vmode/ morph(\4, ":K") -4>> =suggVerbTense(\4, ":Iq", ":3p") # N’utilisez pas le conditionnel, mais l’imparfait. Exemple : « Si elles avaient perdu, elles auraient recommencé. » si [le|la|l’|un|une|ce|cet|cette|mon|ton|son|notre|votre|leur] @:[NA].*:[si] >avoir $:Q ?,¿ [je|j’|tu|il|on|elle|nous|ce|vous|ils|elles|iel|iels] $:K si [le|la|l’|un|une|ce|cet|cette|mon|ton|son|notre|votre|leur] @:[NA].*:[si] >avoir $:Q $:D $:N ?,¿ [je|j’|tu|il|on|elle|nous|ce|vous|ils|elles|iel|iels] $:K <<- /vmode/ morph(\5, ":K") -5>> =suggVerbTense(\5, ":Iq", ":3s") # N’utilisez pas le conditionnel, mais l’imparfait. Exemple : « S’il avait perdu, il aurait recommencé. » Index: helpers.py ================================================================== --- helpers.py +++ helpers.py @@ -60,33 +60,40 @@ os.makedirs(sp, exist_ok=True) else: eraseFolder(sp) -def copyFolderContent (spSrc, spDst): +def copyFolder (spSrc, spDst): "copy folder content from src to dst" try: shutil.copytree(spSrc, spDst) except OSError as e: if e.errno == errno.ENOTDIR: shutil.copy(spSrc, spDst) else: - raise + print("Error while copying folder <"+spSrc+"> to <"+spDst+">.") def moveFolderContent (spSrc, spDst, sPrefix="", bLog=False): "move folder content from to : if files already exist in , they are replaced. (not recursive)" try: + if not os.path.isdir(spSrc): + print("Folder <"+spSrc+"> not found. Can’t move files.") + return + if not os.path.isdir(spDst): + print("Folder <"+spDst+"> not found. Can’t move files.") + return for sf in os.listdir(spSrc): spfSrc = os.path.join(spSrc, sf) if os.path.isfile(spfSrc): spfDst = os.path.join(spDst, sPrefix + sf) shutil.move(spfSrc, spfDst) if bLog: print("file <" + spfSrc + "> moved to <"+spfDst+">") - except: - raise + except Error as e: + print("Error while moving folder <"+spSrc+"> to <"+spDst+">.") + print(e) def fileFile (spf, dVars): "return file as a text filed with variables from " return Template(open(spf, "r", encoding="utf-8").read()).safe_substitute(dVars)