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):