profile translations
[iramuteq] / openanalyse.py
index 2cf40c8..da13f74 100644 (file)
@@ -2,16 +2,14 @@
 # -*- coding: utf-8 -*-
 #Author: Pierre Ratinaud
 #Copyright (c) 2008-2012, Pierre Ratinaud
 # -*- coding: utf-8 -*-
 #Author: Pierre Ratinaud
 #Copyright (c) 2008-2012, Pierre Ratinaud
-#Lisense: GNU/GPL
+#License: GNU/GPL
 
 
-from chemins import ChdTxtPathOut, StatTxtPathOut, construct_simipath, PathOut
-from layout import OpenCHDS, dolexlayout, StatLayout, WordCloudLayout, OpenCorpus, SimiLayout
+from chemins import ChdTxtPathOut, StatTxtPathOut, PathOut
+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
 from corpus import Corpus, copycorpus
 from tableau import Tableau
 import os
-import shelve
-from tabsimi import DoSimi
-from functions import BugReport, DoConf
+from functions import DoConf, ReadDicoAsDico
 from tableau import Tableau
 import logging
 
 from tableau import Tableau
 import logging
 
@@ -28,62 +26,95 @@ class OpenAnalyse():
             self.conf = DoConf(parametres).getoptions()
             self.path = parametres
             self.conf = self.redopath(self.conf, parametres)
             self.conf = DoConf(parametres).getoptions()
             self.path = parametres
             self.conf = self.redopath(self.conf, parametres)
-        
+
         if self.conf['type'] == 'corpus' :
             corpus = self.opencorpus()
         if self.conf['type'] == 'corpus' :
             corpus = self.opencorpus()
+        elif self.conf['type'] == 'matrix' :
+            matrix = self.openmatrix()
         elif self.conf.get('corpus', False) in self.parent.history.corpus :
             if self.conf['uuid'] in self.parent.history.analyses :
                 intree  = True
             else :
                 intree = False
             corpus = self.openanalyse()
         elif self.conf.get('corpus', False) in self.parent.history.corpus :
             if self.conf['uuid'] in self.parent.history.analyses :
                 intree  = True
             else :
                 intree = False
             corpus = self.openanalyse()
+
             if self.conf.get('lem',1) :
             if self.conf.get('lem',1) :
-               corpus.make_lems(True)
+                dolem = True
             else :
             else :
-               corpus.make_lems(False)
+                dolem = False
+            if self.conf.get('dictionary', False) :
+                dico = ReadDicoAsDico(self.conf['dictionary'])
+                corpus.make_lems_from_dict(dico, dolem = dolem)
+            else :
+                corpus.make_lems(lem = dolem)
             if not intree :
                 self.parent.tree.AddAnalyse(self.conf, bold = True)
             else :
                 self.parent.tree.GiveFocus(uuid = self.conf['uuid'], bold = True)
             self.doopen(corpus)
             if not intree :
                 self.parent.tree.AddAnalyse(self.conf, bold = True)
             else :
                 self.parent.tree.GiveFocus(uuid = self.conf['uuid'], bold = True)
             self.doopen(corpus)
-        else :
+        elif self.conf.get('matrix', False) in self.parent.history.ordermatrix :
             corpus = None
             corpus = None
-            if isinstance(parametres, dict) :
-                tableau = Tableau(parent, parametres['ira'])
-            else :
-                tableau = Tableau(parent, parametres)
-            tableau.parametres = self.conf 
-            tableau.dictpathout = PathOut(filename = tableau.parametres['filename'], dirout = self.conf['pathout'], analyse_type = self.conf['type'])
-            tableau.dictpathout.basefiles(ChdTxtPathOut)
-            tableau.read_tableau(tableau.dictpathout['db'])
-            if self.parent.tree.IsInTree(uuid = self.conf['uuid']) :
-                self.parent.tree.GiveFocus(uuid = self.conf['uuid'], bold = True)
-            else :
-                self.parent.tree.AddAnalyse(self.conf, bold = True)
-            self.doopen(tableau)
+            matrix = Tableau(self.parent, parametres = self.parent.history.matrix[self.parent.history.ordermatrix[self.conf['matrix']]])
+            matrix.open()
+            #if isinstance(parametres, dict) :
+            #    tableau = Tableau(parent, parametres['ira'])
+            #else :
+            #    tableau = Tableau(parent, parametres)
+            #tableau.parametres = self.conf 
+            #tableau.dictpathout = PathOut(filename = tableau.parametres['filename'], dirout = self.conf['pathout'], analyse_type = self.conf['type'])
+            #tableau.dictpathout.basefiles(ChdTxtPathOut)
+            #tableau.read_tableau(tableau.dictpathout['db'])
+            #if self.parent.tree.IsInTree(uuid = self.conf['uuid']) :
+            self.parent.tree.GiveFocus(uuid = self.conf['uuid'], bold = True)
+            self.doopen(matrix)
+        else :
+            self.parent.tree.AddAnalyse(self.conf, bold = True)
         self.parent.history.addtab(self.conf)
         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 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 :
     def opencorpus(self) :
         log.info('open corpus')
         if self.conf['uuid'] not in self.parent.history.corpus :
-            self.parent.history.add(self.conf) 
-            log.info('add to history')
+            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.tree.OnItemAppend(self.conf)
         if self.conf['uuid'] in self.parent.history.openedcorpus :
-            log.info('corpus is already opened 1')
+            log.info('corpus is already opened')
             self.doopen(self.parent.history.openedcorpus[self.conf['uuid']])
         else :
             self.doopen(self.parent.history.openedcorpus[self.conf['uuid']])
         else :
+            #dial = progressbar(2)
+            #dial.Update(1, 'Ouverture du corpus')
             corpus = Corpus(self, parametres = self.conf, read = self.parent.history.history[self.parent.history.ordercorpus[self.conf['uuid']]]['ira'])
             corpus = Corpus(self, parametres = self.conf, read = self.parent.history.history[self.parent.history.ordercorpus[self.conf['uuid']]]['ira'])
+            #dial.Update(2, 'Fini')
+            #dial.Destroy()
             self.parent.history.openedcorpus[self.conf['uuid']] = corpus
             self.opencorpus_analyses()
             self.doopen(corpus)
 
             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 :
+            self.parent.history.addMatrix(self.conf)
+            log.info('add matrix to history')
+            self.parent.tree.OnItemAppend(self.conf)
+        if self.conf['uuid'] in self.parent.history.openedmatrix :
+            log.info('matrix is already opened')
+            self.doopen(self.parent.history.openedmatrix[self.conf['uuid']])
+        else :
+            #dial = progressbar(2)
+            #dial.Update(1, 'Ouverture du corpus')
+            matrix = Tableau(self, parametres = self.conf)
+            matrix.open()
+            self.parent.history.openedmatrix[self.conf['uuid']] = matrix
+            self.openmatrix_analyses()
+            self.doopen(matrix)
+            self.parent.history.addtab(self.conf)
+
     def opencorpus_analyses(self) :
         log.info('open analysis')
         basepath = self.conf['pathout']
     def opencorpus_analyses(self) :
         log.info('open analysis')
         basepath = self.conf['pathout']
@@ -100,10 +131,13 @@ class OpenAnalyse():
         for analyse in analyses :
             self.parent.tree.AddAnalyse(analyse, bold = False)
 
         for analyse in analyses :
             self.parent.tree.AddAnalyse(analyse, bold = False)
 
+    def openmatrix_analyses(self):
+        pass
+
     def openanalyse(self) :
         if self.conf['corpus'] in self.parent.history.openedcorpus :
     def openanalyse(self) :
         if self.conf['corpus'] in self.parent.history.openedcorpus :
-            log.info('corpus is already opened 2')
-            corpus = self.parent.history.openedcorpus[self.conf['corpus']]
+            log.info('corpus is already opened')
+            corpus = copycorpus(self.parent.history.openedcorpus[self.conf['corpus']])
         else :
             if os.path.exists(self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira']) :
                 corpus = Corpus(self, parametres = DoConf(self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira']).getoptions('corpus'), read = self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira'])
         else :
             if os.path.exists(self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira']) :
                 corpus = Corpus(self, parametres = DoConf(self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira']).getoptions('corpus'), read = self.parent.history.history[self.parent.history.ordercorpus[self.conf['corpus']]]['ira'])
@@ -113,24 +147,28 @@ class OpenAnalyse():
 
     def doopen(self, corpus) :
         if self.conf['type'] == 'corpus' :
 
     def doopen(self, corpus) :
         if self.conf['type'] == 'corpus' :
-            self.parent.ShowMenu(_("Text analysis"))
-            OpenCorpus(self.parent, self.conf) 
+            OpenCorpus(self.parent, self.conf)
         elif self.conf['type'] == 'stat' :
         elif self.conf['type'] == 'stat' :
-            self.parent.ShowMenu(_("Text analysis"))
             StatLayout(self.parent, corpus, self.conf)
         elif self.conf['type'] == 'spec' :
             StatLayout(self.parent, corpus, self.conf)
         elif self.conf['type'] == 'spec' :
-            self.parent.ShowMenu(_("Text analysis"))
             dolexlayout(self.parent, corpus, self.conf)
             dolexlayout(self.parent, corpus, self.conf)
+        elif self.conf['type'] == 'labbe' :
+            LabbeLayout(self.parent, corpus, self.conf)
         elif self.conf['type'] == 'alceste' :
         elif self.conf['type'] == 'alceste' :
-            self.parent.ShowMenu(_("Text analysis"))
             OpenCHDS(self.parent,  corpus, self.conf, Alceste = True)
         elif self.conf['type'] == 'simitxt' or self.conf['type'] == 'clustersimitxt' :
             OpenCHDS(self.parent,  corpus, self.conf, Alceste = True)
         elif self.conf['type'] == 'simitxt' or self.conf['type'] == 'clustersimitxt' :
-            self.parent.ShowMenu(_("Text analysis"))
             SimiLayout(self.parent, corpus, self.conf)
             SimiLayout(self.parent, corpus, self.conf)
-        elif self.conf['type'] == 'wordcloud' :
-            self.parent.ShowMenu(_("Text analysis"))
+        elif self.conf['type'] == 'wordcloud' or self.conf['type'] == 'clustercloud':
             WordCloudLayout(self.parent, corpus, self.conf)
             WordCloudLayout(self.parent, corpus, self.conf)
-        elif self.conf['type'] == 'gnepamatrix' :
-            self.parent.ShowMenu(_("Spreadsheet analysis"))
+        elif self.conf['type'] == 'reinertmatrix' :
             OpenCHDS(self.parent,  corpus, self.conf, Alceste = False)
             OpenCHDS(self.parent,  corpus, self.conf, Alceste = False)
-        
+        elif self.conf['type'] == 'simimatrix' or self.conf['type'] == 'simiclustermatrix':
+            SimiMatLayout(self.parent, corpus, self.conf)
+        elif self.conf['type'] == 'proto' :
+            ProtoLayout(self.parent, corpus, self.conf)
+        elif self.conf['type'] == 'matrix' :
+            MatLayout(self.parent, corpus)
+        elif self.conf['type'] == 'freq' or self.conf['type'] == 'freqmulti':
+            FreqLayout(self.parent, corpus, self.conf)
+        elif self.conf['type'] == 'chi2' or self.conf['type'] == 'chi2mcnemar':
+            Chi2Layout(self.parent, corpus, self.conf)