Example #1
0
def _get_flex(dbname, lemmes):
    """

    :param dbname:
    :param lemmes:
    :return:
    """
    lexique380_brut_db = PYLexique.load(dbname, 'sql')
    lexique380_brut = lexique380_brut_db.cursor()
    if isinstance(lemmes, str):
        lexique380_brut.execute(
            "SELECT `1_ortho`, `2_phon`, `3_lemme`, `5_genre`, `6_nombre`, `11_infover` FROM flexions WHERE `3_lemme` = ? AND `4_cgram` = 'VER' ",
            (lemmes,))
        # lexique380_brut.execute("SELECT * FROM flexions WHERE `3_lemme` LIKE ? AND `4_cgram` LIKE 'VER'", (self.lemme,))
        liste_lemmes = [entree for entree in lexique380_brut.fetchall()]
        return liste_lemmes
    elif isinstance(lemmes, list):
        dict_liste_lemme = OrderedDict()
        # for lemme in lemmes:
        # lexique380_brut.execute(
        #         "SELECT `1_ortho`, `2_phon`, `3_lemme`, `5_genre`, `6_nombre`, `11_infover` FROM flexions WHERE `3_lemme` = ? AND `4_cgram` = 'VER' ",
        #         (lemme,))
        #     liste_lemmes = [entree for entree in lexique380_brut.fetchall()]
        #     dict_liste_lemme[lemme] = liste_lemmes

        lexique380_brut.execute(
            "SELECT `1_ortho`, `2_phon`, `3_lemme`, `5_genre`, `6_nombre`, `11_infover` FROM flexions WHERE `4_cgram` = 'VER' ")
        liste_lemmes = [entree for entree in lexique380_brut.fetchall() if entree[2] in lemmes]
        for entree in liste_lemmes:
            if not entree[2] in dict_liste_lemme:
                dict_liste_lemme[entree[2]] = []
                dict_liste_lemme[entree[2]].append(entree)
            else:
                dict_liste_lemme[entree[2]].append(entree)
        return dict_liste_lemme
# coding=utf-8
__author__ = 'Sekou Diao'
import PYconjug
import PYLexique
import cProfile

liste_verbes_test = [('avoir', 'AUX'), ('chanter', 'VER'), ('danser', 'VER'), ('parler', 'VER'), ('manger', 'VER'),
                     ('fumer', 'VER'),
                     ('mentir', 'VER'), ('punir', 'VER'), ('sentir', 'VER'), ('sortir', 'VER'), ('avertir', 'VER'),
                     ('surprendre', 'VER'), ('comprendre', 'VER'), ('vendre', 'VER'), ('prendre', 'VER'),
                     ('attendre', 'VER'),
                     ('ĂȘtre', 'AUX'), ('avoir', 'AUX')]

dbname = 'C:/Users/DSK/PycharmProjects/GitHub/PYLexique380/Databases/lexique380_brut_v3.db'
lexique380_brut_db = PYLexique.load(dbname, 'sql')
lexique380_brut = lexique380_brut_db.cursor()
lexique380_brut.execute("SELECT `lemme`, `cgram` FROM `lemmes` WHERE `cgram` LIKE '%VER%' OR '%AUX%' ")
liste_verbes = [verbe for verbe in lexique380_brut.fetchall()]

# test = [PYconjug.conjugue.Verbe(verbe[0],verbe[1], dbname) for verbe in liste_verbes[:-1]]

# dict_verbes = {verbe : PYconjug.conjugue.Verbe(verbe[0],"VER", dbname) for verbe in liste_verbes}
# type 'VER' force pour le test.
# cProfile.runctx("dict_verbes = {verbe[0] : PYconjug.conjugue.Verbe(verbe[0],verbe[1], dbname) for verbe in liste_verbes}", globals(), locals())
# liste_obj = []
# for verbe in liste_verbes:
#     liste_obj.append(PYconjug.conjugue.Verbe(verbe[0],"VER", dbname))
# dict_verbes = {verbe[0] : PYconjug.conjugue.Verbe(verbe[0],verbe[1], dbname) for verbe in liste_verbes_test}
cProfile.runctx("dict_verbes = PYconjug.conjugue.CreerVerbe(liste_verbes, dbname)", globals(), locals())
# with open('infoverbes_lexique380.txt', 'w', encoding='utf-8') as f:
#     for item in sorted(dict_verbes.items(), key=lambda verbe: verbe[1]._nbreconjugaisons, reverse=True):