modif chdtxt, a tester, problemes sur double sur rst
[iramuteq] / ProfList.py
index 9097897..e2a7c84 100644 (file)
@@ -49,13 +49,17 @@ 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
         for i,  line in enumerate(classen) :
@@ -70,6 +74,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 +159,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 +169,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 +193,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 +211,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 --
@@ -424,7 +407,7 @@ 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(os.path.join(self.Source.pathout, 'simi_classe_%i' %self.cl))
         self.filename = os.path.join(pathout,'mat01.csv')
         tableau.printtable(self.filename, tab)
         del tab
@@ -477,108 +460,85 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col
 
     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.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.cl - 1, parametres = parametres, dlg = progressbar(self, 4))
+        #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)