X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=iramuteq.py;h=69e0bda0a4f9af8a76a4c1acd713d7038b0781ef;hp=d1b6077ac3d3e2c90117bb619af31b4d6dea6c6f;hb=a9b4571e2e23ad165436cb2ccc79d18083882091;hpb=2ffa9388c45dce689bb45c1cf6c7ad81d2636409 diff --git a/iramuteq.py b/iramuteq.py index d1b6077..69e0bda 100644 --- a/iramuteq.py +++ b/iramuteq.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- #Author: Pierre Ratinaud #Copyright (c) 2008-2012, Pierre Ratinaud -#Lisense: GNU GPL +#License: GNU GPL from optparse import OptionParser @@ -28,10 +28,7 @@ import logging #------------------------------------ import wx #import wx.aui -if wx.__version__ >= '2.11' : - import wx.lib.agw.aui as aui -else : - import aui +import wx.lib.agw.aui as aui import wx.html import wx.grid import wx.lib.hyperlink as hl @@ -40,7 +37,7 @@ from functions import BugReport, PlaySound, ReadLexique, History, DoConf, ReadDi from checkversion import NewVersion from guifunct import * from tableau import Tableau -from dialog import PrefDialog, EncodeDialog, CorpusPref +from dialog import PrefDialog, CorpusPref from tabfrequence import Frequences from tabchi2 import ChiSquare #from tabstudent import MakeStudent @@ -51,17 +48,17 @@ from tabsimi import DoSimi from tabrsimple import InputText from tabverges import Prototypical #from textafcuci import AfcUci -from analysetxt import Alceste from textdist import AnalysePam from textstat import Stat from textaslexico import Lexico from textsimi import SimiTxt, SimiFromCluster from textwordcloud import WordCloud, ClusterCloud -from profile_segment import ProfileSegment +from textreinert import Reinert +#from profile_segment import ProfileSegment #from textcheckcorpus import checkcorpus from openanalyse import OpenAnalyse -from corpus import BuildFromAlceste, Builder -from sheet import MySheet +from corpus import Builder, SubBuilder +#from sheet import MySheet from checkinstall import CreateIraDirectory, CheckRPath, FindRPAthWin32, FindRPathNix, CheckRPackages, IsNew, UpgradeConf, CopyConf, RLibsAreInstalled from chemins import RscriptsPath, ConstructConfigPath, ConstructDicoPath, ConstructGlobalPath, PathOut from parse_factiva_xml import ImportFactiva @@ -77,11 +74,11 @@ ID_Freq = wx.NewId() ID_Chi2 = wx.NewId() ID_Student = wx.NewId() ID_CHDSIM = wx.NewId() -ID_CHDAlceste = wx.NewId() +ID_CHDReinert = wx.NewId() ID_TEXTAFCM = wx.NewId() ID_TEXTSTAT = wx.NewId() ID_ASLEX = wx.NewId() -ID_TEXTALCESTE = wx.NewId() +ID_TEXTREINERT = wx.NewId() ID_TEXTPAM = wx.NewId() ID_CHECKCORPUS = wx.NewId() ID_Tabcontent = wx.NewId() @@ -96,6 +93,7 @@ ID_VIEWDATA = wx.NewId() ID_HTMLcontent = wx.NewId() ID_SimiTxt = wx.NewId() ID_proto = wx.NewId() +ID_ImportTXM = wx.NewId() ########################################################## #elements de configuration ########################################################## @@ -209,23 +207,30 @@ class IraFrame(wx.Frame): menuFactiva.AppendItem(fact_from_xml) menuFactiva.AppendItem(fact_from_mail) menuFactiva.AppendItem(fact_from_txt) - file_menu.AppendMenu(-1, _(u"Import from factiva"), menuFactiva) + file_menu.AppendMenu(-1, _(u"Import from factiva").decode('utf8'), menuFactiva) + + item = wx.MenuItem(file_menu, ID_ImportTXM, _(u"Import from TXM").decode('utf8'), _(u"Import from TXM").decode('utf8')) + item.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN)) + file_menu.AppendItem(item) menuTools = wx.Menu() splitvar = wx.MenuItem(menuTools, wx.ID_ANY, _(u"Split from variable").decode('utf8')) extractmod = wx.MenuItem(menuTools, wx.ID_ANY, _(u"Extract mods").decode('utf8')) + extractthem = wx.MenuItem(menuTools, wx.ID_ANY, _(u"Extract thematics").decode('utf8')) menuTools.AppendItem(splitvar) menuTools.AppendItem(extractmod) + menuTools.AppendItem(extractthem) self.ID_splitvar = splitvar.GetId() self.ID_extractmod = extractmod.GetId() + self.ID_extractthem = extractthem.GetId() file_menu.AppendMenu(-1, _(u"Tools"), menuTools) - item = wx.MenuItem(file_menu, ID_SaveTab, _(u"Save tab as...").decode('utf8'), _(u"Save tab as...").decode('utf8')) - item.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_FILE_SAVE_AS)) - file_menu.AppendItem(item) + #item = wx.MenuItem(file_menu, ID_SaveTab, _(u"Save tab as...").decode('utf8'), _(u"Save tab as...").decode('utf8')) + #item.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_FILE_SAVE_AS)) + #file_menu.AppendItem(item) - file_menu.Append(wx.ID_EXIT, _(u"Exit")) + file_menu.Append(wx.ID_EXIT, _(u"Exit").decode('utf8')) edit_menu = wx.Menu() edit_menu.Append(wx.ID_PREFERENCES, '', _(u'Preferences').decode('utf8')) @@ -237,40 +242,40 @@ class IraFrame(wx.Frame): #view_menu.AppendSeparator() analyse_menu = wx.Menu() - analyse_menu.Append(ID_Freq, u"Fréquences") - analyse_menu.Append(ID_Chi2, u"Chi2") + analyse_menu.Append(ID_Freq, _(u"Frequencies").decode('utf8')) + analyse_menu.Append(ID_Chi2, _(u"Chi2").decode('utf8')) #analyse_menu.Append(ID_Student, u"t de Student") menu_classif = wx.Menu() - menu_classif.Append(ID_CHDAlceste, u"Méthode GNEPA") + menu_classif.Append(ID_CHDReinert, _(u"Reinert's Method").decode('utf8')) #menu_classif.Append(ID_CHDSIM, u"Par matrice des distances") - analyse_menu.AppendMenu(-1, u"Classification", menu_classif) + analyse_menu.AppendMenu(-1, _(u"Clustering").decode('utf8'), menu_classif) #analyse_menu.Append(ID_AFCM, u"AFCM") - analyse_menu.Append(ID_SIMI, u"Analyse de similitudes") - analyse_menu.Append(ID_proto, _(u"Prototypical analysis")) + analyse_menu.Append(ID_SIMI, _(u"Similarities Analysis").decode('utf8')) + analyse_menu.Append(ID_proto, _(u"Prototypical analysis").decode('utf8')) ID_RCODE = wx.NewId() analyse_menu.Append(ID_RCODE, u"Code R...") text_menu = wx.Menu() #text_menu.Append(ID_CHECKCORPUS, u"Vérifier le corpus") - text_menu.Append(ID_TEXTSTAT, u"Statistiques textuelles") - text_menu.Append(ID_ASLEX, u"Spécificités et AFC") + text_menu.Append(ID_TEXTSTAT, _(u"Statistics").decode('utf8')) + text_menu.Append(ID_ASLEX, _(u"Specificities and CA").decode('utf8')) #text_menu.Append(ID_TEXTAFCM, u"AFC sur UCI / Vocabulaire") menu_classiftxt = wx.Menu() - menu_classiftxt.Append(ID_TEXTALCESTE, u"Méthode GNEPA") + menu_classiftxt.Append(ID_TEXTREINERT, _(u"Reinert's Method").decode('utf8')) #menu_classiftxt.Append(ID_TEXTPAM, u"Par matrice des distances") - text_menu.AppendMenu(-1, u"Classification", menu_classiftxt) - text_menu.Append(ID_SimiTxt, u'Analyse de similitude') + text_menu.AppendMenu(-1, _(u"Clustering").decode('utf8'), menu_classiftxt) + text_menu.Append(ID_SimiTxt, _(u"Similarities Analysis").decode('utf8')) ID_WC = wx.NewId() - text_menu.Append(ID_WC, u'Nuage de mots') + text_menu.Append(ID_WC, _(u"WordCloud").decode('utf8')) help_menu = wx.Menu() - help_menu.Append(wx.ID_ABOUT, u'À propos...') - help_menu.Append(wx.ID_HELP, u'Aide en ligne') + help_menu.Append(wx.ID_ABOUT, _(u"About...").decode('utf8')) + help_menu.Append(wx.ID_HELP, _(u"Inline help...").decode('utf8')) self.mb.Append(file_menu, _(u"File").decode('utf8')) self.mb.Append(edit_menu, _(u"Edition").decode('utf8')) self.mb.Append(view_menu, _(u"View").decode('utf8')) - self.mb.Append(analyse_menu, _("Spreadsheet analysis").decode('utf8')) + self.mb.Append(analyse_menu, _("Matrix analysis").decode('utf8')) self.mb.Append(text_menu, _(u"Text analysis").decode('utf8')) self.mb.Append(help_menu, _(u"Help").decode('utf8')) @@ -313,7 +318,7 @@ class IraFrame(wx.Frame): # f.write('') self.history = History(os.path.join(UserConfigPath, 'history.db')) self.tree = LeftTree(self) - self._mgr.AddPane(self.tree, aui.AuiPaneInfo().Name("lefttree").Caption("Navigateur"). + self._mgr.AddPane(self.tree, aui.AuiPaneInfo().Name("lefttree").Caption(_(u"Navigator").decode('utf8')). Left().MinSize(wx.Size(200,500)).Layer(1).Position(1).CloseButton(False).MaximizeButton(True). MinimizeButton(True)) @@ -331,9 +336,9 @@ class IraFrame(wx.Frame): self._mgr.AddPane(self.nb, aui.AuiPaneInfo(). Name("Tab_content"). CenterPane()) - self.Sheet = MySheet(self) + #self._mgr.AddPane(self.Sheet, wx.aui.AuiPaneInfo().Name("Data").CenterPane()) - self._mgr.AddPane(self.Sheet, aui.AuiPaneInfo().Name("Data").CenterPane()) + #self._mgr.AddPane(self.Sheet, aui.AuiPaneInfo().Name("Data").CenterPane()) self.nb.Bind(aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnCloseTab) self.nb.Bind(aui.EVT_AUINOTEBOOK_PAGE_CHANGED, self.OnPageChanged) # add the toolbars to the manager @@ -366,11 +371,12 @@ class IraFrame(wx.Frame): self.Bind(wx.EVT_MENU, self.import_factiva_txt, fact_from_txt) self.Bind(wx.EVT_MENU, self.ExtractTools, splitvar) self.Bind(wx.EVT_MENU, self.ExtractTools, extractmod) + self.Bind(wx.EVT_MENU, self.ExtractTools, extractthem) self.Bind(wx.EVT_MENU, self.OnFreq, id=ID_Freq) self.Bind(wx.EVT_MENU, self.OnChi2, id=ID_Chi2) self.Bind(wx.EVT_MENU, self.OnStudent, id=ID_Student) self.Bind(wx.EVT_MENU, self.OnCHDSIM, id=ID_CHDSIM) - self.Bind(wx.EVT_MENU, self.OnCHDAlceste, id=ID_CHDAlceste) + self.Bind(wx.EVT_MENU, self.OnCHDReinert, id=ID_CHDReinert) self.Bind(wx.EVT_MENU, self.OnAFCM, id=ID_AFCM) self.Bind(wx.EVT_MENU, self.OnProto, id=ID_proto) self.Bind(wx.EVT_MENU, self.OnRCode, id=ID_RCODE) @@ -378,16 +384,17 @@ class IraFrame(wx.Frame): self.Bind(wx.EVT_MENU, self.OnTextStat, id=ID_TEXTSTAT) self.Bind(wx.EVT_MENU, self.OnTextSpec, id=ID_ASLEX) self.Bind(wx.EVT_MENU, self.OnTextAfcm, id=ID_TEXTAFCM) - self.Bind(wx.EVT_MENU, self.OnTextAlceste, id=ID_TEXTALCESTE) + self.Bind(wx.EVT_MENU, self.OnTextReinert, id=ID_TEXTREINERT) self.Bind(wx.EVT_MENU, self.OnPamSimple, id=ID_TEXTPAM) self.Bind(wx.EVT_MENU, self.OnSimiTxt, id=ID_SimiTxt) self.Bind(wx.EVT_MENU, self.OnWordCloud, id=ID_WC) - self.Bind(wx.EVT_MENU, self.OnSimi, id=ID_SIMI) + self.Bind(wx.EVT_MENU, self.OnSimiTab, id=ID_SIMI) self.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT) - self.Bind(wx.EVT_MENU, self.OnSaveTabAs, id=ID_SaveTab) + #self.Bind(wx.EVT_MENU, self.OnSaveTabAs, id=ID_SaveTab) self.Bind(wx.EVT_MENU, self.OnAbout, id=wx.ID_ABOUT) self.Bind(wx.EVT_MENU, self.OnHelp, id=wx.ID_HELP) self.Bind(wx.EVT_MENU, self.OnPref, id=wx.ID_PREFERENCES) + self.Bind(wx.EVT_MENU, self.OnImportTXM, id=ID_ImportTXM) self.Bind(wx.EVT_CLOSE, self.OnClose) ################################################################## flags = self._mgr.GetAGWFlags() @@ -427,9 +434,9 @@ class IraFrame(wx.Frame): ##############################################################@ self.DisEnSaveTabAs(False) - self.ShowMenu(_("View"), False) - self.ShowMenu(_("Spreadsheet analysis"), False) - self.ShowMenu(_("Text analysis"), False) + self.ShowMenu(_("View").decode('utf8'), False) + self.ShowMenu(_("Matrix analysis").decode('utf8'), False) + self.ShowMenu(_("Text analysis").decode('utf8'), False) self._mgr.Update() @@ -488,7 +495,7 @@ vous devez signaler le chemin de l'éxecutable de R dans les préférences.""" dlg = wx.MessageDialog(self, msg, u"Problème de configuration", wx.OK | wx.NO_DEFAULT | wx.ICON_WARNING) dlg.CenterOnParent() if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]: - evt.Veto() + pass dlg.Destroy() @@ -516,7 +523,7 @@ vous devez signaler le chemin de l'éxecutable de R dans les préférences.""" dlg = wx.MessageDialog(self, u"Installation OK", u"Installation", wx.OK | wx.ICON_INFORMATION) dlg.CenterOnParent() if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]: - evt.Veto() + evt.Veto() def DisEnSaveTabAs(self, DISEN): #Disable SaveTabAs @@ -574,11 +581,14 @@ vous devez signaler le chemin de l'éxecutable de R dans les préférences.""" def OnOpenData(self, event): inputname, self.input_path = OnOpen(self, "Data") if inputname: - self.filename = self.input_path[0] + #filename = self.input_path[0] self.tableau = Tableau(self,os.path.abspath(self.input_path[0])) - get_table_param(self, self.input_path[0]) - self.tableau.make_content() - self.tableau.show_tab() + val = get_table_param(self, self.input_path[0]) + if val == wx.ID_OK : + self.tableau.make_content() + OpenAnalyse(self, self.tableau.parametres) + self.tree.OnItemAppend(self.tableau.parametres) + #self.tableau.show_tab() def OnOpenAnalyse(self, event): self.AnalysePath = OnOpen(self, "Analyse") @@ -589,7 +599,7 @@ vous devez signaler le chemin de l'éxecutable de R dans les préférences.""" inputname, self.input_path = OnOpen(self, "Texte") self.filename = self.input_path[0] if inputname: - self.OpenText() + self.OpenText() def OnViewData(self, event): print self.type @@ -609,9 +619,19 @@ vous devez signaler le chemin de l'éxecutable de R dans les préférences.""" self.DataPop = False self.ShowAPane(u"Text") self._mgr.Update() - + + def OnSubText(self, corpus, parametres = None): + busy = wx.BusyInfo(_("Please wait...").decode('utf8'), self) + wx.SafeYield() + builder = SubBuilder(self, corpus, parametres) + del busy + if builder.res == wx.ID_OK : + corpus = builder.doanalyse() + self.history.add(corpus.parametres) + self.tree.OnItemAppend(corpus.parametres) + OpenAnalyse(self, corpus.parametres) + def OpenText(self): - #dial = EncodeDialog(self) dlg = wx.ProgressDialog("Ouverture...", "Veuillez patienter...", maximum=2, @@ -628,34 +648,12 @@ vous devez signaler le chemin de l'éxecutable de R dans les préférences.""" OpenAnalyse(self, corpus.parametres) except : BugReport(self) - #self.content = DoConf().totext(corpus.parametres) -# parametres = DoConf(os.path.join(UserConfigPath,'corpus.cfg')).getoptions('corpus') -# parametres['originalpath'] = self.filename -# -# parametres['pathout'] = PathOut(self.filename, 'corpus').dirout -# dial = CorpusPref(self, parametres) -# dial.CenterOnParent() -# dial.txtpath.SetLabel(self.filename) -# res = dial.ShowModal() -# parametres = dial.doparametres() -# print parametres -# ReadLexique(self, lang = parametres['lang']) -# self.expressions = ReadDicoAsDico(self.DictPath.get(parametres['lang'], 'french_exp')) -# corpus = BuildFromAlceste(self.filename, parametres, self.lexique, self.expressions).corpus - #self.corpus_encodage = dial.encodages[dial.list_encodages.GetSelection()][0] - #self.corpus_lang = dial.langues[dial.choice_dict.GetSelection()] else : count = 1 keepGoing = dlg.Update(count, u"Lecture du fichier") - # msg = u"Ce fichier ne semble pas être encodé en %s" % self.corpus_encodage - # dial = wx.MessageDialog(self, msg, u"Problème d'encodage", wx.OK | wx.NO_DEFAULT | wx.ICON_WARNING) - # dial.CenterOnParent() - # res = dial.ShowModal() - # dial.Destroy() - # self.OpenText() - self.ShowMenu(_("View")) - self.ShowMenu(_("Text analysis")) - self.ShowMenu(_(u"Spreadsheet analysis"), False) + self.ShowMenu(_(u"View").decode('utf8')) + self.ShowMenu(_(u"Text analysis").decode('utf8')) + self.ShowMenu(_(u"Matrix analysis").decode('utf8'), False) self.type = "Texte" self.DataTxt = False self.Text = '' @@ -715,6 +713,12 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, États-Unis.""" npage = self.nb.GetPage(new) if 'parametres' in dir(npage) : self.tree.GiveFocus(uuid=npage.parametres['uuid']) + if npage.parametres.get('matrix', False) : + self.ShowMenu(_(u"Text analysis").decode('utf8'), False) + self.ShowMenu(_(u"Matrix analysis").decode('utf8'), True) + elif npage.parametres.get('corpus', False) : + self.ShowMenu(_(u"Text analysis").decode('utf8')) + self.ShowMenu(_(u"Matrix analysis").decode('utf8'), False) def OnCloseTab(self, evt): #log.info('Closing tab %s' % str(evt.GetEventObject())) @@ -728,40 +732,40 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, États-Unis.""" self.history.rmtab(page.parametres) self.tree.CloseItem(uuid = page.parametres['uuid']) TabTitle = self.nb.GetPageText(self.nb.GetSelection()) - if self.DictTab != {} : - if TabTitle in self.DictTab : - ListFile=self.DictTab[TabTitle] - if False in ListFile: - msg = u""" -Certains résultats ne sont pas enregistrer. -Voulez-vous fermer quand même ?""" - dlg = wx.MessageDialog(self, msg, "Sauvegarde",wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION) - - dlg.CenterOnParent() - if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]: - remove = False - evt.Veto() - dlg.Destroy() - else : - for f in ListFile[1:] : - print 'remove', f - os.remove(f) - remove = True - dlg.Destroy() - elif True in ListFile : - remove = True - if remove: - del self.DictTab[TabTitle] - else : - self.LastTabClose() - else : - remove = True - if self.nb.GetPageCount() == 1 and remove and not notebook : +# if self.DictTab != {} : +# if TabTitle in self.DictTab : +# ListFile=self.DictTab[TabTitle] +# if False in ListFile: +# msg = u""" +# Certains résultats ne sont pas enregistrer. +# Voulez-vous fermer quand même ?""" +# dlg = wx.MessageDialog(self, msg, "Sauvegarde",wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION) +# +# dlg.CenterOnParent() +# if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]: +# remove = False +# evt.Veto() +# dlg.Destroy() +# else : +# for f in ListFile[1:] : +# print 'remove', f +# os.remove(f) +# remove = True +# dlg.Destroy() +# elif True in ListFile : +# remove = True +# if remove: +# del self.DictTab[TabTitle] +# else : +# self.LastTabClose() +# else : +# remove = True + if self.nb.GetPageCount() == 1 and not notebook : self.LastTabClose() def LastTabClose(self) : if self.nb.GetPageCount() == 1 : - self.DisEnSaveTabAs(False) + #self.DisEnSaveTabAs(False) if self.DataTxt : self.ShowAPane("Text") elif self.DataPop : @@ -769,39 +773,39 @@ Voulez-vous fermer quand même ?""" else : self.ShowAPane("Intro_Text") - def OnSaveTabAs(self, event): - SelectTab = self.nb.GetSelection() - TabTitle = self.nb.GetPageText(SelectTab) - FileToSave = self.DictTab[TabTitle] - NewListFile = [] - dlg = wx.FileDialog( - self, message="Enregistrer sous...", defaultDir=os.getcwd(), - defaultFile="resultat.html", wildcard="Tous les fichiers|*", style=wx.SAVE | wx.OVERWRITE_PROMPT - ) - dlg.SetFilterIndex(2) - dlg.CenterOnParent() - - if dlg.ShowModal() == wx.ID_OK: - Path = dlg.GetPath() - Dirname = os.path.dirname(Path) - Filename = dlg.GetFilename() - else : - Path = False - dlg.Destroy() - if Path: - shutil.copyfile(FileToSave[-1], Path) - os.remove(FileToSave[len(FileToSave) - 1]) - NewListFile.append(True) - NewListFile.append(Path) - for f in FileToSave[1:-1] : - Fileout = os.path.join(Dirname, os.path.basename(f)) - shutil.copyfile(f, Fileout) - NewListFile.append(Fileout) - os.remove(f) - TabText = Filename - self.DictTab[TabText] = NewListFile - del self.DictTab[TabTitle] - self.nb.SetPageText(SelectTab, TabText) +# def OnSaveTabAs(self, event): +# SelectTab = self.nb.GetSelection() +# TabTitle = self.nb.GetPageText(SelectTab) +# FileToSave = self.DictTab[TabTitle] +# NewListFile = [] +# dlg = wx.FileDialog( +# self, message="Enregistrer sous...", defaultDir=os.getcwd(), +# defaultFile="resultat.html", wildcard="Tous les fichiers|*", style=wx.SAVE | wx.OVERWRITE_PROMPT +# ) +# dlg.SetFilterIndex(2) +# dlg.CenterOnParent() +# +# if dlg.ShowModal() == wx.ID_OK: +# Path = dlg.GetPath() +# Dirname = os.path.dirname(Path) +# Filename = dlg.GetFilename() +# else : +# Path = False +# dlg.Destroy() +# if Path: +# shutil.copyfile(FileToSave[-1], Path) +# os.remove(FileToSave[len(FileToSave) - 1]) +# NewListFile.append(True) +# NewListFile.append(Path) +# for f in FileToSave[1:-1] : +# Fileout = os.path.join(Dirname, os.path.basename(f)) +# shutil.copyfile(f, Fileout) +# NewListFile.append(Fileout) +# os.remove(f) +# TabText = Filename +# self.DictTab[TabText] = NewListFile +# del self.DictTab[TabTitle] +# self.nb.SetPageText(SelectTab, TabText) def GetStartPosition(self): @@ -835,20 +839,42 @@ Voulez-vous fermer quand même ?""" ################################################################ #debut des analyses ################################################################ - - def OnFreq(self, event): + def analyse_matrix(self, evt, analyse, analyse_type = '', matrix = None, dlgnb = 1): + if matrix is None : + matrix = self.tree.getmatrix() + #try : + analyse(self, matrix, parametres = {'type' : analyse_type}, dlg = progressbar(self, dlgnb)) + #except: + # BugReport(self) + + def OnFreq(self, event, matrix = None): + self.analyse_matrix(event, Frequences, analyse_type = 'freq', matrix = matrix, dlgnb = 3) + #if matrix is None : + # matrix = self.tree.getmatrix() + #try: + # Frequences(self, matrix, parametres = {'type' : 'freq'}, dlg = progressbar(self, 3)) + #except: + # BugReport(self) + + def OnChi2(self, event, matrix = None): + #try: + self.analyse_matrix(event, ChiSquare, matrix = matrix, analyse_type = 'chi2', dlgnb = 3) + #except: + # BugReport(self) + + def OnSimiTab(self, event, matrix = None): + if matrix is None : + matrix = self.tree.getmatrix() try: - Frequences(self) + DoSimi(self, matrix, parametres = {'type' : 'simimatrix'}, dlg = progressbar(self, 3)) except: BugReport(self) + + def OnCHDReinert(self, event, matrix = None): + if matrix is None : + matrix = self.tree.getmatrix() + AnalyseQuest(self, matrix, parametres = {'type' : 'reinertmatrix'}, dlg = progressbar(self, 3)) - def OnChi2(self, event): - try: - # print('PAS DE DEBUG SUR CHI2') - chi = ChiSquare(self) - except: - BugReport(self) - def OnStudent(self, event): try: MakeStudent(self) @@ -870,14 +896,14 @@ Voulez-vous fermer quand même ?""" except: BugReport(self) - def OnCHDAlceste(self, event): - try: - # print('PLUS DE BUG SUR ALCESTE QUESTIONNAIRE') - self.quest = AnalyseQuest(self) - if self.quest.val == wx.ID_OK: - PlaySound(self) - except: - BugReport(self) +# def OnCHDReinert(self, event): +# try: +# # print('PLUS DE BUG SUR ALCESTE QUESTIONNAIRE') +# self.quest = AnalyseQuest(self) +# if self.quest.val == wx.ID_OK: +# PlaySound(self) +# except: +# BugReport(self) def OnProto(self, evt) : Prototypical(self, {'type' : 'proto'}) @@ -914,12 +940,6 @@ Voulez-vous fermer quand même ?""" except: BugReport(self) -# def OnCheckcorpus(self, evt): -# try : -# checkcorpus(self) -# except : -# BugReport(self) - def OnTextStat(self, event, corpus = None): #print 'PAS DE BUG SUR TEXT STAT' try: @@ -969,20 +989,28 @@ Voulez-vous fermer quand même ?""" except : BugReport(self) + def OnImportTXM(self, evt) : + try : + ImportFactiva(self, 'txm') + except : + BugReport(self) + def ExtractTools(self, evt) : ID = evt.GetId() if ID == self.ID_splitvar : Extract(self, 'splitvar') - else : + elif ID == self.ID_extractmod : Extract(self, 'mods') + elif ID == self.ID_extractthem : + Extract(self, 'them') - def OnTextAlceste(self, event, corpus = None): + def OnTextReinert(self, event, corpus = None): try: #print('ATTENTION : PLUS DE BUG SUR ALCESTE') #RunAnalyse(self, corpus, Alceste, OptAlceste) if corpus is None : corpus = self.tree.getcorpus() - self.Text = Alceste(self, corpus, parametres = {'type': 'alceste'}, dlg = progressbar(self,6)) + self.Text = Reinert(self, corpus, parametres = {'type': 'alceste'}, dlg = progressbar(self,6)) if self.Text.val == wx.ID_OK: PlaySound(self) except: @@ -999,18 +1027,18 @@ Voulez-vous fermer quand même ?""" BugReport(self) def SimiCluster(self, parametres = {}, fromprof = False, pathout = '', listactives = [], actives = [], tableau = None) : - DoSimi(self, param = parametres, fromprof = fromprof, pathout = pathout, listactives = listactives, actives = actives, tableau = tableau) + DoSimi(self, param = parametres, fromprof = fromprof, listactives = listactives, actives = actives, tableau = tableau) - def OnSimi(self,evt): - try : +# def OnSimi(self,evt): +# try : #print 'ATTENTION !!!! VERGES' #print 'PLUS DE BUG SUR SIMI' - self.res = DoSimi(self, param = None) +# self.res = DoSimi(self, param = None) #self.res = Verges(self) - if self.res.val == wx.ID_OK : - PlaySound(self) - except : - BugReport(self) +# if self.res.val == wx.ID_OK : +# PlaySound(self) +# except : +# BugReport(self) ################################################################# def OnHelp(self, event): @@ -1064,11 +1092,11 @@ Voulez-vous fermer quand même ?""" class IntroPanel(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent) - #col = randint(0, 255) - #col1 = randint(0,255) - #col2 = randint(0,255) - col = 0 - bckgrdcolor = wx.Colour(col, col, col) + col = randint(0, 255) + col1 = randint(0,255) + col2 = randint(0,255) + col = 57 + bckgrdcolor = wx.Colour(col, col1, col2) self.SetBackgroundColour(bckgrdcolor) txtcolour = wx.Colour(250, 250, 250) linkcolor = wx.Colour(255, 0, 0) @@ -1110,7 +1138,7 @@ class IntroPanel(wx.Panel): self.hyper_lerass.UpdateLink() blank = wx.StaticText(PanelPres, -1, u'\n') blank1 = wx.StaticText(PanelPres, -1, u'\n') - labellicence = wx.StaticText(PanelPres, -1, u'Licence GNU GPL') + labellicence = wx.StaticText(PanelPres, -1, _(u"License GNU GPL").decode('utf8')) labellicence.SetForegroundColour(txtcolour) labellicence.SetBackgroundColour(bckgrdcolor) labelcopy = wx.StaticText(PanelPres, -1, ConfigGlob.get('DEFAULT', 'copyright'))