#!/bin/env python
# -*- coding: utf-8 -*-
#Author: Pierre Ratinaud
-#Copyright (c) 2008-2012, Pierre Ratinaud
+#Copyright (c) 2008-2016, Pierre Ratinaud
#License: GNU GPL
from optparse import OptionParser
import wx.grid
import wx.lib.hyperlink as hl
#------------------------------------
-from functions import BugReport, PlaySound, History
+from functions import BugReport, PlaySound, History, progressbar
from checkversion import NewVersion
from guifunct import *
from tableau import Tableau
from dialog import PrefDialog
from tabfrequence import Frequences, FreqMultiple
from tabchi2 import ChiSquare
+from tabchi2mcnemar import McNemar
#from tabstudent import MakeStudent
from tabchddist import ChdCluster
from tabafcm import DoAFCM
#from textdist import AnalysePam
from textstat import Stat
from textaslexico import Lexico
+from textlabbe import DistLabbe
from textsimi import SimiTxt, SimiFromCluster
from textwordcloud import WordCloud, ClusterCloud
from textreinert import Reinert
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
+from parse_dmi import ImportDMI
from tools import Extract
+from analyse_merge import AnalyseMerge
from tree import LeftTree
##########################################################
ID_OnOpenAnalyse = wx.NewId()
ID_Freq = wx.NewId()
ID_Chi2 = wx.NewId()
+ID_Chi2mc = wx.NewId()
ID_Student = wx.NewId()
ID_CHDSIM = wx.NewId()
ID_CHDReinert = wx.NewId()
ID_Fact_xml = wx.NewId()
ID_Fact_mail = wx.NewId()
ID_Fact_copy = wx.NewId()
+ID_exportmeta = wx.NewId()
+ID_importdmi = wx.NewId()
+ID_merge = wx.NewId()
+ID_labbe = wx.NewId()
##########################################################
#elements de configuration
##########################################################
DefaultConf = ConfigParser()
DefaultConf.read(DictConfigPath['preferences'])
#repertoire de l'utilisateur
-if os.getenv('HOME') != None:
- user_home = os.getenv('HOME')
-else:
- user_home = os.getenv('HOMEPATH')
-UserConfigPath = os.path.abspath(os.path.join(user_home, '.iramuteq'))
+user_home = os.getenv('HOME')
+if user_home is None :
+ user_home = os.path.expanduser('~')
+
+UserConfigPath = os.path.abspath(os.path.join(user_home, '.iramuteq-%s' % ConfigGlob.get('DEFAULT', 'version_nb')))
#Si pas de fichiers de config utilisateur, on cree le repertoire
CreateIraDirectory(UserConfigPath, AppliPath)
#fichiers log pour windows (py2exe)
'freq' : 'frequences.png',
'freqmulti' : 'frequences.png',
'chi2' : 'chi2.png',
+ 'chi2mcnemar' : 'chi2.png',
'reinertmatrix' : 'reinertmatrix.png',
'simimatrix' : 'simimatrix.png',
'simiclustermatrix' : 'simimatrix.png',
'iramuteq' : 'iraicone.png',
'subcorpusmeta' : 'subcorpusmeta.png',
'subcorpusthema' : 'subcorpusthema.png',
- 'preferences' : 'preferences.png'
+ 'preferences' : 'preferences.png',
+ 'exportmetatable' : 'exportmetatable.png',
+ 'importdmi' : 'twitter.png',
+ 'labbe' : 'spec.png'
}
#####################################################################
size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE |
wx.SUNKEN_BORDER |
wx.CLIP_CHILDREN):
- log.info('Starting...')
+ log.info('Starting... ' )
+ log.info('version : %s' % ConfigGlob.get('DEFAULT', 'version'))
wx.Frame.__init__(self, parent, id, title, pos, size, style)
#configuration
self.AppliPath = AppliPath
item = wx.MenuItem(file_menu, ID_ImportTXM, _(u"Import from TXM").decode('utf8'), _(u"Import from TXM").decode('utf8'))
item.SetBitmap(self.images_analyses['TXM'])
file_menu.AppendItem(item)
-
+
item = wx.MenuItem(file_menu, ID_ImportEuro, _(u"Import from Europress").decode('utf8'), _(u"Import from Europress").decode('utf8'))
item.SetBitmap(self.images_analyses['europress'])
- file_menu.AppendItem(item)
-
+ file_menu.AppendItem(item)
+
+ item = wx.MenuItem(file_menu, ID_importdmi, _(u"Import from DMI-TCAT (exp.)").decode('utf8'), _(u"Import from DMI-TCAT (exp.)").decode('utf8'))
+ item.SetBitmap(self.images_analyses['importdmi'])
+ file_menu.AppendItem(item)
+
+ item = wx.MenuItem(file_menu, ID_merge, _(u'Merge graphs').decode('utf8'), _(u'Merge graphs').decode('utf8'))
+ file_menu.AppendItem(item)
+
menuFactiva = wx.Menu()
fact_from_xml = wx.MenuItem(menuFactiva, ID_Fact_xml, _(u"from xml").decode('utf8'))
fact_from_xml.SetBitmap(self.images_analyses['factiva_xml'])
self.ID_extractthem = extractthem.GetId()
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'))
#item.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_FILE_SAVE_AS))
#file_menu.AppendItem(item)
-
+
file_menu.Append(wx.ID_EXIT, _(u"Exit").decode('utf8'))
-
+
edit_menu = wx.Menu()
pref = wx.MenuItem(edit_menu, wx.ID_PREFERENCES, _(u'Preferences').decode('utf8'))
pref.SetBitmap(self.images_analyses['preferences'])
edit_menu.AppendItem(pref)
#edit_menu.Append(wx.ID_PREFERENCES, _(u'Preferences').decode('utf8'))
-
+
view_menu = wx.Menu()
home = wx.MenuItem(view_menu, ID_ACCEUIL, _(u"Home page").decode('utf8'))
home.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_GO_HOME, size = (16,16)))
#view_menu.AppendSeparator()
matrix_menu = wx.Menu()
matanalyses = [[ID_Freq, _(u"Frequencies").decode('utf8'), 'freq'],
- [ID_Freq, _(u"Multiple Frequencies").decode('utf8'), 'freqmulti'],
+ [ID_FreqMulti, _(u"Multiple Frequencies").decode('utf8'), 'freqmulti'],
[ID_Chi2, _(u"Chi2").decode('utf8'), 'chi2'],
+ [ID_Chi2mc, _(u"Chi2 McNemar").decode('utf8'), 'chi2mcnemar'],
{'name' : _(u"Clustering").decode('utf8'),
'content' : [[ID_CHDReinert, _(u"Reinert's Method").decode('utf8'), 'reinertmatrix']]},
[ID_SIMI, _(u"Similarities Analysis").decode('utf8'), 'simimatrix'],
[ID_proto, _(u"Prototypical Analysis").decode('utf8'), 'proto'],
- [ID_Splitfromvar, _(u"Split from variable").decode('utf8'), 'subcorpusmeta']]
-
+ [ID_Splitfromvar, _(u"Split from variable").decode('utf8'), 'subcorpusmeta'],
+ ]
+
for analyse in matanalyses :
if not isinstance(analyse, dict) :
item = wx.MenuItem(matrix_menu, analyse[0], analyse[1])
#menu_splittab.AppendItem(splitvar)
#matrix_menu.AppendMenu(-1, _(u"Split matrix").decode('utf8'), menu_splittab)
self.matrix_menu = matrix_menu
-
+
text_menu = wx.Menu()
analyses_text = [[ID_TEXTSTAT, _(u"Statistics").decode('utf8'), 'stat'],
[ID_ASLEX, _(u"Specificities and CA").decode('utf8'), 'spec'],
+ [ID_labbe, _(u"Labbe Distance").decode('utf8'),'labbe'],
{'name' : _(u"Clustering").decode('utf8'),
'content' : [[ID_TEXTREINERT, _(u"Reinert's Method").decode('utf8'), 'alceste']]},
[ID_SimiTxt, _(u"Similarities Analysis").decode('utf8'), 'simitxt'],
{'name' : _(u"Sub corpus").decode('utf8'),
'content' : [[ID_Subtxtfrommeta, _(u'Sub corpus from metadata').decode('utf8'), 'subcorpusmeta'],
[ID_Subtxtfromthem, _(u'Sub corpus from thematic').decode('utf8'), 'subcorpusthema']]},
+ [ID_exportmeta, _(u"Export metadata table").decode('utf8'), 'exportmetatable'],
]
-
+
for analyse in analyses_text :
if not isinstance(analyse, dict) :
item = wx.MenuItem(text_menu, analyse[0], analyse[1])
#
# text_menu.Append(ID_WC, _(u"WordCloud").decode('utf8'))
self.text_menu = text_menu
-
+
help_menu = wx.Menu()
about = wx.MenuItem(help_menu, wx.ID_ABOUT, _(u"About...").decode('utf8'))
about.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_INFORMATION, size = (16,16)))
help.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_HELP, size = (16,16)))
help_menu.AppendItem(help)
#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(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.SetMenuBar(self.mb)
#--------------------------------------------------------------------
self.statusbar = self.CreateStatusBar(2, wx.ST_SIZEGRIP)
tb1.AddSeparator()
tb1.AddLabelTool(ID_ImportEuro, "ImportEuro", self.images_analyses['europress'], shortHelp= _(u"Import from Europress").decode('utf8'), longHelp=_(u"Import from Europress").decode('utf8'))
tb1.AddSeparator()
+ tb1.AddLabelTool(ID_importdmi, "ImportDMI", self.images_analyses['importdmi'], shortHelp= _(u"Import from DMI-TCAT (exp.)").decode('utf8'), longHelp=_(u"Import from DMI-TCAT (exp.)").decode('utf8'))
+ tb1.AddSeparator()
tb1.AddLabelTool(ID_Fact_xml, "ImportFactxml", self.images_analyses['factiva_xml'], shortHelp= _(u"Factiva from xml").decode('utf8'), longHelp=_(u"Factiva from xml").decode('utf8'))
tb1.AddLabelTool(ID_Fact_mail, "ImportFactmail", self.images_analyses['factiva_mail'], shortHelp= _(u"Factiva from mail").decode('utf8'), longHelp=_(u"Factiva from mail").decode('utf8'))
tb1.AddLabelTool(ID_Fact_copy, "ImportFactcopy", self.images_analyses['factiva_copy'], shortHelp= _(u"Factiva from copy/paste").decode('utf8'), longHelp=_(u"Factiva from copy/paste").decode('utf8'))
tb1.AddLabelTool(ID_ACCEUIL, "Home", wx.ArtProvider_GetBitmap(wx.ART_GO_HOME, size = (16,16)), shortHelp= _(u"Home page").decode('utf8'), longHelp=_(u"Home page").decode('utf8'))
tb1.AddLabelTool(ID_RESULT, "Results", wx.ArtProvider_GetBitmap(wx.ART_LIST_VIEW, size = (16,16)), shortHelp= _(u'Show results').decode('utf8'), longHelp=_(u'Show results').decode('utf8'))
tb1.Realize()
-
+
tb_text = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
wx.TB_FLAT | wx.TB_NODIVIDER)
for analyse in analyses_text :
for subana in analyse['content'] :
tb_text.AddLabelTool(subana[0], subana[1], self.images_analyses.get(subana[2], wx.EmptyBitmap(16,16)), shortHelp = subana[1], longHelp = subana[1])
tb_text.Realize()
-
+
tb_mat = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
wx.TB_FLAT | wx.TB_NODIVIDER)
for analyse in matanalyses :
tb_mat.AddLabelTool(analyse[0], analyse[1], self.images_analyses.get(analyse[2], wx.EmptyBitmap(16,16)), shortHelp = analyse[1], longHelp = analyse[1])
else :
for subana in analyse['content'] :
- tb_mat.AddLabelTool(subana[0], subana[1], self.images_analyses.get(subana[2], wx.EmptyBitmap(16,16)), shortHelp = subana[1], longHelp = subana[1])
+ tb_mat.AddLabelTool(subana[0], subana[1], self.images_analyses.get(subana[2], wx.EmptyBitmap(16,16)), shortHelp = subana[1], longHelp = subana[1])
tb_mat.Realize()
-
+
tb_help = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
wx.TB_FLAT | wx.TB_NODIVIDER)
tb_help.AddLabelTool(wx.ID_ABOUT, "About", wx.ArtProvider_GetBitmap(wx.ART_INFORMATION, size=(16,16)), shortHelp=_(u"About...").decode('utf8'), longHelp=_(u"About...").decode('utf8'))
#------------------------------------------------------------------------------------------------
self.text_ctrl_txt = wx.TextCtrl(self, -1, "", wx.Point(0, 0), wx.Size(200, 200), wx.NO_BORDER | wx.TE_MULTILINE | wx.TE_RICH2 | wx.TE_READONLY)
-
+
#self._mgr.AddPane(self.text_ctrl_txt, wx.aui.AuiPaneInfo().
# Name("Text").CenterPane())
self._mgr.AddPane(self.text_ctrl_txt, aui.AuiPaneInfo().
self._mgr.AddPane(self.tree, aui.AuiPaneInfo().Name("lefttree").Caption(_(u"Historic").decode('utf8')).
Left().MinSize(wx.Size(200,500)).Layer(1).Position(1).CloseButton(False).MaximizeButton(True).
MinimizeButton(True))
-
+
#self.nb = wx.aui.AuiNotebook(self, -1, wx.DefaultPosition, wx.DefaultSize, wx.aui.AUI_NB_DEFAULT_STYLE | wx.aui.AUI_NB_TAB_EXTERNAL_MOVE | wx.aui.AUI_NB_TAB_MOVE | wx.aui.AUI_NB_TAB_FLOAT| wx.NO_BORDER)
self.nb = aui.AuiNotebook(self, -1, wx.DefaultPosition, wx.DefaultSize, aui.AUI_NB_DEFAULT_STYLE | aui.AUI_NB_TAB_EXTERNAL_MOVE | aui.AUI_NB_TAB_MOVE | aui.AUI_NB_TAB_FLOAT| wx.NO_BORDER)
notebook_flags = aui.AUI_NB_DEFAULT_STYLE | aui.AUI_NB_TAB_EXTERNAL_MOVE | aui.AUI_NB_TAB_MOVE | aui.AUI_NB_TAB_FLOAT| wx.NO_BORDER
# CenterPane())
self._mgr.AddPane(self.nb, aui.AuiPaneInfo().
Name("Tab_content").
- CenterPane())
-
+ CenterPane())
+
#self._mgr.AddPane(self.Sheet, wx.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
-
+
#self._mgr.AddPane(tb1, wx.aui.AuiPaneInfo().
# Name("tb1").Caption("Fichiers").
# ToolbarPane().Top().
Name("tb1").Caption("Fichiers").
ToolbarPane().Top().
LeftDockable(True).RightDockable(False))
-
+
self._mgr.AddPane(tb_text, aui.AuiPaneInfo().
Name("tb_text").Caption("analyse_text").
ToolbarPane().Top().
LeftDockable(True).RightDockable(False))
-
+
self._mgr.AddPane(tb_mat, aui.AuiPaneInfo().
Name("tb_mat").Caption("analyse_matrix").
ToolbarPane().Top().
LeftDockable(True).RightDockable(False))
-
+
self._mgr.AddPane(tb_help, aui.AuiPaneInfo().
Name("tb_help").Caption("help").
ToolbarPane().Top().
LeftDockable(True).RightDockable(False))
-
+
self._mgr.GetPane('tb_text').Hide()
self._mgr.GetPane('tb_mat').Hide()
-
+
self.ShowAPane("Intro_Text")
self._mgr.GetPane("lefttree").Show()
self._mgr.GetPane("classif_tb").Hide()
self.Bind(wx.EVT_MENU, self.OnFreq, id=ID_Freq)
self.Bind(wx.EVT_MENU, self.OnFreqMulti, id=ID_FreqMulti)
self.Bind(wx.EVT_MENU, self.OnChi2, id=ID_Chi2)
+ self.Bind(wx.EVT_MENU, self.OnChi2McNemar, id=ID_Chi2mc)
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.OnCHDReinert, id=ID_CHDReinert)
#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)
+ self.Bind(wx.EVT_MENU, self.OnTextLabbe, id=ID_labbe)
self.Bind(wx.EVT_MENU, self.OnTextAfcm, id=ID_TEXTAFCM)
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.OnPref, id=wx.ID_PREFERENCES)
self.Bind(wx.EVT_MENU, self.OnImportTXM, id=ID_ImportTXM)
self.Bind(wx.EVT_MENU, self.OnImportEuropress, id=ID_ImportEuro)
+ self.Bind(wx.EVT_MENU, self.OnImportDMI, id=ID_importdmi)
+ self.Bind(wx.EVT_MENU, self.OnExportMeta, id=ID_exportmeta)
+ self.Bind(wx.EVT_MENU, self.OnMergeGraph, id = ID_merge)
self.Bind(wx.EVT_CLOSE, self.OnClose)
##################################################################
flags = self._mgr.GetAGWFlags()
with open(ConfigPath['path'], 'w') as f :
self.PathPath.write(f)
else:
- BestRPath = True
+ BestRPath = True
if BestRPath :
self.RPath = self.PathPath.get('PATHS', 'rpath')
if New :
if not RLibsAreInstalled(self) :
CheckRPackages(self)
else :
- msg = '\n'.join([_(u"Can't find R executable"), _(u"If R is not installed, get it from http://www.r-project.org.").decode('utf8'),
+ msg = '\n'.join([_(u"Can't find R executable").decode('utf8'), _(u"If R is not installed, get it from http://www.r-project.org.").decode('utf8'),
_(u"If R is installed, report its path in Preferences.").decode('utf8'),
_(u"IRaMuTeQ does not work without R.").decode('utf8')])
- dlg = wx.MessageDialog(self, msg, _(u"Problem").decode('utf8'), wx.OK | wx.NO_DEFAULT | wx.ICON_WARNING)
+ dlg = wx.MessageDialog(self, msg, _(u"Problem").decode('utf8'), wx.OK | wx.ICON_WARNING)
dlg.CenterOnParent()
if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]:
pass
if Show :
self._mgr.GetPane('tb_text').Show()
else :
- self._mgr.GetPane('tb_text').Hide()
+ self._mgr.GetPane('tb_text').Hide()
elif menu == 'matrix' :
menu_pos = 3
if Show :
self._mgr.GetPane('tb_mat').Show()
else :
- self._mgr.GetPane('tb_mat').Hide()
+ self._mgr.GetPane('tb_mat').Hide()
elif menu == 'view' :
menu_pos = 2
else :
menu_pos = None
-
+
#menu_pos = self.mb.FindMenu(menu)
if not menu_pos is None :
self.mb.EnableTop(menu_pos, Show)
self.tableau.make_content()
OpenAnalyse(self, self.tableau.parametres)
self.tree.OnItemAppend(self.tableau.parametres)
- del busy
+ del busy
except :
del busy
BugReport(self)
wx.SafeYield()
corpus = builder.doanalyse()
self.history.add(corpus.parametres)
- self.tree.OnItemAppend(corpus.parametres)
OpenAnalyse(self, corpus.parametres)
+ self.tree.OnItemAppend(corpus.parametres)
del busy
def OpenText(self):
- dlg = wx.ProgressDialog("Ouverture...",
- "Veuillez patienter...",
- maximum=2,
- parent=self,
- style=wx.PD_APP_MODAL | wx.PD_AUTO_HIDE | wx.PD_ELAPSED_TIME | wx.PD_CAN_ABORT
- )
-
- builder = Builder(self, dlg)
+ builder = Builder(self, 5)
if builder.res == wx.ID_OK :
try :
corpus = builder.doanalyse()
self.tree.OnItemAppend(corpus.parametres)
OpenAnalyse(self, corpus.parametres)
except :
- dlg.Destroy()
+ builder.dlg.Destroy()
BugReport(self)
else :
count = 1
- keepGoing = dlg.Update(count, u"Lecture du fichier")
+ keepGoing = builder.dlg.Update(count, u"Lecture du fichier")
self.ShowMenu('view')
self.ShowMenu('text')
self.ShowMenu('matrix', False)
self.DataTxt = False
self.Text = ''
count += 1
- keepGoing = dlg.Update(count, u"Chargement du dictionnaire")
- dlg.Destroy()
+ keepGoing = builder.dlg.Update(count, u"Chargement du dictionnaire")
+ builder.dlg.Destroy()
def OnExit(self, event):
self.Close()
self.x = self.x + 20
x = self.x
pt = self.ClientToScreen(wx.Point(0, 0))
-
+
return wx.Point(pt.x + x, pt.y + x)
-
+
def ShowAPane(self, panel):
for pane in self._mgr.GetAllPanes() :
- if not pane.IsToolbar() and pane.name != 'lefttree':
+ if not pane.IsToolbar() and pane.name != 'lefttree':
pane.Hide()
self._mgr.GetPane(panel).Show()
self._mgr.Update()
-
+
def OnAcceuil(self, event):
self.ShowAPane(u"Intro_Text")
event.Skip()
-
+
def CreateHTMLCtrl(self):
ctrl = wx.html.HtmlWindow(self, -1, wx.DefaultPosition, wx.Size(400, 300))
if "gtk2" in wx.PlatformInfo:
ctrl.SetStandardFonts()
- ctrl.SetPage(u"text")
+ ctrl.SetPage(u"text")
return ctrl
def ShowTab(self, evt):
#print 'plus de bug@@@@@@@@@@@@@@@@@@@@@@'
analyse(self, matrix, parametres = parametres, dlg = dlgnb)
except:
- BugReport(self)
+ BugReport(self)
def OnFreq(self, event, matrix = None):
self.analyse_matrix(Frequences, analyse_type = 'freq', matrix = matrix, dlgnb = 3)
-
+
def OnFreqMulti(self, event, matrix = None):
self.analyse_matrix(FreqMultiple, analyse_type = 'freqmulti', matrix = matrix, dlgnb = 3)
def OnChi2(self, event, matrix = None):
- self.analyse_matrix(ChiSquare, matrix = matrix, analyse_type = 'chi2', dlgnb = 3)
+ self.analyse_matrix(ChiSquare, matrix = matrix, analyse_type = 'chi2', dlgnb = 3)
+
+ def OnChi2McNemar(self, event, matrix = None):
+ self.analyse_matrix(McNemar, matrix = matrix, analyse_type = 'chi2mcnemar', dlgnb = 3)
def OnSimiTab(self, event, matrix = None):
self.analyse_matrix(DoSimi, matrix = matrix, analyse_type = 'simimatrix', dlgnb = 5)
# matrix = self.tree.getmatrix()
#AnalyseQuest(self, matrix, parametres = {'type' : 'reinertmatrix'}, dlg = 3)
self.analyse_matrix(AnalyseQuest, matrix = matrix, analyse_type = 'reinertmatrix', dlgnb = 5)
-
+
def OnStudent(self, event):
try:
- MakeStudent(self)
+ MakeStudent(self)
except:
BugReport(self)
PlaySound(self)
except:
BugReport(self)
-
+
# def OnCHDReinert(self, event):
# try:
# # print('PLUS DE BUG SUR ALCESTE QUESTIONNAIRE')
# PlaySound(self)
# except:
# BugReport(self)
-
+ def OnMergeGraph(self, evt):
+ #FIXME
+ AnalyseMerge(self, {'type': 'merge', 'fileout' : '/tmp/test.txt'}, dlg = 5)
+
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):
if matrix is None :
matrix = self.tree.getmatrix()
self.analyse_matrix(SplitMatrixFromVar, matrix = matrix, analyse_type = 'splitvar', parametres = {'pathout': matrix.pathout.dirout}, dlgnb = 3)
#matrix = self.tree.getmatrix()
-
+
def OnSimiTxt(self, evt, corpus = None) :
# print 'PLUS DE BUG SUR SIMITXT'
try :
#self.Text = SimiTxt(self)
if corpus is None :
- corpus = self.tree.getcorpus()
+ corpus = self.tree.getcorpus()
self.Text = SimiTxt(self, corpus, parametres = {'type': 'simitxt'}, dlg = 3)
if self.Text.val == wx.ID_OK :
PlaySound(self)
except :
BugReport(self)
-
+
def OnWordCloud(self, evt, corpus = None) :
# print 'PLUS DE BUG SUR WORDCLOUD'
try :
if corpus is None :
- corpus = self.tree.getcorpus()
+ corpus = self.tree.getcorpus()
self.Text = WordCloud(self, corpus, parametres = {'type' : 'wordcloud'}, dlg = 3)
if self.Text.val == wx.ID_OK :
PlaySound(self)
if corpus is None :
corpus = self.tree.getcorpus()
self.Text = Stat(self, corpus, parametres = {'type': 'stat'}, dlg = 7)
-
+
if self.Text.val == wx.ID_OK :
PlaySound(self)
except:
BugReport(self)
-
- def OnTextSpec(self, event, corpus = None):
+
+ def OnTextSpec(self, event, corpus = None):
try:
#self.Text = AsLexico(self)
#print('ATTENTION : PLUS DE BUG SUR LEXICO')
PlaySound(self)
except:
BugReport(self)
-
+
+ def OnTextLabbe(self, event, corpus = None):
+ try:
+ if corpus is None :
+ corpus = self.tree.getcorpus()
+ self.Text = DistLabbe(self, corpus, parametres = {'type' : 'labbe'}, dlg = 3)
+ if self.Text.val == wx.ID_OK :
+ PlaySound(self)
+ except:
+ BugReport(self)
+
+
def OnTextAfcm(self, event):
try:
AfcUci(self)
ImportFactiva(self, 'txm')
except :
BugReport(self)
-
+
def OnImportEuropress(self, evt) :
try :
ImportFactiva(self, 'euro')
except :
BugReport(self)
+ def OnImportDMI(self, evt):
+ ImportDMI(self, {})
+
+ def OnExportMeta(self, evt, corpus = None):
+ if corpus is None :
+ corpus = self.tree.getcorpus()
+ try :
+ ExportMetaTable(self, corpus)
+ except :
+ BugReport(self)
+
def ExtractTools(self, evt) :
ID = evt.GetId()
if ID == self.ID_splitvar :
#print('ATTENTION : PLUS DE BUG SUR ALCESTE')
#RunAnalyse(self, corpus, Alceste, OptAlceste)
if corpus is None :
- corpus = self.tree.getcorpus()
+ corpus = self.tree.getcorpus()
self.Text = Reinert(self, corpus, parametres = {'type': 'alceste'}, dlg = 6)
if self.Text.val == wx.ID_OK:
PlaySound(self)
else:
truepath = False
else:
- pass
+ return
if truepath :
if os.path.splitext(self.filename)[1] in ['.csv', '.xls', '.ods']:
self.tableau = Tableau(self, self.filename)
#self.Text = OpenAnalyse(self, self.filename)
OpenAnalyse(self, self.filename)
if not truepath:
- print 'ce fichier n\'existe pas'
+ print 'This file does not exist'
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 = 57
+ #col = randint(0, 255)
+ #col1 = randint(0,255)
+ #col2 = randint(0,255)
+ #col = 57
+ col = 161
+ col1 = 198
+ col2 = 224
bckgrdcolor = wx.Colour(col, col1, col2)
self.SetBackgroundColour(bckgrdcolor)
txtcolour = wx.Colour(250, 250, 250)
linkcolor = wx.Colour(255, 0, 0)
sizer1 = wx.BoxSizer(wx.VERTICAL)
sizer2 = wx.BoxSizer(wx.VERTICAL)
- sizer3 = wx.BoxSizer(wx.HORIZONTAL)
- sizer4 = wx.BoxSizer(wx.VERTICAL)
- sizer5 = wx.BoxSizer(wx.HORIZONTAL)
+ sizer4 = wx.BoxSizer(wx.HORIZONTAL)
grid_sizer_1 = wx.FlexGridSizer(1, 4, 0, 0)
grid_sizer_3 = wx.FlexGridSizer(1, 4, 0, 0)
- grid_sizer_2 = wx.FlexGridSizer(1, 3, 0, 0)
+ grid_sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
+
+ iralink = hl.HyperLinkCtrl(self, wx.ID_ANY, u"http://www.iramuteq.org", URL="http://www.iramuteq.org")
+ iralink.SetColours(linkcolor, linkcolor, "RED")
+ iralink.SetBackgroundColour(bckgrdcolor)
+ iralink.EnableRollover(True)
+ iralink.SetUnderlines(False, False, True)
+ iralink.SetBold(True)
+ iralink.UpdateLink()
+
PanelPres = wx.Panel(self)
+ bckgrdcolor = wx.Colour(randint(0, 255), randint(0, 255), randint(0, 255))
PanelPres.SetBackgroundColour(bckgrdcolor)
+
label_1 = wx.StaticText(self, -1, u"IRaMuTeQ", size=(-1, -1))
label_1.SetFont(wx.Font(46, wx.TELETYPE, wx.NORMAL, wx.BOLD, 0, "Purisa"))
label_1.SetForegroundColour(wx.RED)
+
+ iraicone = wx.Image(os.path.join(ImagePath,'iraicone100x100.png'), wx.BITMAP_TYPE_ANY).ConvertToBitmap()
+ but_ira = wx.StaticBitmap(self, -1, bitmap = iraicone)
+
+
label2 = wx.StaticText(PanelPres, -1 , u'\nVersion ' + ConfigGlob.get('DEFAULT', 'version') + '\n')
label2.SetForegroundColour(txtcolour)
label2.SetBackgroundColour(bckgrdcolor)
- #label3 = wx.StaticText(PanelPres, -1 , u'Equipe ')
- #label3.SetForegroundColour(txtcolour)
- #label3.SetBackgroundColour(bckgrdcolor)
self.hyper2 = hl.HyperLinkCtrl(PanelPres, wx.ID_ANY, u"REPERE", URL="http://repere.no-ip.org/")
self.hyper2.SetColours(linkcolor, linkcolor, "RED")
self.hyper2.SetBackgroundColour(bckgrdcolor)
self.hyper2.SetUnderlines(False, False, True)
self.hyper2.SetBold(True)
self.hyper2.UpdateLink()
+
label_lerass = wx.StaticText(PanelPres, -1, u'Laboratoire ')
label_lerass.SetForegroundColour(txtcolour)
label_lerass.SetBackgroundColour(bckgrdcolor)
+
self.hyper_lerass = hl.HyperLinkCtrl(PanelPres, -1, u'LERASS', URL="http://www.lerass.com")
self.hyper_lerass.SetColours(linkcolor, linkcolor, "RED")
self.hyper_lerass.SetBackgroundColour(bckgrdcolor)
self.hyper_lerass.SetUnderlines(False, False, True)
self.hyper_lerass.SetBold(True)
self.hyper_lerass.UpdateLink()
+
blank = wx.StaticText(PanelPres, -1, u'\n')
blank1 = wx.StaticText(PanelPres, -1, u'\n')
+
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'))
labelcopy.SetForegroundColour(txtcolour)
labelcopy.SetBackgroundColour(bckgrdcolor)
+
python_img = wx.Image(os.path.join(ImagePath,'python-logo.jpg'), wx.BITMAP_TYPE_ANY).ConvertToBitmap()
r_img = wx.Image(os.path.join(ImagePath,'Rlogo.jpg'), wx.BITMAP_TYPE_ANY).ConvertToBitmap()
lexique_img = wx.Image(os.path.join(ImagePath,'LexTexte4.jpg'), wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.Bind(wx.EVT_BUTTON, self.OnR, but_r)
- #grid_sizer_1.Add(label3, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
grid_sizer_1.Add(self.hyper2, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
grid_sizer_3.Add(label_lerass, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
grid_sizer_3.Add(self.hyper_lerass, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
- sizer4.Add(label_1, 0, wx.ALIGN_CENTER, 5)
+ sizer4.Add(label_1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5)
+
sizer2.Add(label2, 0, wx.ALIGN_CENTER, 5)
- #sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5)
sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5)
sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5)
sizer2.Add(grid_sizer_3, 0, wx.ALIGN_CENTER, 5)
sizer2.Add(wx.StaticText(PanelPres, -1, u' '), 0, wx.ALIGN_CENTER, 5)
- #sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5)
- #sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5)
sizer2.Add(grid_sizer_1, 0, wx.ALIGN_CENTER, 5)
sizer2.Add(labellicence, 0, wx.ALIGN_CENTER, 5)
sizer2.Add(labelcopy, 0, wx.ALIGN_CENTER, 5)
- sizer1.Add(sizer4, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
+ sizer1.Add(sizer4, 2, wx.ALIGN_CENTER_HORIZONTAL, 0)
+ sizer1.Add(but_ira, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5)
+ sizer1.Add(iralink, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_TOP, 5)
+ sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 10)
PanelPres.SetSizer(sizer2)
- sizer5.Add(blank, 1, wx.EXPAND | wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 2)
- sizer5.Add(PanelPres, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
- sizer5.Add(blank1, 1, wx.ALIGN_CENTER_HORIZONTAL,2)
- grid_sizer_2.Add(but_python, 1, wx.ALIGN_CENTER_HORIZONTAL| wx.ALIGN_CENTER_VERTICAL)
- grid_sizer_2.Add(but_lexique, 1,wx.ALIGN_CENTER_HORIZONTAL| wx.ALIGN_CENTER_VERTICAL)
- grid_sizer_2.Add(but_r, 1, wx.ALIGN_CENTER_HORIZONTAL| wx.ALIGN_CENTER_VERTICAL)
+ grid_sizer_2.Add(but_python, 1, wx.ALIGN_BOTTOM)
+ grid_sizer_2.Add(but_lexique, 1, wx.ALIGN_BOTTOM)
+ grid_sizer_2.Add(but_r, 1, wx.ALIGN_BOTTOM)
- sizer1.Add(sizer5, 3, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 1)
- sizer1.Add(grid_sizer_2, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL)
+ sizer1.Add(PanelPres, 0, wx.EXPAND |wx.ALL, 10)
+ sizer1.Add(grid_sizer_2, 2, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 1)
self.SetSizer(sizer1)
sizer1.Fit(self)
bmp = wx.Image(os.path.join(ImagePath, 'splash.png')).ConvertToBitmap()
wx.SplashScreen.__init__(self, bmp,
wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT,
- 2000, None, -1)
+ 1000, None, -1)
self.Bind(wx.EVT_CLOSE, self.OnClose)
self.fc = wx.FutureCall(1, self.ShowMain)