X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=ProfList.py;h=7bf1290ac30d253a2f0ea1cbbd0fe4a1ae6b7ef5;hp=94122324bd6bdab8e02c2999bcbcf05778c028e8;hb=f1aa29b61a02454fc716775163ead02630d4a4df;hpb=fca6f30e3159a44e2a4f053546d1d7df21ad8c6b diff --git a/ProfList.py b/ProfList.py index 9412232..7bf1290 100644 --- a/ProfList.py +++ b/ProfList.py @@ -14,23 +14,18 @@ #---------------------------------------------------------------------------- import os -import sys import wx import wx.lib.mixins.listctrl as listmix -#from tabsimi import DoSimi from listlex import ListForSpec from chemins import ConstructPathOut, ffr -from dialog import PrefExport, PrefUCECarac, SearchDial, message, MessageImage, BarFrame -from tableau import Tableau, copymatrix +from dialog import PrefUCECarac, SearchDial, message, BarFrame +from tableau import copymatrix from search_tools import SearchFrame import webbrowser #import cStringIO import tempfile import codecs -from functions import exec_rcode, progressbar, treat_var_mod, doconcorde -from PrintRScript import barplot -from textclassechd import ClasseCHD -from shutil import copyfile +from functions import progressbar, treat_var_mod, doconcorde from operator import itemgetter from copy import copy @@ -45,6 +40,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col self.cl = cl self.var_mod = {} self.them_mod = {} + self.ira = wx.GetApp().GetTopWindow() line1 = profclasse.pop(0) classen = [line for line in profclasse if line[0] != '*' and line[0] != '*****'] @@ -245,7 +241,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col def onsearchall(self, evt) : if 'FrameSearch' not in dir(self.Source) : - self.Source.FrameSearch = SearchFrame(self.parent, -1, u"Rechercher...", self.Source.corpus) + self.Source.FrameSearch = SearchFrame(self.parent, -1, _(u"Search...").decode('utf8'), self.Source.corpus) self.dial = SearchDial(self, self.Source.FrameSearch.liste, 1, False) self.dial.CenterOnParent() self.dial.Show() @@ -309,37 +305,37 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col # make a menu menu = wx.Menu() - menu.Append(self.popupID1, u"Formes associées") - menu.Append(self.idtablex, u"Chi2 par classe") - menu.Append(self.idlexdendro, u"Chi2 par classe + dendro") - menu.Append(self.idchimod, u"Chi2 modalités de la variable") - menu.Append(self.idwordgraph, u"Graphe du mot") + menu.Append(self.popupID1, _(u"Associated forms").decode('utf8')) + menu.Append(self.idtablex, _(u"Chi2 by cluster").decode('utf8')) + menu.Append(self.idlexdendro, _(u"Chi2 by cluster on dendrogram").decode('utf8')) + menu.Append(self.idchimod, _(u"Chi2 modalities of variable").decode('utf8')) + menu.Append(self.idwordgraph, _(u"Word graph").decode('utf8')) #menu.Append(self.export_classes, u"Exporter le corpus...") #menu.Append(self.popupID10, u"Spécificités") menu_conc = wx.Menu() - menu_conc.Append(self.popupID2, u"dans les segments de texte de la classe") - menu_conc.Append(self.popupID3, u"dans les segments de texte classés") - menu_conc.Append(self.popupID4, u"dans tous les segments de texte") - menu.AppendMenu(-1, u"Concordancier", menu_conc) + menu_conc.Append(self.popupID2, _(u"In segments of this cluster").decode('utf8')) + menu_conc.Append(self.popupID3, _(u"In segments of this clustering").decode('utf8')) + menu_conc.Append(self.popupID4, _(u"In all segments").decode('utf8')) + menu.AppendMenu(-1, _(u"Concordance").decode('utf8'), menu_conc) menu.Append(self.onmaketgen, _(u"Make Tgen").decode('utf8')) menu_cnrtl = wx.Menu() - menu_cnrtl.Append(self.popupID5, u"Définition") - menu_cnrtl.Append(self.popupID6, u"Etymologie") - menu_cnrtl.Append(self.popupID7, u"Synonymie") - menu_cnrtl.Append(self.popupID8, u"Antonymie") - menu_cnrtl.Append(self.popupID9, u"Morphologie") - menu_cnrtl.Append(self.popup_proxe, u"Proxémie") - menu.AppendMenu(-1, u"Outils du CNRTL", menu_cnrtl) + menu_cnrtl.Append(self.popupID5, _(u"Definition").decode('utf8')) + menu_cnrtl.Append(self.popupID6, _(u"Etymology").decode('utf8')) + menu_cnrtl.Append(self.popupID7, _(u"Synonymous").decode('utf8')) + menu_cnrtl.Append(self.popupID8, _(u"Antonym").decode('utf8')) + menu_cnrtl.Append(self.popupID9, _(u"Morphology").decode('utf8')) + menu_cnrtl.Append(self.popup_proxe, _(u"Proxemy").decode('utf8')) + menu.AppendMenu(-1, _(u"Tools from CNRTL (french only)").decode('utf8'), menu_cnrtl) menu.AppendSeparator() - menu.Append(self.popupIDgraph, u"Graphe de la classe") - menu.Append(self.idseg, u"Segments répétés") - menu.Append(self.iducecarac, u"Segments de texte caractéristiques") - menu.Append(self.idcloud, u"Nuage de la classe") - menu.Append(self.idexport, u'Exporter...') - menu.Append(self.idexporttropes, 'Exporter pour Tropes') - menu.Append(self.idexportowledge, 'Exporter pour Owledge') + menu.Append(self.popupIDgraph, _(u"Graph of cluster").decode('utf8')) + menu.Append(self.idseg, _(u"Repeated segments").decode('utf8')) + menu.Append(self.iducecarac, _(u"Typical text segments").decode('utf8')) + menu.Append(self.idcloud, _(u"Word cloud of cluster").decode('utf8')) + menu.Append(self.idexport, _(u'Export...').decode('utf8')) + menu.Append(self.idexporttropes, _(u'Export for Tropes').decode('utf8')) + menu.Append(self.idexportowledge, _('Exporter for Owledge').decode('utf8')) #menu.Append(self.popupID2, u"Concordancier") # menu.Append(self.popupID3, "recharger") @@ -355,10 +351,10 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col self.Bind(wx.EVT_MENU, self.quest_var_mod, id=self.pop3) menu = wx.Menu() - menu.Append(self.pop2, u"Chi2 par classe") - menu.Append(self.pop3, u"Chi2 modalités de la variable") + menu.Append(self.pop2, _(u"Chi2 by cluster").decode('utf8')) + menu.Append(self.pop3, _(u"Chi2 modalities of variable").decode('utf8')) menu.AppendSeparator() - menu.Append(self.pop1, u"Graphe de la classe") + menu.Append(self.pop1, _(u"Graph of cluster").decode('utf8')) self.PopupMenu(menu) menu.Destroy() @@ -371,9 +367,6 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col parametres['type'] = 'clustercloud' parametres['prof'] = self.Source.pathout['actprof_classe_%i.csv' % self.cl] del parametres['uuid'] - #if not os.path.exists(self.Source.pathout['actprof_classe_%i.csv' % self.lc]) : - # with open(self.Source.pathout['actprof_classe_%i.csv' % self.lc], 'w') as f : - # f.write('\n'.join(prof).encode(self.parent.syscoding)) self.parent.OnClusterCloud(self.Source.corpus, parametres = parametres) def onexport(self, evt) : @@ -387,9 +380,6 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col dial = wx.MessageDialog(self, self.Source.pathout['classe_%i_export.txt' % self.cl], u"Export", wx.OK|wx.ICON_INFORMATION) dial.ShowModal() dial.Destroy() - #if 'corpus' in dir(self.Source): - # corpus = self.Source.corpus - #ClasseCHD(self.parent, corpus, self.cl) def onexporttropes(self, evt) : if 'corpus' in dir(self.Source): @@ -424,7 +414,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col def quest_var_mod(self, evt) : word = self.getselectedwords()[0] if len(word.split('_')) <= 1 : - dial = wx.MessageDialog(self, u"Ce n'est pas une forme du type variable_modalité", u"Problème", wx.OK | wx.ICON_WARNING) + dial = wx.MessageDialog(self, _(u"This is not a variable_modality form").decode('utf8'), _(u"Problem").decode('utf8'), wx.OK | wx.ICON_WARNING) dial.CenterOnParent() dial.ShowModal() dial.Destroy() @@ -458,7 +448,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col try : words = [word for word in var_mod[var[0]]] except KeyError: - dial = wx.MessageDialog(self, _(u"This is not a meta-data"), u"Problème", wx.OK | wx.ICON_WARNING) + dial = wx.MessageDialog(self, _(u"This is not a meta-data").decode('utf8'), _(u"Problem").decode('utf8'), wx.OK | wx.ICON_WARNING) dial.CenterOnParent() dial.ShowModal() dial.Destroy() @@ -546,7 +536,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col 'lem' : self.Source.parametres['lem'], 'tmpchi' : self.tmpchi} #try : - self.parent.SimiFromCluster(self.parent, self.Source.corpus, self.la, self.lfreq, self.lchi, self.cl - 1, parametres = parametres, dlg = progressbar(self, 4)) + self.parent.SimiFromCluster(self.parent, self.Source.corpus, self.la, self.lfreq, self.lchi, self.cl - 1, parametres = parametres, dlg = progressbar(self.ira, 4)) #except : # print 'not acitve' @@ -560,7 +550,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col 'lem' : self.Source.parametres['lem'], 'tmpchi' : self.tmpchi} - self.parent.SimiFromCluster(self.parent, self.Source.corpus, self.la, self.lfreq, self.lchi, self.cl - 1, parametres = parametres, dlg = progressbar(self, 4)) + self.parent.SimiFromCluster(self.parent, self.Source.corpus, self.la, self.lfreq, self.lchi, self.cl - 1, parametres = parametres, dlg = progressbar(self.ira, 4)) def on_segments(self,evt) : dlg = progressbar(self, 2) @@ -586,7 +576,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col first = ['','',''] para={'dico': d,'fline':first} dlg.Destroy() - win = wliste(self, -1, u"Segments répétés - Classe %i" % self.cl, d, first, size=(600, 500)) + win = wliste(self, -1, ' - '.join([_(u"Repeated segments").decode('utf8'), "Classe %i" % self.cl]), d, first, size=(600, 500)) win.Show(True) def on_uce_carac(self,evt) : @@ -595,7 +585,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col if dial.ShowModal() == wx.ID_OK : limite = dial.spin_eff.GetValue() atype = dial.radio_type.GetSelection() - dlg = progressbar(self,maxi = 4) + dlg = progressbar(self.ira,maxi = 4) corpus = self.Source.corpus uces = corpus.lc[self.cl-1] if self.Source.parametres['classif_mode'] != 2 : @@ -618,7 +608,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col ucis_txt, ucestxt = doconcorde(corpus, nuces, self.la, uci = uci) items = dict([[i, '
'.join([ucis_txt[i], '
score : %.2f

' % ntab2[i][0], ucestxt[i]])] for i, uce in enumerate(nuces)]) dlg.Destroy() - win = message(self, items, u"Segments de texte caractéristiques - Classe %i" % self.cl, (750, 600), uceids = nuces) + win = message(self, items, ' - '.join([_(u"Typical text segments").decode('utf8'), "Classe %i" % self.cl]), (750, 600), uceids = nuces) #win.SetWindowStyle(wx.STAY_ON_TOP) #win.html = '\n' + '
'.join(['
'.join([ucis_txt[i], '
score : %.2f
' % ntab2[i][0], ucestxt[i]]) for i in range(0,len(ucestxt))]) + '\n' #win.HtmlPage.SetPage(win.html) @@ -684,19 +674,19 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col if 'corpus' in dir(self.Source) : corpus = self.Source.corpus uces = corpus.lc[self.cl-1] - win = self.make_concord(uces, "Concordancier - Classe %i" % self.cl) + win = self.make_concord(uces, ' - '.join([_(u"Concordance").decode('utf8'), "Classe %i" % self.cl])) win.Show(True) def OnPopupThree(self, event): corpus = self.Source.corpus uces = [classe[i] for classe in corpus.lc for i in range(0,len(classe))] - win = self.make_concord(uces, "Concordancier - Segments de texte classés") + win = self.make_concord(uces, ' - '.join([_(u"Concordance").decode('utf8'), _(u"Segments of this clustering").decode('utf8')])) win.Show(True) def OnPopupFour(self, event): corpus = self.Source.corpus uces = [classe[i] for classe in corpus.lc for i in range(0,len(classe))] + corpus.lc0 - win = self.make_concord(uces, "Concordancier - Tous les segments de texte") + win = self.make_concord(uces, ' - '.join([_(u"Concordance").decode('utf8'), _(u"All segments").decode('utf8')])) win.Show(True) def OnPopupFive(self, event): @@ -750,7 +740,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col rep.sort(key = itemgetter(1), reverse = True) #win = message(self, u"Formes associées", wx.Size(300, 200)) items = dict([[i, '\t:\t'.join([str(val) for val in forme])] for i, forme in enumerate(rep)]) - win = message(self, items, u"Formes associées", (300, 200)) + win = message(self, items, _(u"Associated forms").decode('utf8'), (300, 200)) #win.html = '\n' + '
'.join([' : '.join([str(val) for val in forme]) for forme in rep]) + '\n' #win.HtmlPage.SetPage(win.html) win.Show(True) @@ -763,7 +753,7 @@ class wliste(wx.Frame): def __init__(self, parent, id, title, d, fline, size=(600, 500)): wx.Frame.__init__(self, parent, id) self.liste = ListForSpec(self, parent, d, fline[1:], menu = False) - self.button_1 = wx.Button(self, -1, "Fermer") + self.button_1 = wx.Button(self, -1, _(u"Close").decode('utf8')) self.Bind(wx.EVT_BUTTON, self.OnCloseMe, self.button_1) self.Bind(wx.EVT_CLOSE, self.OnCloseWindow) self.__do_layout()