from tabsimi import DoSimi
from tabrsimple import InputText
from tabverges import Prototypical
+from tabsplitvar import SplitMatrixFromVar
#from textafcuci import AfcUci
from textdist import AnalysePam
from textstat import Stat
self.SimiFromCluster = SimiFromCluster
#langues
gettext.install('iramuteq', os.path.join(AppliPath,'locale'), unicode=True)
+ #langues = ['fr_FR', 'en', 'pt_PT']
+ #for l in langues :
+ # pass
self.presLan_fr = gettext.translation("iramuteq", os.path.join(AppliPath,'locale'), languages=['fr_FR'])
self.presLan_en = gettext.translation("iramuteq", os.path.join(AppliPath,'locale'), languages=['en'])
self.setlangue()
item.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN))
file_menu.AppendItem(item)
- item = wx.MenuItem(file_menu, ID_OpenText, _(u"Open a text corpora").decode('utf8'), _(u"Open a text corpora").decode('utf8'))
+ item = wx.MenuItem(file_menu, ID_OpenText, _(u"Open a text corpus").decode('utf8'), _(u"Open a text corpus").decode('utf8'))
item.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN))
file_menu.AppendItem(item)
self.ID_splitvar = splitvar.GetId()
self.ID_extractmod = extractmod.GetId()
self.ID_extractthem = extractthem.GetId()
- file_menu.AppendMenu(-1, _(u"Tools"), menuTools)
+ file_menu.AppendMenu(-1, _(u"Tools").decode('utf8'), menuTools)
#item = wx.MenuItem(file_menu, ID_SaveTab, _(u"Save tab as...").decode('utf8'), _(u"Save tab as...").decode('utf8'))
view_menu.Append(ID_VIEWDATA, _(u"Show data").decode('utf8'))
view_menu.Append(ID_RESULT, _(u'Show results').decode('utf8'))
#view_menu.AppendSeparator()
-
- analyse_menu = wx.Menu()
- 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")
+ matrix_menu = wx.Menu()
+ matrix_menu.Append(ID_Freq, _(u"Frequencies").decode('utf8'))
+ matrix_menu.Append(ID_Chi2, _(u"Chi2").decode('utf8'))
+ #matrix_menu.Append(ID_Student, u"t de Student")
menu_classif = wx.Menu()
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"Clustering").decode('utf8'), menu_classif)
- #analyse_menu.Append(ID_AFCM, u"AFCM")
- analyse_menu.Append(ID_SIMI, _(u"Similarities Analysis").decode('utf8'))
- analyse_menu.Append(ID_proto, _(u"Prototypical analysis").decode('utf8'))
+ matrix_menu.AppendMenu(-1, _(u"Clustering").decode('utf8'), menu_classif)
+ #matrix_menu.Append(ID_AFCM, u"AFCM")
+ matrix_menu.Append(ID_SIMI, _(u"Similarities Analysis").decode('utf8'))
+ matrix_menu.Append(ID_proto, _(u"Prototypical Analysis").decode('utf8'))
ID_RCODE = wx.NewId()
- analyse_menu.Append(ID_RCODE, u"Code R...")
-
+ matrix_menu.Append(ID_RCODE, u"Code R...")
+ #menu_splittab = wx.Menu()
+ #ID_SPLITVAR = wx.NewId()
+ #splitvar = wx.MenuItem(menu_splittab, ID_SPLITVAR, _(u"Split from variable").decode('utf8'))
+ #menu_splittab.AppendItem(splitvar)
+ #matrix_menu.AppendMenu(-1, _(u"Split matrix").decode('utf8'), menu_splittab)
+ self.matrix_menu = matrix_menu
+
text_menu = wx.Menu()
#text_menu.Append(ID_CHECKCORPUS, u"Vérifier le corpus")
text_menu.Append(ID_TEXTSTAT, _(u"Statistics").decode('utf8'))
text_menu.Append(ID_SimiTxt, _(u"Similarities Analysis").decode('utf8'))
ID_WC = wx.NewId()
text_menu.Append(ID_WC, _(u"WordCloud").decode('utf8'))
+ self.text_menu = text_menu
help_menu = wx.Menu()
help_menu.Append(wx.ID_ABOUT, _(u"About...").decode('utf8'))
- help_menu.Append(wx.ID_HELP, _(u"Inline help...").decode('utf8'))
+ help_menu.Append(wx.ID_HELP, _(u"Online 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, _("Matrix analysis").decode('utf8'))
+ self.mb.Append(matrix_menu, _(u"Matrix analysis").decode('utf8'))
self.mb.Append(text_menu, _(u"Text analysis").decode('utf8'))
self.mb.Append(help_menu, _(u"Help").decode('utf8'))
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)
+ #self.Bind(wx.EVT_MENU, self.OnSplitVar, id=ID_SPLITVAR)
#self.Bind(wx.EVT_MENU, self.OnCheckcorpus, id = ID_CHECKCORPUS)
self.Bind(wx.EVT_MENU, self.OnTextStat, id=ID_TEXTSTAT)
self.Bind(wx.EVT_MENU, self.OnTextSpec, id=ID_ASLEX)
guilangue = self.pref.get('iramuteq', 'guilanguage')
if guilangue == 'french' :
self.presLan_fr.install()
+ elif guilangue == 'portuguese' :
+ self.presLan_pt.install()
else :
self.presLan_en.install()
mylocale = wx.Locale(langues[guilangue])
print 'onclose'
with open(self.ConfigPath['path'], 'w') as f :
self.PathPath.write(f)
- if self.DictTab != {} :
- savestates = [self.DictTab[item][0] for item in self.DictTab]
- if False in savestates :
- notsave = [item for item in self.DictTab if self.DictTab[item][0] == False]
- msg = u"""
- Certains résultats ne sont pas enregistrés.
- 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]:
- event.Veto()
- dlg.Destroy()
- else:
- dlg.Destroy()
- for item in notsave :
- for tmpfile in self.DictTab[item][1:] :
- os.remove(tmpfile)
- print 'remove : ' + tmpfile
- self._mgr.UnInit()
- del self._mgr
- self.Destroy()
- else :
- self._mgr.UnInit()
- del self._mgr
- self.Destroy()
- else :
- self._mgr.UnInit()
- del self._mgr
- self.Destroy()
- #if sys.platform == 'win32' :
- # os.system("taskkill /im iramuteq.exe /f")
- # print 'meurtre de process'
+ self._mgr.UnInit()
+ del self._mgr
+ self.Destroy()
def OnOpenData(self, event):
inputname, self.input_path = OnOpen(self, "Data")
self._mgr.Update()
def OnSubText(self, corpus, parametres = None):
- busy = wx.BusyInfo(_("Please wait...").decode('utf8'), self)
- wx.SafeYield()
+ if corpus is None :
+ corpus = self.tree.getcorpus()
builder = SubBuilder(self, corpus, parametres)
- del busy
if builder.res == wx.ID_OK :
+ busy = wx.BusyInfo(_("Please wait...").decode('utf8'), self)
+ wx.SafeYield()
corpus = builder.doanalyse()
self.history.add(corpus.parametres)
self.tree.OnItemAppend(corpus.parametres)
OpenAnalyse(self, corpus.parametres)
+ del busy
def OpenText(self):
dlg = wx.ProgressDialog("Ouverture...",
REPERE
"""
info.WebSite = ("http://www.iramuteq.org", u"Site web IRaMuTeQ")
- dev = ConfigGlob.get('DEFAULT', 'dev').split(';')
+ dev = ConfigGlob.get('DEFAULT', 'dev').decode('utf8').split(';')
info.Developers = dev
info.License = u"""Iramuteq est un logiciel libre ; vous pouvez le diffuser et/ou le modifier
suivant les termes de la Licence Publique Générale GNU telle que publiée
################################################################
#debut des analyses
################################################################
- def analyse_matrix(self, evt, analyse, analyse_type = '', matrix = None, dlgnb = 1):
+ def analyse_matrix(self, 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)
+ try :
+ analyse(self, matrix, parametres = {'type' : analyse_type}, dlg = 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)
+ self.analyse_matrix(Frequences, analyse_type = 'freq', matrix = matrix, dlgnb = 3)
def OnChi2(self, event, matrix = None):
- #try:
- self.analyse_matrix(event, ChiSquare, matrix = matrix, analyse_type = 'chi2', dlgnb = 3)
- #except:
- # BugReport(self)
+ self.analyse_matrix(ChiSquare, matrix = matrix, analyse_type = 'chi2', dlgnb = 3)
def OnSimiTab(self, event, matrix = None):
- if matrix is None :
- matrix = self.tree.getmatrix()
- try:
- DoSimi(self, matrix, parametres = {'type' : 'simimatrix'}, dlg = progressbar(self, 3))
- except:
- BugReport(self)
+ self.analyse_matrix(DoSimi, matrix = matrix, analyse_type = 'simimatrix', dlgnb = 5)
def OnCHDReinert(self, event, matrix = None):
if matrix is None :
# except:
# BugReport(self)
- def OnProto(self, evt) :
- Prototypical(self, {'type' : 'proto'})
+ def OnProto(self, evt, matrix = None) :
+ self.analyse_matrix(Prototypical, matrix = matrix, analyse_type = 'proto', dlgnb = 3)
+ #Prototypical(self, {'type' : 'proto'})
+
+ def OnSplitVar(self, evt, matrix = None):
+ self.analyse_matrix(SplitMatrixFromVar, matrix = matrix, analyse_type = 'splitvar', dlgnb = 3)
+ matrix = self.tree.getmatrix()
+
def OnSimiTxt(self, evt, corpus = None) :
# print 'PLUS DE BUG SUR SIMITXT'
#self.Text = SimiTxt(self)
if corpus is None :
corpus = self.tree.getcorpus()
- self.Text = SimiTxt(self, corpus, parametres = {'type': 'simitxt'}, dlg = progressbar(self, 3))
+ self.Text = SimiTxt(self, corpus, parametres = {'type': 'simitxt'}, dlg = 3)
if self.Text.val == wx.ID_OK :
PlaySound(self)
except :
try :
if corpus is None :
corpus = self.tree.getcorpus()
- self.Text = WordCloud(self, corpus, parametres = {'type' : 'wordcloud'}, dlg = progressbar(self, 3))
+ self.Text = WordCloud(self, corpus, parametres = {'type' : 'wordcloud'}, dlg = 3)
if self.Text.val == wx.ID_OK :
PlaySound(self)
except :
BugReport(self)
def OnClusterCloud(self, corpus, parametres = None) :
- self.Text = ClusterCloud(self, corpus, parametres = parametres, dlg = progressbar(self, 3))
+ self.Text = ClusterCloud(self, corpus, parametres = parametres, dlg = 3)
def OnAFCM(self, event):
try:
try:
if corpus is None :
corpus = self.tree.getcorpus()
- self.Text = Stat(self, corpus, parametres = {'type': 'stat'}, dlg = progressbar(self, 7))
+ self.Text = Stat(self, corpus, parametres = {'type': 'stat'}, dlg = 7)
if self.Text.val == wx.ID_OK :
PlaySound(self)
#print('ATTENTION : PLUS DE BUG SUR LEXICO')
if corpus is None :
corpus = self.tree.getcorpus()
- self.Text = Lexico(self, corpus, parametres = {'type' : 'spec'}, dlg = progressbar(self, 3))
+ self.Text = Lexico(self, corpus, parametres = {'type' : 'spec'}, dlg = 3)
if self.Text.val == wx.ID_OK :
PlaySound(self)
except:
#RunAnalyse(self, corpus, Alceste, OptAlceste)
if corpus is None :
corpus = self.tree.getcorpus()
- self.Text = Reinert(self, corpus, parametres = {'type': 'alceste'}, dlg = progressbar(self,6))
+ self.Text = Reinert(self, corpus, parametres = {'type': 'alceste'}, dlg = 6)
if self.Text.val == wx.ID_OK:
PlaySound(self)
except:
try:
if corpus is None :
corpus = self.tree.getcorpus()
- self.Text = AnalysePam(self, corpus, parametres = {'type' : 'pamtxt'}, dlg = progressbar(self,6))
+ self.Text = AnalysePam(self, corpus, parametres = {'type' : 'pamtxt'}, dlg = 6)
if self.Text.val == wx.ID_OK:
PlaySound(self)
except:
if truepath :
if os.path.splitext(self.filename)[1] in ['.csv', '.xls', '.ods']:
self.tableau = Tableau(self, self.filename)
- get_table_param(self, self.filename)
- self.tableau.make_content()
- self.tableau.show_tab()
+ val = get_table_param(self, self.filename)
+ if val == wx.ID_OK :
+ self.tableau.make_content()
+ OpenAnalyse(self, self.tableau.parametres)
+ self.tree.OnItemAppend(self.tableau.parametres)
+ #get_table_param(self, self.filename)
+ #self.tableau.make_content()
+ #self.tableau.show_tab()
#open_data(self, self.filename)
elif os.path.splitext(self.filename)[1] == '.txt':
self.OpenText()
self.ShowMain()
def ShowMain(self):
- frame = IraFrame(None, -1, "IRaMuTeQ " + ConfigGlob.get('DEFAULT', 'version'), size=(1100, 800))
+ displaySize = wx.DisplaySize()
+ w = displaySize[0]/1.2
+ h = displaySize[1]/1.2
+ frame = IraFrame(None, -1, "IRaMuTeQ " + ConfigGlob.get('DEFAULT', 'version'), size=(w, h))
frame.Show()
frame.finish_init()
frame.Upgrade()