self.pathout = analyse.pathout
self.analyse = analyse
self.parametres = analyse.parametres
- #self.scriptout = self.pathout['lastRscript.R']
+ #self.scriptout = ffr(self.pathout['lastRscript.R'])
self.scriptout = self.pathout['temp']
self.script = u"#Script genere par IRaMuTeQ - %s\n" % datetime.now().ctime()
data1 <- as(data1, "dgCMatrix")
row.names(data1) <- 1:nrow(data1)
""" % ffr(DicoPath['TableUc1'])
-
+
if classif_mode == 0:
txt += """
data2 <- readMM("%s")
chd1<-CHD(data1, x = nbt, mode.patate = mode.patate, svd.method =
svd.method, libsvdc.path = libsvdc.path, log.file = log1)
""" % ffr(DicoPath['log-chd1.txt'])
-
+
if classif_mode == 0:
txt += """
log2 <- "%s"
chd2<-CHD(data2, x = nbt, mode.patate = mode.patate, svd.method =
svd.method, libsvdc.path = libsvdc.path) log.file = log2)
""" % ffr(DicoPath['log-chd2.txt'])
-
+
txt += """
#lecture des uce
listuce1<-read.csv2("%s")
""" % ffr(DicoPath['listeuce1'])
-
+
if classif_mode == 0:
txt += """
listuce2<-read.csv2("%s")
""" % ffr(DicoPath['listeuce2'])
-
+
txt += """
rm(data1)
"""
-
+
if classif_mode == 0:
txt += """
rm(data2)
write.csv2(n1, file="%s")
rm(n1)
""" % (classif_mode, mincl, ffr(DicoPath['uce']), ffr(DicoPath['n1.csv']))
-
+
txt += """
tree.tot1 <- make_tree_tot(chd1)
# open_file_graph("%s", widt = 600, height=400)
# plot(tree.tot1$tree.cl)
# dev.off()
""" % ffr(DicoPath['arbre1'])
-
+
if classif_mode == 0:
txt += """
classeuce2 <- chd.result$cuce2
# open_file_graph("%s", width = 600, height=400)
# plot(tree.tot2$tree.cl)
# dev.off()
- """ % ffr(DicoPath['arbre2'] )
-
+ """ % ffr(DicoPath['arbre2'] )
+
txt += """
tree.cut1 <- make_dendro_cut_tuple(tree.tot1$dendro_tuple, chd.result$coord_ok, classeuce1, 1, nbt)
save(tree.cut1, file="%s")
-
+
open_file_graph("%s", width = 600, height=400)
plot.dendropr(tree.cut1$tree.cl,classes, histo=TRUE)
open_file_graph("%s", width = 600, height=400)
plot(tree.cut1$dendro_tot_cl)
dev.off()
""" % (ffr(DicoPath['Rdendro']), ffr(DicoPath['dendro1']), ffr(DicoPath['arbre1']))
-
+
if classif_mode == 0:
txt += """
tree.cut2 <- make_dendro_cut_tuple(tree.tot2$dendro_tuple, chd.result$coord_ok, classeuce2, 2, nbt)
plot(tree.cut2$dendro_tot_cl)
dev.off()
""" % (ffr(DicoPath['dendro2']), ffr(DicoPath['arbre2']))
-
+
txt += """
-
+
#save.image(file="%s")
""" % (ffr(DicoPath['RData']))
-
+
fileout = open(DicoPath['Rchdtxt'], 'w')
fileout.write(txt)
fileout.close()
dev.off()
""" % ffr(self.pathout['barplotrow.png'])
self.add(txt)
- self.write()
+ self.write()
+
+class LabbeScript(PrintRScript) :
+ def make_script(self) :
+ self.sources([self.analyse.parent.RscriptsPath['distance-labbe.R'],
+ self.analyse.parent.RscriptsPath['Rgraph']])
+ txt = """
+ tab <- read.csv2("%s", header=TRUE, sep=';', row.names=1)
+ """ % (self.pathout['tableafcm.csv'])
+ txt += """
+ dist.mat <- dist.labbe(tab)
+ dist.mat <- as.dist(dist.mat, upper=F, diag=F)
+ write.table(as.matrix(dist.mat), "%s", sep='\t')
+ library(cluster)
+ library(ape)
+ chd <- hclust(dist.mat, method="ward.D2")
+ open_file_graph("%s", width=1000, height=1000, svg=F)
+ par(cex=1.2)
+ plot.phylo(as.phylo(chd), type='unrooted', lab4ut="axial")
+ dev.off()
+ """ % (self.pathout['distmat.csv'], self.pathout['dist-labbe.png'])
+ self.add(txt)
+ self.write()
+
+
#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
ID_exportmeta = wx.NewId()
ID_importdmi = wx.NewId()
ID_merge = wx.NewId()
+ID_labbe = wx.NewId()
##########################################################
#elements de configuration
##########################################################
'subcorpusthema' : 'subcorpusthema.png',
'preferences' : 'preferences.png',
'exportmetatable' : 'exportmetatable.png',
- 'importdmi' : 'twitter.png'
+ 'importdmi' : 'twitter.png',
+ 'labbe' : 'spec.png'
}
#####################################################################
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)
-
+ 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)))
[ID_proto, _(u"Prototypical Analysis").decode('utf8'), 'proto'],
[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'],
[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.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.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.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)
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 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)
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)
# 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')
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)
+ BugReport(self)
def ExtractTools(self, evt) :
ID = evt.GetId()
#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)
todel.append(i)
b += 1
self.list_graph = [graph for i, graph in enumerate(self.list_graph) if i not in todel]
-
- self.param = { 'typegraph' : 0,
+
+ self.param = { 'typegraph' : 0,
'width' : 800,
'height' : 800,
'what' : 0,
'select_nb' : 50,
'select_chi' : 4,
'nbchic' : 30,
- 'over' : 0,
+ 'over' : 0,
'cex_txt' : 0,
'txt_min' : 5,
'txt_max' : 40,
self.panel_1.SetScrollRate(20, 20)
self.panel_1.SetFocus()
- def __do_layout(self):
+ def __do_layout(self):
self.sizer_1 = wx.BoxSizer(wx.VERTICAL)
self.sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
self.sizer_3 = wx.BoxSizer(wx.VERTICAL)
self.Bind(wx.EVT_BUTTON, self.on_delete_image, self.buts[i])
self.panel_1.SetSizer(self.sizer_3)
self.sizer_2.Add(self.panel_1, 1, wx.EXPAND, 0)
- self.SetSizer(self.sizer_2)
+ self.SetSizer(self.sizer_2)
def on_delete_image(self, event) :
image_id = int(event.GetEventObject().GetName())
self.Layout()
else :
dial.Destroy()
-
+
def onrightclick(self, event):
image_id = int(event.GetEventObject().GetName())
image_path = self.list_graph[image_id][0]
'select_nb' : dial.spin_nb.GetValue(),
'select_chi' : dial.spin_chi.GetValue(),
'nbchic' : dial.spin_nbchic.GetValue(),
- 'over' : dial.check3.GetValue(),
+ 'over' : dial.check3.GetValue(),
'cex_txt' : dial.check4.GetValue(),
'txt_min' : dial.spin_min.GetValue(),
'txt_max' : dial.spin_max.GetValue(),
afc <- afcf
afc_table <- afcf_table
chistabletot <- specfp
- """
+ """
elif self.itempath == 'liste_graph_afct' :
txt +="""
afc <- afct
'bargraphw' : 60*int(self.param['clnb']),
}
web = WebExport(self.ira, parametres)
- self.fileout = web.exportafc()
+ self.fileout = web.exportafc()
if self.param['typegraph'] == 3 :
fileout = os.path.join(os.path.basename(self.fileout), 'index.html')
- else :
+ else :
fileout = os.path.basename(self.fileout)
self.list_graph.append([fileout, txt])
print_liste(self.DictPathOut[self.itempath], self.list_graph)
self.sizer_3.Add(self.buts[-1], 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
self.sizer_3.Fit(self.panel_1)
self.Layout()
-
+
self.panel_1.Scroll(0,self.panel_1.GetScrollRange(wx.VERTICAL))
# elif self.param['typegraph'] == 2 :
# parametres = {'gexffile' : self.fileout,
# dial.link.SetURL(afcout)
# dial.Layout()
# dial.ShowModal()
-
+
class GraphPanel(wx.ScrolledWindow):
def __init__(self, parent, dico, list_graph, txt = '', style = wx.TAB_TRAVERSAL):
else :
self.listimg.append(wx.StaticBitmap(self, -1, wx.Bitmap(os.path.join(self.dirout,list_graph[i][0]), wx.BITMAP_TYPE_ANY)))
self.labels.append(wx.StaticText(self, -1, list_graph[i][1]))
- self.Bind(wx.EVT_MOTION, self.onMouseMove)
+ self.Bind(wx.EVT_MOTION, self.onMouseMove)
self.__set_properties()
self.__do_layout()
def __set_properties(self):
self.EnableScrolling(True,True)
- self.SetScrollRate(20, 20)
+ self.SetScrollRate(20, 20)
self.SetFocus()
self.sizer_1 = wx.BoxSizer(wx.VERTICAL)
self.sizer_2 = wx.BoxSizer(wx.VERTICAL)
self.sizer_3 = wx.BoxSizer(wx.HORIZONTAL)
- self.sizer_1.Add(self.deb)
+ self.sizer_1.Add(self.deb)
for i in range(0, len(self.listimg)):
self.sizer_1.Add(self.listimg[i], 1, wx.ALIGN_CENTER_HORIZONTAL, 0)
self.sizer_1.Add(self.labels[i], 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
def onMouseMove(self, event):
self.SetFocus()
-
+
def open_antiprofil(panel, AntiProfile, encoding) :
DictAnti = ReadProfileAsDico(AntiProfile, True, encoding)
self.parametres = parametres
self.pathout = PathOut(parametres['ira'])
self.pathout.basefiles(ChdTxtPathOut)
- DictPathOut = self.pathout
+ DictPathOut = self.pathout
self.DictPathOut = DictPathOut
self.dictpathout = DictPathOut
self.parent = parent
self.corpus.read_tableau(self.pathout['analyse.db'])
clnb = parametres['clnb']
- dlg = progressbar(self, maxi = 4 + clnb)
- self.clnb = clnb
+ dlg = progressbar(self, maxi = 4 + clnb)
+ self.clnb = clnb
print 'lecture des profils'
dlg.Update(2, _(u"Reading profiles").decode('utf8'))
-
+
DictProfile = ReadProfileAsDico(Profile, Alceste, self.encoding)
self.DictProfile = DictProfile
self.cluster_size = []
self.corpus = corpus
self.cmd = cmd
self.dolayout()
-
+
def dolayout(self, cmd) :
log.info('no layout yet')
self.ira.nb.SetSelection(self.ira.nb.GetPageCount() - 1)
self.ira.ShowAPane("Tab_content")
+class LabbeLayout(DefaultTextLayout):
+ def dolayout(self):
+ self.Tab = aui.AuiNotebook(self.ira.nb, -1, wx.DefaultPosition)
+ #if self.parametres['svg'] :
+ # list_graph = [['nuage_1.svg', 'Nuage']]
+ #else :
+ # list_graph = [['nuage_1.png', 'Nuage']]
+ list_graph = [['dist-labbe.png', _(u'Ward clustering (method ward2)').encode('utf8')]]
+ self.TabStatTot = GraphPanel(self.ira.nb, self.pathout, list_graph)
+ self.Tab.AddPage(self.TabStatTot, _(u"Labbé's distance").encode('utf8'))
+ self.Tab.corpus = self.corpus
+ self.Tab.parametres = self.parametres
+ self.ira.nb.AddPage(self.Tab, '%s' % self.parametres['name'])
+ self.ira.nb.SetSelection(self.ira.nb.GetPageCount() - 1)
+ self.ira.ShowAPane("Tab_content")
+
def blender(self):
nodesfile = self.pathout['nodes.csv']
edgesfile = self.pathout['edges.csv']
#License: GNU/GPL
from chemins import ChdTxtPathOut, StatTxtPathOut, PathOut
-from layout import OpenCHDS, dolexlayout, StatLayout, WordCloudLayout, OpenCorpus, SimiLayout, SimiMatLayout, ProtoLayout, MatLayout, FreqLayout, Chi2Layout
+from layout import OpenCHDS, dolexlayout, StatLayout, WordCloudLayout, OpenCorpus, SimiLayout, SimiMatLayout, ProtoLayout, MatLayout, FreqLayout, Chi2Layout, LabbeLayout
from corpus import Corpus, copycorpus
from tableau import Tableau
import os
-#import shelve
-#from tabsimi import DoSimi
from functions import DoConf, ReadDicoAsDico
from tableau import Tableau
import logging
self.conf = DoConf(parametres).getoptions()
self.path = parametres
self.conf = self.redopath(self.conf, parametres)
-
+
if self.conf['type'] == 'corpus' :
corpus = self.opencorpus()
elif self.conf['type'] == 'matrix' :
else :
intree = False
corpus = self.openanalyse()
-
+
if self.conf.get('lem',1) :
dolem = True
else :
else :
self.parent.tree.AddAnalyse(self.conf, bold = True)
self.parent.history.addtab(self.conf)
-
+
def redopath(self, conf, path) :
conf['ira'] = os.path.realpath(path)
conf['pathout'] = os.path.dirname(os.path.realpath(path))
DoConf(conf['ira']).makeoptions([conf['type']], [conf])
return conf
-
+
def opencorpus(self) :
log.info('open corpus')
if self.conf['uuid'] not in self.parent.history.corpus :
- self.parent.history.add(self.conf)
+ self.parent.history.add(self.conf)
log.info('add corpus to history')
self.parent.tree.OnItemAppend(self.conf)
if self.conf['uuid'] in self.parent.history.openedcorpus :
self.parent.history.openedcorpus[self.conf['uuid']] = corpus
self.opencorpus_analyses()
self.doopen(corpus)
-
+
def openmatrix(self):
log.info('open matrix')
if self.conf['uuid'] not in self.parent.history.ordermatrix :
matrix.open()
self.parent.history.openedmatrix[self.conf['uuid']] = matrix
self.openmatrix_analyses()
- self.doopen(matrix)
+ self.doopen(matrix)
self.parent.history.addtab(self.conf)
def opencorpus_analyses(self) :
self.parent.history.addmultiple(analyses)
for analyse in analyses :
self.parent.tree.AddAnalyse(analyse, bold = False)
-
+
def openmatrix_analyses(self):
pass
def doopen(self, corpus) :
if self.conf['type'] == 'corpus' :
- OpenCorpus(self.parent, self.conf)
+ OpenCorpus(self.parent, self.conf)
elif self.conf['type'] == 'stat' :
StatLayout(self.parent, corpus, self.conf)
elif self.conf['type'] == 'spec' :
dolexlayout(self.parent, corpus, self.conf)
+ elif self.conf['type'] == 'labbe' :
+ LabbeLayout(self.parent, corpus, self.conf)
elif self.conf['type'] == 'alceste' :
OpenCHDS(self.parent, corpus, self.conf, Alceste = True)
elif self.conf['type'] == 'simitxt' or self.conf['type'] == 'clustersimitxt' :
FreqLayout(self.parent, corpus, self.conf)
elif self.conf['type'] == 'chi2' or self.conf['type'] == 'chi2mcnemar':
Chi2Layout(self.parent, corpus, self.conf)
-