X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=ProfList.py;h=7ac42c54a04fa040b677347ba898bc664f632744;hp=7a9c24560738af6726d50a3a0c6f37ebf2cd2110;hb=e033f9e84abb3c12d92f1580425877aa58e9af30;hpb=ab23968410d4e2eff482fd16a639801b457d5063 diff --git a/ProfList.py b/ProfList.py index 7a9c245..7ac42c5 100644 --- a/ProfList.py +++ b/ProfList.py @@ -17,20 +17,21 @@ import os import sys import wx import wx.lib.mixins.listctrl as listmix -from tabsimi import DoSimi +#from tabsimi import DoSimi from listlex import ListForSpec from chemins import ConstructPathOut, ffr -from dialog import PrefExport, PrefUCECarac, SearchDial +from dialog import PrefExport, PrefUCECarac, SearchDial, message from tableau import Tableau from search_tools import SearchFrame import webbrowser -import cStringIO +#import cStringIO import tempfile import codecs from functions import exec_rcode, MessageImage, progressbar, treat_var_mod from PrintRScript import barplot from textclassechd import ClasseCHD from shutil import copyfile +from operator import itemgetter #--------------------------------------------------------------------------- class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.ColumnSorterMixin): @@ -49,15 +50,19 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col self.lenact = profclasse.index([u'*****', u'*', u'*', u'*', u'*', u'*', '', '']) profclasse.pop(self.lenact) except ValueError: - self.lenact = len(profclasse) + try : + self.lenact = profclasse.index([u'*', u'*', u'*', u'*', u'*', u'*', '', '']) + profclasse.pop(self.lenact) + except ValueError: + self.lenact = len(profclasse) try : self.lensup = profclasse.index([u'*', u'*', u'*', u'*', u'*', u'*', '', '']) self.lensup = self.lensup - self.lenact profclasse.pop(self.lensup) except ValueError: - self.lensup = 0 + self.lensup = len(profclasse) - self.lenact self.lenet = len(profclasse) - (self.lenact + self.lensup) - print self.lenact, self.lensup, self.lenet +# print self.lenact, self.lensup, self.lenet for i, line in enumerate(classen) : line[0] = i dictdata = dict(zip([i for i in range(0,len(classen))], classen)) @@ -70,6 +75,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col self.la = [] self.lchi = [] self.lfreq = [] + self.tmpchi = None #adding some art self.il = wx.ImageList(16, 16) @@ -154,18 +160,9 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col def OnItemSelected(self, event): self.currentItem = event.m_itemIndex - print 'OnItemSelected: "%s", "%s", "%s", "%s"\n' % (self.currentItem, self.GetItemText(self.currentItem), self.getColumnText(self.currentItem, 1), self.getColumnText(self.currentItem, 2)) - #self.log.WriteText('OnItemSelected: "%s", "%s", "%s", "%s"\n' % - # (self.currentItem, - # self.GetItemText(self.currentItem), - # self.getColumnText(self.currentItem, 1), - # self.getColumnText(self.currentItem, 2))) def OnItemActivated(self, event): self.currentItem = event.m_itemIndex - print "OnItemActivated: %s\nTopItem: %s\n" % (self.GetItemText(self.currentItem), self.GetTopItem()) - #self.log.WriteText("OnItemActivated: %s\nTopItem: %s\n" % - # (self.GetItemText(self.currentItem), self.GetTopItem())) def getColumnText(self, index, col): item = self.GetItem(index, col) @@ -173,9 +170,6 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col def OnItemDeselected(self, evt): pass - #self.log.WriteText("OnItemDeselected: %s" % evt.m_itemIndex) - - #--------------------------------------------------- # These methods are callbacks for implementing the # "virtualness" of the list... @@ -200,7 +194,6 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col def OnGetItemAttr(self, item): index=self.itemIndexMap[item] - #genre=self.itemDataMap[index][2] if index < self.lenact : if item % 2 : return self.attr1 @@ -219,15 +212,6 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col else : return None -# if genre=="Rock": -# return self.attr2 -# elif genre=="Jazz": -# return self.attr1 -# elif genre=="New Age": -# return self.attr3 -# else: -# return None - #--------------------------------------------------- # Matt C, 2006/02/22 # Here's a better SortItems() method -- @@ -253,16 +237,16 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col def onsearch(self, evt) : self.dial = SearchDial(self, self, 6, True) self.dial.CenterOnParent() - self.dial.ShowModal() - self.dial.Destroy() + self.dial.Show() + #self.dial.Destroy() def onsearchall(self, evt) : if 'FrameSearch' not in dir(self.Source) : self.Source.FrameSearch = SearchFrame(self.parent, -1, u"Rechercher...", self.Source.corpus) self.dial = SearchDial(self, self.Source.FrameSearch.liste, 1, False) self.dial.CenterOnParent() - self.dial.ShowModal() - self.dial.Destroy() + self.dial.Show() + #self.dial.Destroy() def OnRightClick(self, event): @@ -340,7 +324,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col menu.Append(self.popupIDgraph, u"Graphe de la classe") menu.Append(self.idseg, u"Segments répétés") menu.Append(self.iducecarac, u"UCE caractéristiques") - menu.Append(self.idexport, 'Partitionner...') + menu.Append(self.idexport, 'Exporter...') #menu.Append(self.popupID2, u"Concordancier") # menu.Append(self.popupID3, "recharger") @@ -366,7 +350,13 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col def onexport(self, evt) : if 'corpus' in dir(self.Source): corpus = self.Source.corpus - ClasseCHD(self.parent, corpus, self.cl) + corpus.export_classe(self.Source.pathout['classe_%i_export.txt' % self.cl], self.cl) + 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 getselectedwords(self) : words = [self.getColumnText(self.GetFirstSelected(), 6)] @@ -395,7 +385,8 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col word = self.getselectedwords()[0] if len(word.split('_')) > 1 : var = word.split('_') - words = ['_'.join([var[0],word]) for word in self.var_mod[var[0]]] + #words = ['_'.join([var[0],word]) for word in self.var_mod[var[0]]] + words = [word for word in self.var_mod[var[0]]] words.sort() tableout = [] kwords = [] @@ -410,7 +401,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col file.write(txt) file.close() exec_rcode(self.Source.parent.RPath, tmpscript, wait = True) - win = MessageImage(self, -1, u"Graphique", size=(700, 500),style = wx.DEFAULT_FRAME_STYLE) + win = MessageImage(self,u"Graphique", size=(700, 500)) win.addsaveimage(tmpgraph) txt = "" % tmpgraph win.HtmlPage.SetPage(txt) @@ -424,13 +415,13 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col def quest_simi(self, evt) : tableau = self.Source.tableau tab = tableau.make_table_from_classe(self.cl, self.la) - pathout = ConstructPathOut(self.Source.pathout+'/', 'simi_classe_%i' %self.cl) + pathout = ConstructPathOut(self.Source.pathout.dirout, 'simi_classe_%i' %self.cl) self.filename = os.path.join(pathout,'mat01.csv') tableau.printtable(self.filename, tab) del tab paramsimi = {'coeff' : 0, 'layout' : 2, - 'type' : 1, + 'type_graph' : 1, 'arbremax' : 1, 'coeff_tv' : 1, 'coeff_tv_nb' : 0, @@ -458,127 +449,47 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col 'keep_coord' : True, 'alpha' : 20, 'film': False, + 'com' : 0, + 'communities' : 0, + 'halo' : 0 } -# self.tableau.actives = {} -# self.tableau.lchi = self.lchi -# self.tableau.chi = {} -# for i, val in enumerate(self.la) : -# self.tableau.actives[val] = [self.lfreq[i]] -# self.tableau.chi[val] = [self.lchi[i]] - act = {} - self.tableau.chi = {} - self.tableau.lchi = self.lchi - self.tableau.parametre['fromprof'] = True + tableau.chi = {} + tableau.lchi = self.lchi + tableau.parametre['fromprof'] = True for i, val in enumerate(self.la) : act[val] = [self.lfreq[i]] - self.tableau.chi[val] = [self.lchi[i]] - DoSimi(self, param = paramsimi, fromprof = ffr(self.filename), pathout = pathout, listactives = self.la, actives = act) + tableau.chi[val] = [self.lchi[i]] + self.parent.SimiCluster(parametres = paramsimi, fromprof = ffr(self.filename), pathout = pathout, listactives = self.la, actives = act, tableau = tableau) def onwordgraph(self, evt): word = self.getColumnText(self.GetFirstSelected(), 6) - dlg = progressbar(self, 2) - corpus = self.Source.corpus - uces = corpus.lc[self.cl-1] - dlg.Update(1, u'Tableau...') - #tab = corpus.make_table_with_classe(uces, self.la) - pathout = ConstructPathOut(self.Source.pathout.dirout + '/' , 'simi_%s' % word) - self.filename = os.path.join(pathout,'mat01.csv') - dlg.Update(2, u'Ecriture...') - #corpus.write_tab(tab, self.filename) - #del tab - corpus.make_and_write_sparse_matrix_from_classe(self.la, uces, self.filename) - dlg.Destroy() - paramsimi = {'coeff' : 0, - 'layout' : 2, - 'type' : 1, - 'arbremax' : 0, - 'coeff_tv' : 1, - 'coeff_tv_nb' : 0, - 'tvprop' : 0, - 'tvmin' : 5, - 'tvmax' : 30, - 'coeff_te' : 1, - 'coeff_temin' : 1, - 'coeff_temax' : 10, - 'label_v': 1, - 'label_e': 0, - 'vcex' : 1, - 'vcexmin' : 10, - 'vcexmax' : 25, - 'cex' : 10, - 'seuil_ok' : 1, - 'seuil' : 1, - 'cols' : (255,0,0), - 'cola' : (200,200,200), - 'width' : 600, - 'height' : 600, - 'first' : True, - 'keep_coord' : True, - 'alpha' : 20, - 'film': False, - } - self.tableau = Tableau(self.parent, '') - self.tableau.listactives = self.la - self.tableau.actives = {} - for i, val in enumerate(self.la) : - self.tableau.actives[val] = [self.lfreq[i]] - DoSimi(self, param = paramsimi, fromprof = ffr(self.filename), pathout = pathout, wordgraph = word) + if self.tmpchi is None : + self.tmpchi = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) + with open(self.tmpchi, 'w') as f: + f.write('\n'.join([str(val) for val in self.lchi])) + index = self.la.index(word) + parametres = {'type' : 'clustersimitxt', + 'pathout' : self.Source.parametres['pathout'], + 'word' : index , + '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)) + #except : + # print 'not acitve' def on_graph(self, evt): - dlg = progressbar(self, 2) - corpus = self.Source.corpus - uces = corpus.lc[self.cl-1] - dlg.Update(1, u'Tableau...') - #tab = corpus.make_table_with_classe(uces, self.la) - pathout = ConstructPathOut(self.Source.pathout.dirout+'/', 'simi_classe_%i' %self.cl) - self.filename = os.path.join(pathout,'mat01.csv') - dlg.Update(2, u'Ecriture...') - #corpus.write_tab(tab, self.filename) - #del tab - corpus.make_and_write_sparse_matrix_from_classe(self.la, uces, self.filename) - dlg.Destroy() - paramsimi = {'coeff' : 0, - 'layout' : 2, - 'type' : 1, - 'arbremax' : 1, - 'coeff_tv' : 1, - 'coeff_tv_nb' : 0, - 'tvprop' : 0, - 'tvmin' : 5, - 'tvmax' : 30, - 'coeff_te' : 1, - 'coeff_temin' : 1, - 'coeff_temax' : 10, - 'label_v': 1, - 'label_e': 0, - 'vcex' : 0, - 'vcexmin' : 10, - 'vcexmax' : 25, - 'cex' : 10, - 'cexfromchi' : True, - 'sfromchi': False, - 'seuil_ok' : 0, - 'seuil' : 1, - 'cols' : (255,0,0), - 'cola' : (200,200,200), - 'width' : 1000, - 'height' : 1000, - 'first' : True, - 'keep_coord' : True, - 'alpha' : 20, - 'film': False, - } - self.tableau = Tableau(self.parent, '') - self.tableau.listactives = self.la - self.tableau.actives = {} - self.tableau.lchi = self.lchi - self.tableau.chi = {} - self.tableau.parametre['fromprof'] = True - for i, val in enumerate(self.la) : - self.tableau.actives[val] = [self.lfreq[i]] - self.tableau.chi[val] = [self.lchi[i]] - DoSimi(self, param = paramsimi, fromprof = ffr(self.filename), pathout = pathout) + if self.tmpchi is None : + self.tmpchi = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) + with open(self.tmpchi, 'w') as f: + f.write('\n'.join([str(val) for val in self.lchi])) + parametres = {'type' : 'clustersimitxt', + 'pathout' : self.Source.parametres['pathout'], + '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)) def on_segments(self,evt) : dlg = progressbar(self, 2) @@ -641,7 +552,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col #ucestxt = [corpus.make_concord(self.la, ' '.join(uce), 'red') for uce in ucestxt] dlg.Update(4, u'texte...') #ucis_txt = [' '.join(corpus.ucis[val[1][0]][0]) for val in ntab2] - win = message(self, -1, u"UCE caractéristiques - Classe %i" % self.cl, size=(600, 500), style=wx.DEFAULT_FRAME_STYLE) + win = message(self, u"UCE caractéristiques - Classe %i" % self.cl, (750, 600)) win.html = '\n' + '

'.join(['
'.join([ucis_txt[i], 'score : ' + str(ntab2[i][0]), ucestxt[i]]) for i in range(0,len(ucestxt))]) + '\n' win.HtmlPage.SetPage(win.html) dlg.Destroy() @@ -663,14 +574,25 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col tableout = [vchistable[fchistable.index(word)] for word in words] tmpgraph = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) nbcl = len(title) + nbwords = len(words) txt = barplot(tableout, words, title, self.Source.parent.RscriptsPath['Rgraph'], tmpgraph) + #print 'ATTENTION TEST R' + #txt = """ + #sink('/Users/pierre/Desktop/qdfqsdfqsdfqsdf.txt') + #Sys.getlocale() + #sink() + #""" tmpscript = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) file = open(tmpscript,'w') file.write(txt) file.close() - exec_rcode(self.Source.parent.RPath, tmpscript, wait = True) - win = MessageImage(self, -1, u"Graphique", size=(700, 500),style = wx.DEFAULT_FRAME_STYLE) + w = 100 + (20 * nbwords) + (100 * nbcl) + h = 100 + (nbwords * 15) + if w > 1100 : w = 1100 + if h > 800 : h = 800 + if h < 450 : h = 450 + win = MessageImage(self, u"Graphique", size=(w, h)) win.addsaveimage(tmpgraph) txt = "" % tmpgraph win.HtmlPage.SetPage(txt) @@ -714,7 +636,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col file.write(txt) file.close() exec_rcode(self.Source.parent.RPath, tmpscript, wait = True) - win = MessageImage(self, -1, u"Graphique", size=(700, 500),style = wx.DEFAULT_FRAME_STYLE) + win = MessageImage(self, u"Graphique", size=(700, 500)) win.addsaveimage(tmpgraph) txt = "" % tmpgraph win.HtmlPage.SetPage(txt) @@ -729,7 +651,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col last = self.GetNextSelected(last) ListWord.append(self.getColumnText(last, 6)) listmot = [forme for item in ListWord for forme in corpus.getlems()[item].formes] - win = message(self, -1, title, size=(600, 500), style=wx.DEFAULT_FRAME_STYLE) + win = message(self, title, size=(750, 600)) toshow = ['\n

Concordancier

\n'] toshow.append('

' % color + ' '.join(ListWord) + '


') duce = {} @@ -797,459 +719,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col word = self.getColumnText(self.GetFirstSelected(), 6) lk = "http://www.cnrtl.fr/proxemie/" + word webbrowser.open(lk) -# -#--------------------------------------------------------------------------- -#class ProfListctrl(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin): -# def __init__(self, parent, ID, pos=wx.DefaultPosition, -# size=wx.DefaultSize, style=0): -# wx.ListCtrl.__init__(self, parent, ID, pos, size, style) -# listmix.ListCtrlAutoWidthMixin.__init__(self) -# -# -#class ProfListctrlPanel(wx.Panel, listmix.ColumnSorterMixin): -# def __init__(self, parent, gparent, ProfClasse, Alceste=False, cl=0): -# self.parent = parent -# classe = ProfClasse -# self.cl = cl -# self.Source = gparent -# if 'tableau' in dir(self.Source): -# self.tableau = self.Source.tableau -# self.Alceste = Alceste -# self.var_mod = {} -# -# -# wx.Panel.__init__(self, parent, -1, style=wx.WANTS_CHARS) -# -# search_id = wx.NewId() -# searchall_id = wx.NewId() -# self.parent.Bind(wx.EVT_MENU, self.onsearch, id = search_id) -# self.parent.Bind(wx.EVT_MENU, self.onsearchall, id = searchall_id) -# self.accel_tbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('F'), search_id), -# (wx.ACCEL_CTRL|wx.ACCEL_SHIFT, ord('F'), searchall_id)]) -# self.SetAcceleratorTable(self.accel_tbl) -# -# self.il = wx.ImageList(16, 16) -## self.idx1 = self.il.Add(images.getSmilesBitmap()) -# self.sm_up = self.il.Add(getSmallUpArrowBitmap()) -# self.sm_dn = self.il.Add(getSmallDnArrowBitmap()) -# tID = wx.NewId() -# -# self.list = ProfListctrl(self, tID, -# style=wx.LC_REPORT -# | wx.BORDER_NONE -# | wx.LC_EDIT_LABELS -# | wx.LC_SORT_ASCENDING -# ) -# line1 = classe.pop(0) -# limit = 0 -# limitsup = 0 -# i = 0 -# dictdata = {} -# classen = [line for line in classe if line[0] != '*' and line[0] != '*****'] -# if len(classen) == 0 : -# lenact = 0 -# lensup = 0 -# lenet = 0 -# else : -# lenact = [i for i,b in enumerate(classe) if b[0] == '*****'] -# if lenact == [] : -# lensup = 0 -# lenact = [i for i,b in enumerate(classe) if b[0] == '*'] -# if lenact == [] : -# lenact = len(classen) -# lenet = 0 -# else : -# lenact = 0 -# lenet = len(classen) -# else : -# lenact = lenact[0] -# lensup = [i for i,b in enumerate(classe[1:]) if b[0] == '*'] -# if lensup != [] : -# lensup = lensup[0] - lenact -# lenet = len(classen) - lensup -# else : -# lensup == 0 -# lenet = len(classen) -# debsup = lenact -# -# self.lenact = lenact -# -# debet = lenact + lensup -# dictdata = dict(zip([i for i in range(0,len(classen))], classen)) -# self.list.SetImageList(self.il, wx.IMAGE_LIST_SMALL) -# -# self.PopulateList(dictdata, debet, debsup, Alceste) -# -# self.Bind(wx.EVT_SIZE, self.OnSize) -# self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick) -# self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self.list) -# -# # for wxMSW -# self.list.Bind(wx.EVT_COMMAND_RIGHT_CLICK, self.OnRightClick) -# -# # for wxGTK -# self.list.Bind(wx.EVT_RIGHT_UP, self.OnRightClick) -# self.itemDataMap = dictdata -# listmix.ColumnSorterMixin.__init__(self, 8) -# self.do_greyline() -##----------------------------------------------------------------------------------------- -# -# def PopulateList(self, dictdata, limit, limitsup, Alceste): -# -# -# # for normal, simple columns, you can add them like this: -# self.list.InsertColumn(0, "num", wx.LIST_FORMAT_RIGHT) -# self.list.InsertColumn(1, "eff. uce", wx.LIST_FORMAT_RIGHT) -# self.list.InsertColumn(2, "eff. total", wx.LIST_FORMAT_RIGHT) -# self.list.InsertColumn(3, "pourcentage", wx.LIST_FORMAT_RIGHT) -# self.list.InsertColumn(4, "chi2", wx.LIST_FORMAT_RIGHT) -# self.list.InsertColumn(5, "Type", wx.LIST_FORMAT_RIGHT) -# self.list.InsertColumn(6, "forme", wx.LIST_FORMAT_RIGHT) -# self.list.InsertColumn(7, "p", wx.LIST_FORMAT_RIGHT) -# -# for key in dictdata : #.iteritems(): -# index = self.list.InsertStringItem(sys.maxint, '%4i' % key) -# i = 1 -# for val in dictdata[key][1:]: -# self.list.SetStringItem(index, i, str(dictdata[key][i])) -# i += 1 -# self.list.SetItemData(index, key) -# -# self.list.SetColumnWidth(0, 60) -# self.list.SetColumnWidth(1, 70) -# self.list.SetColumnWidth(2, 80) -# self.list.SetColumnWidth(3, 100) -# self.list.SetColumnWidth(4, 70) -# self.list.SetColumnWidth(5, wx.LIST_AUTOSIZE) -# self.list.SetColumnWidth(6, wx.LIST_AUTOSIZE) -# self.list.SetColumnWidth(7, wx.LIST_AUTOSIZE) -# -# # show how to change the colour of a couple items -# for i in range(limitsup, limit): -# item = self.list.GetItem(i) -# item.SetTextColour(wx.RED) -# self.list.SetItem(item) -# -# for i in range(limit, len(dictdata)): -# item = self.list.GetItem(i) -# item.SetTextColour(wx.BLUE) -# self.list.SetItem(item) -# -# if self.lenact != 0 : -# self.la = [self.getColumnText(i,6) for i in range(0, self.lenact)] -# self.lchi = [float(self.getColumnText(i,4)) for i in range(0, self.lenact)] -# self.lfreq = [int(self.getColumnText(i,1)) for i in range(0, self.lenact)] -# else : -# self.la = [] -# self.lchi = [] -# self.lfreq = [] -# -# def do_greyline(self): -# for row in xrange(self.list.GetItemCount()): -# if row % 2 : -# self.list.SetItemBackgroundColour(row, (230, 230, 230)) -# else : -# self.list.SetItemBackgroundColour(row, wx.WHITE) -# -# -# # Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py -# def GetListCtrl(self): -# return self.list -# -# # Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py -# def GetSortImages(self): -# return (self.sm_dn, self.sm_up) -# -# -# def OnRightDown(self, event): -# x = event.GetX() -# y = event.GetY() -# item, flags = self.list.HitTest((x, y)) -# -# if flags & wx.LIST_HITTEST_ONITEM: -# self.list.Select(item) -# -# event.Skip() -# -# -# def getColumnText(self, index, col): -# item = self.list.GetItem(index, col) -# return item.GetText() -# -# -# def OnItemSelected(self, event): -# self.currentItem = event.m_itemIndex -# event.Skip() -# -# def onsearch(self, evt) : -# self.dial = SearchDial(self, self, 6, True) -# self.dial.CenterOnParent() -# self.dial.ShowModal() -# self.dial.Destroy() -# -# def onsearchall(self, evt) : -# if 'FrameSearch' not in dir(self.Source) : -# self.Source.FrameSearch = SearchFrame(self.parent, -1, u"Rechercher...", self.Source.corpus) -# self.dial = SearchDial(self, self.Source.FrameSearch.liste, 1, False) -# self.dial.CenterOnParent() -# self.dial.ShowModal() -# self.dial.Destroy() -# -# def OnRightClick(self, event): -# -# # only do this part the first time so the events are only bound once -# if self.Alceste: -# if not hasattr(self, "popupID1"): -# self.popupID1 = wx.NewId() -# self.popupID2 = wx.NewId() -# self.popupID3 = wx.NewId() -# self.popupID4 = wx.NewId() -# self.popupID5 = wx.NewId() -# self.popupID6 = wx.NewId() -# self.popupID7 = wx.NewId() -# self.popupID8 = wx.NewId() -# self.popupID9 = wx.NewId() -# #self.popupID10 = wx.NewId() -# self.popupIDgraph = wx.NewId() -# self.idseg = wx.NewId() -# self.iducecarac = wx.NewId() -# self.idtablex = wx.NewId() -# self.idchimod = wx.NewId() -# self.idwordgraph = wx.NewId() -# self.popup_proxe = wx.NewId() -# self.idlexdendro = wx.NewId() -# self.idexport = wx.NewId() -# # self.export_classes = wx.NewId() -# -# self.Bind(wx.EVT_MENU, self.OnPopupOne, id=self.popupID1) -# self.Bind(wx.EVT_MENU, self.OnPopupTwo, id=self.popupID2) -# self.Bind(wx.EVT_MENU, self.OnPopupThree, id=self.popupID3) -# self.Bind(wx.EVT_MENU, self.OnPopupFour, id=self.popupID4) -# self.Bind(wx.EVT_MENU, self.OnPopupFive, id=self.popupID5) -# self.Bind(wx.EVT_MENU, self.OnPopupSix, id=self.popupID6) -# self.Bind(wx.EVT_MENU, self.OnPopupSeven, id=self.popupID7) -# self.Bind(wx.EVT_MENU, self.OnPopupHeight, id=self.popupID8) -# self.Bind(wx.EVT_MENU, self.OnPopupNine, id=self.popupID9) -# #self.Bind(wx.EVT_MENU, self.OnPopupSpec, id=self.popupID10) -# self.Bind(wx.EVT_MENU, self.on_graph, id=self.popupIDgraph) -# self.Bind(wx.EVT_MENU, self.on_segments, id=self.idseg) -# self.Bind(wx.EVT_MENU, self.on_uce_carac, id = self.iducecarac) -# self.Bind(wx.EVT_MENU, self.on_tablex, id = self.idtablex) -# self.Bind(wx.EVT_MENU, self.quest_var_mod, id = self.idchimod) -# self.Bind(wx.EVT_MENU, self.onwordgraph, id = self.idwordgraph) -# self.Bind(wx.EVT_MENU, self.onproxe, id = self.popup_proxe) -# self.Bind(wx.EVT_MENU, self.onlexdendro, id = self.idlexdendro) -# self.Bind(wx.EVT_MENU, self.onexport, id = self.idexport) -# # self.Bind(wx.EVT_MENU, self.on_export_classes, id = self.export_classes) -# # self.Bind(wx.EVT_MENU, self.OnPopupThree, id=self.popupID3) -# -# # 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.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 uce de la classe") -# menu_conc.Append(self.popupID3, u"dans les uce classées") -# menu_conc.Append(self.popupID4, u"dans toutes les uce") -# menu.AppendMenu(-1, u"Concordancier", menu_conc) -# 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.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"UCE caractéristiques") -# menu.Append(self.idexport, 'Partitionner...') -# #menu.Append(self.popupID2, u"Concordancier") -# # menu.Append(self.popupID3, "recharger") -# -# self.PopupMenu(menu) -# menu.Destroy() -# elif 'tableau' in dir(self.Source) : -# if not hasattr(self, "pop1"): -# self.pop1 = wx.NewId() -# self.pop2 = wx.NewId() -# self.pop3 = wx.NewId() -# self.Bind(wx.EVT_MENU, self.quest_simi, id=self.pop1) -# self.Bind(wx.EVT_MENU, self.on_tablex, id=self.pop2) -# 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.AppendSeparator() -# menu.Append(self.pop1, u"Graph de la classe") -# self.PopupMenu(menu) -# menu.Destroy() -# -# def onexport(self, evt) : -# if 'corpus' in dir(self.Source): -# corpus = self.Source.corpus -# ClasseCHD(self.parent, corpus, self.cl) -# -# def quest_var_mod(self, evt) : -# if 'corpus' in dir(self.Source): -# corpus = self.Source.corpus -# if self.var_mod == {} : -# self.var_mod = treat_var_mod([val for val in corpus.make_etoiles()]) -# else : -# corpus = self.Source.tableau -# if self.var_mod == {} : -# self.var_mod = treat_var_mod([val for val in corpus.actives] + [val for val in corpus.sups]) -# with codecs.open(self.Source.pathout['chisqtable'], 'r', corpus.parametres['syscoding']) as f : -# chistable = [line.replace('\n','').replace('\r','').replace('"','').replace(',','.').split(';') for line in f] -# title = chistable[0] -# title.pop(0) -# chistable.pop(0) -# vchistable = [line[1:] for line in chistable] -# fchistable = [line[0] for line in chistable] -# word = self.getColumnText(self.list.GetFirstSelected(), 6) -# if len(word.split('_')) > 1 : -# var = word.split('_')[0] -# words = [word for word in self.var_mod[var]] -# words.sort() -# tableout = [] -# kwords = [] -# for word in words : -# if word in fchistable : -# tableout.append(vchistable[fchistable.index(word)]) -# kwords.append(word) -# tmpgraph = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) -# txt = barplot(tableout, kwords, title, self.Source.parent.RscriptsPath['Rgraph'], tmpgraph) -# tmpscript = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) -# file = open(tmpscript,'w') -# file.write(txt) -# file.close() -# exec_rcode(self.Source.parent.RPath, tmpscript, wait = True) -# win = MessageImage(self, -1, u"Graphique", size=(700, 500),style = wx.DEFAULT_FRAME_STYLE) -# win.addsaveimage(tmpgraph) -# txt = "" % tmpgraph -# win.HtmlPage.SetPage(txt) -# win.Show(True) -# else : -# dial = wx.MessageDialog(self, u"Ce n'est pas une forme du type variable_modalité", u"Problème", wx.OK | wx.ICON_WARNING) -# dial.CenterOnParent() -# dial.ShowModal() -# dial.Destroy() -# -# def quest_simi(self, evt) : -# tableau = self.Source.tableau -# tab = tableau.make_table_from_classe(self.cl, self.la) -# pathout = ConstructPathOut(self.Source.pathout+'/', 'simi_classe_%i' %self.cl) -# self.filename = os.path.join(pathout,'mat01.csv') -# tableau.printtable(self.filename, tab) -# del tab -# paramsimi = {'coeff' : 0, -# 'layout' : 2, -# 'type' : 1, -# 'arbremax' : 1, -# 'coeff_tv' : 1, -# 'coeff_tv_nb' : 0, -# 'tvprop' : 0, -# 'tvmin' : 5, -# 'tvmax' : 30, -# 'coeff_te' : 1, -# 'coeff_temin' : 1, -# 'coeff_temax' : 10, -# 'label_v': 1, -# 'label_e': 1, -# 'vcex' : 0, -# 'vcexmin' : 10, -# 'vcexmax' : 25, -# 'cex' : 10, -# 'cexfromchi' : True, -# 'sfromchi': False, -# 'seuil_ok' : 0, -# 'seuil' : 1, -# 'cols' : (255,0,0), -# 'cola' : (200,200,200), -# 'width' : 1000, -# 'height' : 1000, -# 'first' : True, -# 'keep_coord' : True, -# 'alpha' : 20, -# 'film': False, -# } -## self.tableau.actives = {} -## self.tableau.lchi = self.lchi -## self.tableau.chi = {} -## for i, val in enumerate(self.la) : -## self.tableau.actives[val] = [self.lfreq[i]] -## self.tableau.chi[val] = [self.lchi[i]] -# -# act = {} -# self.tableau.chi = {} -# self.tableau.lchi = self.lchi -# self.tableau.parametre['fromprof'] = True -# for i, val in enumerate(self.la) : -# act[val] = [self.lfreq[i]] -# self.tableau.chi[val] = [self.lchi[i]] -# DoSimi(self, param = paramsimi, fromprof = ffr(self.filename), pathout = pathout, listactives = self.la, actives = act) -# -# def onwordgraph(self, evt): -# word = self.getColumnText(self.list.GetFirstSelected(), 6) -# dlg = progressbar(self, 2) -# corpus = self.Source.corpus -# uces = corpus.lc[self.cl-1] -# dlg.Update(1, u'Tableau...') -# #tab = corpus.make_table_with_classe(uces, self.la) -# pathout = ConstructPathOut(self.Source.pathout.dirout + '/' , 'simi_%s' % word) -# self.filename = os.path.join(pathout,'mat01.csv') -# dlg.Update(2, u'Ecriture...') -# #corpus.write_tab(tab, self.filename) -# #del tab -# corpus.make_and_write_sparse_matrix_from_classe(self.la, uces, self.filename) -# dlg.Destroy() -# paramsimi = {'coeff' : 0, -# 'layout' : 2, -# 'type' : 1, -# 'arbremax' : 0, -# 'coeff_tv' : 1, -# 'coeff_tv_nb' : 0, -# 'tvprop' : 0, -# 'tvmin' : 5, -# 'tvmax' : 30, -# 'coeff_te' : 1, -# 'coeff_temin' : 1, -# 'coeff_temax' : 10, -# 'label_v': 1, -# 'label_e': 0, -# 'vcex' : 1, -# 'vcexmin' : 10, -# 'vcexmax' : 25, -# 'cex' : 10, -# 'seuil_ok' : 1, -# 'seuil' : 1, -# 'cols' : (255,0,0), -# 'cola' : (200,200,200), -# 'width' : 600, -# 'height' : 600, -# 'first' : True, -# 'keep_coord' : True, -# 'alpha' : 20, -# 'film': False, -# } -# self.tableau = Tableau(self.parent, '') -# self.tableau.listactives = self.la -# self.tableau.actives = {} -# for i, val in enumerate(self.la) : -# self.tableau.actives[val] = [self.lfreq[i]] -# DoSimi(self, param = paramsimi, fromprof = ffr(self.filename), pathout = pathout, wordgraph = word) -# -# def OnPopupOne(self, event): corpus = self.Source.corpus #print 'ATTENTION PRINT ET TABLE' @@ -1265,342 +735,18 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col if ucef != [] : nb = len(ucef) rep.append([corpus.getforme(forme).forme, nb]) - win = message(self, -1, u"Formes associées", size=(300, 200), style=wx.DEFAULT_FRAME_STYLE) + rep.sort(key = itemgetter(1), reverse = True) + win = message(self, u"Formes associées", wx.Size(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) -# -# def on_graph(self, evt): -# dlg = progressbar(self, 2) -# corpus = self.Source.corpus -# uces = corpus.lc[self.cl-1] -# dlg.Update(1, u'Tableau...') -# #tab = corpus.make_table_with_classe(uces, self.la) -# pathout = ConstructPathOut(self.Source.pathout.dirout+'/', 'simi_classe_%i' %self.cl) -# self.filename = os.path.join(pathout,'mat01.csv') -# dlg.Update(2, u'Ecriture...') -# #corpus.write_tab(tab, self.filename) -# #del tab -# corpus.make_and_write_sparse_matrix_from_classe(self.la, uces, self.filename) -# dlg.Destroy() -# paramsimi = {'coeff' : 0, -# 'layout' : 2, -# 'type' : 1, -# 'arbremax' : 1, -# 'coeff_tv' : 1, -# 'coeff_tv_nb' : 0, -# 'tvprop' : 0, -# 'tvmin' : 5, -# 'tvmax' : 30, -# 'coeff_te' : 1, -# 'coeff_temin' : 1, -# 'coeff_temax' : 10, -# 'label_v': 1, -# 'label_e': 0, -# 'vcex' : 0, -# 'vcexmin' : 10, -# 'vcexmax' : 25, -# 'cex' : 10, -# 'cexfromchi' : True, -# 'sfromchi': False, -# 'seuil_ok' : 0, -# 'seuil' : 1, -# 'cols' : (255,0,0), -# 'cola' : (200,200,200), -# 'width' : 1000, -# 'height' : 1000, -# 'first' : True, -# 'keep_coord' : True, -# 'alpha' : 20, -# 'film': False, -# } -# self.tableau = Tableau(self.parent, '') -# self.tableau.listactives = self.la -# self.tableau.actives = {} -# self.tableau.lchi = self.lchi -# self.tableau.chi = {} -# self.tableau.parametre['fromprof'] = True -# for i, val in enumerate(self.la) : -# self.tableau.actives[val] = [self.lfreq[i]] -# self.tableau.chi[val] = [self.lchi[i]] -# DoSimi(self, param = paramsimi, fromprof = ffr(self.filename), pathout = pathout) -# -# def on_segments(self,evt) : -# dlg = progressbar(self, 2) -# corpus = self.Source.corpus -# uces = corpus.lc[self.cl-1] -# l = [] -# dlg.Update(1, u'Segments...') -# for i in range(2,10) : -# li = corpus.find_segments_in_classe(uces, i, 1000) -# if li == [] : -# break -# else : -# l += li -# l.sort(reverse = True) -# d = {} -# dlg.Update(2, 'Tri...') -# for i, line in enumerate(l) : -# d[i] = [line[1],line[0], line[2]] -# 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.Show(True) -# -# def on_uce_carac(self,evt) : -# dial = PrefUCECarac(self, self.parent) -# dial.CenterOnParent() -# if dial.ShowModal() == wx.ID_OK : -# limite = dial.spin_eff.GetValue() -# atype = dial.radio_type.GetSelection() -# dlg = progressbar(self,maxi = 4) -# corpus = self.Source.corpus -# uces = corpus.lc[self.cl-1] -# tab = corpus.make_table_with_classe(uces, self.la) -# tab.pop(0) -# dlg.Update(2, u'score...') -# if atype == 0 : -# ntab = [round(sum([self.lchi[i] for i, word in enumerate(line) if word == 1]),2) for line in tab] -# else : -# ntab = [round(sum([self.lchi[i] for i, word in enumerate(line) if word == 1])/float(sum(line)),2) if sum(line)!=0 else 0 for line in tab] -# ntab2 = [[ntab[i], uces[i]] for i, val in enumerate(ntab)] -# del ntab -# ntab2.sort(reverse = True) -# ntab2 = ntab2[:limite] -# nuces = [val[1] for val in ntab2] -# dlg.Update(3, u'concordancier...') -# #ucestxt = [corpus.ucis_paras_uces[val[1][0]][val[1][1]][val[1][2]] for val in ntab2] -# ucestxt1 = [row for row in corpus.getconcorde(nuces)] -# ucestxt = [] -# ucis_txt = [] -# for uce in ucestxt1 : -# ucetxt = ' '+uce[1]+' ' -# ucis_txt.append(' '.join(corpus.ucis[corpus.getucefromid(uce[0]).uci].etoiles) + '
') -# for lem in self.la : -# listmot = corpus.getlems()[lem].formes -# for id in listmot : -# forme = corpus.getforme(id).forme -# ucetxt = ucetxt.replace(' '+forme+' ', ' ' + forme + ' ') -# ucestxt.append(ucetxt) -# #ucestxt = [corpus.make_concord(self.la, ' '.join(uce), 'red') for uce in ucestxt] -# dlg.Update(4, u'texte...') -# #ucis_txt = [' '.join(corpus.ucis[val[1][0]][0]) for val in ntab2] -# win = message(self, -1, u"UCE caractéristiques - Classe %i" % self.cl, size=(600, 500), style=wx.DEFAULT_FRAME_STYLE) -# win.html = '\n' + '

'.join(['
'.join([ucis_txt[i], 'score : ' + str(ntab2[i][0]), ucestxt[i]]) for i in range(0,len(ucestxt))]) + '\n' -# win.HtmlPage.SetPage(win.html) -# dlg.Destroy() -# win.Show(True) -# -# def on_tablex(self, evt): -# if 'corpus' in dir(self.Source): -# corpus = self.Source.corpus -# else : -# corpus = self.Source.tableau -# with codecs.open(self.Source.pathout['chisqtable'], 'r', corpus.parametres['syscoding']) as f : -# chistable = [line.replace('\n','').replace('\r','').replace('"','').replace(',','.').split(';') for line in f] -# title = chistable[0] -# title.pop(0) -# chistable.pop(0) -# vchistable = [line[1:] for line in chistable] -# fchistable = [line[0] for line in chistable] -# words = [self.getColumnText(self.list.GetFirstSelected(), 6)] -# tableout = [vchistable[fchistable.index(words[0])]] -# last = self.list.GetFirstSelected() -# while self.list.GetNextSelected(last) != -1: -# last = self.list.GetNextSelected(last) -# word = self.getColumnText(last, 6) -# words.append(word) -# tableout.append(vchistable[fchistable.index(word)]) -# tmpgraph = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) -# nbcl = len(title) -# txt = barplot(tableout, words, title, self.Source.parent.RscriptsPath['Rgraph'], tmpgraph) -# tmpscript = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) -# file = open(tmpscript,'w') -# file.write(txt) -# file.close() -# -# exec_rcode(self.Source.parent.RPath, tmpscript, wait = True) -# win = MessageImage(self, -1, u"Graphique", size=(700, 500),style = wx.DEFAULT_FRAME_STYLE) -# win.addsaveimage(tmpgraph) -# txt = "" % tmpgraph -# win.HtmlPage.SetPage(txt) -# win.Show(True) -# -# def onlexdendro(self, evt): -# if 'corpus' in dir(self.Source): -# corpus = self.Source.corpus -# else : -# corpus = self.Source.tableau -# with codecs.open(self.Source.pathout['chisqtable'], 'r', corpus.parametres['syscoding']) as f : -# chistable = [line.replace('\n','').replace('\r','').replace('"','').replace(',','.').split(';') for line in f] -# title = chistable[0] -# title.pop(0) -# chistable.pop(0) -# vchistable = [line[1:] for line in chistable] -# fchistable = [line[0] for line in chistable] -# words = [self.getColumnText(self.list.GetFirstSelected(), 6)] -# tableout = [vchistable[fchistable.index(words[0])]] -# last = self.list.GetFirstSelected() -# while self.list.GetNextSelected(last) != -1: -# last = self.list.GetNextSelected(last) -# word = self.getColumnText(last, 6) -# words.append(word) -# tableout.append(vchistable[fchistable.index(word)]) -# tmpgraph = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) -# txttable = 'c(' + ','.join([','.join(line) for line in tableout]) + ')' -# rownames = 'c("' + '","'.join(words) + '")' -# colnames = 'c("' + '","'.join(title) + '")' -# nbcl = len(title) -# rownb = len(words) -# txt = """ -# load("%s") -# di <- matrix(data=%s, nrow=%i, byrow = TRUE) -# rownames(di)<- %s -# colnames(di) <- %s -# library(ape) -# source("%s") -# height <- (30*ncol(di)) + (15*nrow(di)) -# height <- ifelse(height <= 400, 400, height) -# width <- 500 -# open_file_graph("%s", width=width, height=height) -# plot.dendro.lex(tree.cut1$tree.cl, di) -# """ % (self.Source.pathout['Rdendro'], txttable, rownb, rownames, colnames, self.Source.parent.RscriptsPath['Rgraph'], ffr(tmpgraph)) -# tmpscript = tempfile.mktemp(dir=self.Source.parent.TEMPDIR) -# file = open(tmpscript,'w') -# file.write(txt) -# file.close() -# exec_rcode(self.Source.parent.RPath, tmpscript, wait = True) -# win = MessageImage(self, -1, u"Graphique", size=(700, 500),style = wx.DEFAULT_FRAME_STYLE) -# win.addsaveimage(tmpgraph) -# txt = "" % tmpgraph -# win.HtmlPage.SetPage(txt) -# win.Show(True) -# -# -# def make_concord(self, uces, title, color = 'red') : -# corpus = self.Source.corpus -# ListWord = [self.getColumnText(self.list.GetFirstSelected(), 6)] -# last = self.list.GetFirstSelected() -# while self.list.GetNextSelected(last) != -1: -# last = self.list.GetNextSelected(last) -# ListWord.append(self.getColumnText(last, 6)) -# listmot = [forme for item in ListWord for forme in corpus.getlems()[item].formes] -# win = message(self, -1, title, size=(600, 500), style=wx.DEFAULT_FRAME_STYLE) -# toshow = ['\n

Concordancier

\n'] -# toshow.append('

' % color + ' '.join(ListWord) + '


') -# duce = {} -# ucef = [] -# for word in ListWord : -# ucef += list(set(corpus.getlemuces(word)).intersection(uces)) -# ucef = list(set(ucef)) -# ucef.sort() -# res = corpus.getconcorde(ucef) -# txt = '
'.join(toshow) +'

' -# for uce in res : -# ucetxt = ' '+uce[1]+' ' -# txt += ' '.join(corpus.ucis[corpus.getucefromid(uce[0]).uci].etoiles) + '
' -# for forme in listmot: -# forme = corpus.getforme(forme).forme -# ucetxt = ucetxt.replace(' '+forme+' ', ' ' + forme + ' ') -# txt += ucetxt + '

' -# win.HtmlPage.SetPage(txt) -# return win -# -# def OnPopupTwo(self, event): -# corpus = self.Source.corpus -# uces = corpus.lc[self.cl-1] -# win = self.make_concord(uces, "Concordancier - 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 - UCE classées") -# 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 - Toutes les UCE") -# win.Show(True) -# -# def OnPopupFive(self, event): -# word = self.getColumnText(self.list.GetFirstSelected(), 6) -# lk = "http://www.cnrtl.fr/definition/" + word -# webbrowser.open(lk) -# -# def OnPopupSix(self, event): -# word = self.getColumnText(self.list.GetFirstSelected(), 6) -# lk = "http://www.cnrtl.fr/etymologie/" + word -# webbrowser.open(lk) -# -# def OnPopupSeven(self, event): -# word = self.getColumnText(self.list.GetFirstSelected(), 6) -# lk = "http://www.cnrtl.fr/synonymie/" + word -# webbrowser.open(lk) -# -# def OnPopupHeight(self, event): -# word = self.getColumnText(self.list.GetFirstSelected(), 6) -# lk = "http://www.cnrtl.fr/antonymie/" + word -# webbrowser.open(lk) -# -# def OnPopupNine(self, event): -# word = self.getColumnText(self.list.GetFirstSelected(), 6) -# lk = "http://www.cnrtl.fr/morphologie/" + word -# webbrowser.open(lk) -# -# def onproxe(self, evt) : -# word = self.getColumnText(self.list.GetFirstSelected(), 6) -# lk = "http://www.cnrtl.fr/proxemie/" + word -# webbrowser.open(lk) -# -# def OnSize(self, event): -# w, h = self.GetClientSizeTuple() -# self.list.SetDimensions(0, 0, w, h) -# -# def OnColClick(self, event): -# self.do_greyline() -# -# -#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) -# self.button_1 = wx.Button(self, -1, "Fermer") -# self.Bind(wx.EVT_BUTTON, self.OnCloseMe, self.button_1) -# self.Bind(wx.EVT_CLOSE, self.OnCloseWindow) -# self.__do_layout() -# -# def __do_layout(self): -# sizer_1 = wx.BoxSizer(wx.VERTICAL) -# sizer_2 = wx.BoxSizer(wx.VERTICAL) -# sizer_2.Add(self.liste, 1, wx.EXPAND | wx.ADJUST_MINSIZE, 0) -# sizer_2.Add(self.button_1, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ADJUST_MINSIZE, 0) -# sizer_1.Add(sizer_2, 1, wx.EXPAND, 0) -# self.SetAutoLayout(True) -# self.SetSizer(sizer_1) -# self.Layout() -# -# def OnCloseMe(self, event): -# self.Close(True) -# -# def OnCloseWindow(self, event): -# self.Destroy() -# -class message(wx.Frame): - def __init__(self, *args, **kwds): - kwds["style"] = wx.DEFAULT_FRAME_STYLE - wx.Frame.__init__(self, *args, **kwds) - self.html = "" - self.HtmlPage=wx.html.HtmlWindow(self, -1) - if "gtk2" in wx.PlatformInfo: - self.HtmlPage.SetStandardFonts() - self.HtmlPage.SetFonts('Courier','Courier') - self.button_1 = wx.Button(self, -1, "Fermer") - self.button_2 = wx.Button(self, -1, u"Enregistrer...") - self.Bind(wx.EVT_BUTTON, self.OnSavePage, self.button_2) + +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, menu = False) + self.button_1 = wx.Button(self, -1, "Fermer") self.Bind(wx.EVT_BUTTON, self.OnCloseMe, self.button_1) self.Bind(wx.EVT_CLOSE, self.OnCloseWindow) self.__do_layout() @@ -1608,61 +754,15 @@ class message(wx.Frame): def __do_layout(self): sizer_1 = wx.BoxSizer(wx.VERTICAL) sizer_2 = wx.BoxSizer(wx.VERTICAL) - sizer_2.Add(self.HtmlPage, 1, wx.EXPAND|wx.ADJUST_MINSIZE, 0) - sizer_2.Add(self.button_1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ADJUST_MINSIZE, 0) - sizer_2.Add(self.button_2, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ADJUST_MINSIZE, 0) + sizer_2.Add(self.liste, 1, wx.EXPAND | wx.ADJUST_MINSIZE, 0) + sizer_2.Add(self.button_1, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ADJUST_MINSIZE, 0) sizer_1.Add(sizer_2, 1, wx.EXPAND, 0) self.SetAutoLayout(True) self.SetSizer(sizer_1) self.Layout() - - def OnSavePage(self, evt) : - dlg = wx.FileDialog( - self, message="Enregistrer sous...", defaultDir=os.getcwd(), - defaultFile="concordancier.html", wildcard="html|*.html", style=wx.SAVE | wx.OVERWRITE_PROMPT - ) - dlg.SetFilterIndex(2) - dlg.CenterOnParent() - if dlg.ShowModal() == wx.ID_OK: - path = dlg.GetPath() - with open(path, 'w') as f : - f.write(self.html) - + def OnCloseMe(self, event): self.Close(True) def OnCloseWindow(self, event): self.Destroy() -# -#def getSmallUpArrowData(): -# return \ -#'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\x08\x06\ -#\x00\x00\x00\x1f\xf3\xffa\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\ -#\x00\x00C\xb0\x89\ -#\xd3.\x10\xd1m\xc3\xe5*\xbc.\x80i\xc2\x17.\x8c\xa3y\x81\x01\x00\xa1\x0e\x04e\ -#?\x84B\xef\x00\x00\x00\x00IEND\xaeB`\x82" -# -#def getSmallDnArrowBitmap(): -# return wx.BitmapFromImage(getSmallDnArrowImage()) -# -#def getSmallDnArrowImage(): -# stream = cStringIO.StringIO(getSmallDnArrowData()) -# return wx.ImageFromStream(stream)