From: Pierre Date: Wed, 10 Oct 2012 12:27:43 +0000 (+0200) Subject: ... X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=commitdiff_plain;h=e9568b211b7770aebf8f16db60f0aa4fecbc54db ... --- diff --git a/functions.py b/functions.py index 2909a44..b3fff13 100644 --- a/functions.py +++ b/functions.py @@ -76,11 +76,12 @@ class History : def add(self, analyse) : if 'corpus' in analyse : - if analyse['corpus'] in self.corpora : - if 'analyses' in self.history[analyse['corpus']] : - self.history[analyse['corpus']]['analyses'].append(analyse) + acorpus_uuid = analyse['corpus'] + if acorpus_uuid in self.corpora : + if 'analyses' in self.history[acorpus_uuid] : + self.history[acorpus_uuid]['analyses'].append(analyse) else : - self.history[analyse['corpus']]['analyses'] = [analyse] + self.history[acorpus_uuid]['analyses'] = [analyse] self.analyses[analyse['uuid']] = analyse else : self.analyses[analyse['uuid']] = analyse @@ -107,6 +108,9 @@ class History : def rmtab(self, analyse) : del self.opened[analyse['uuid']] + + def __str__(self) : + return str(self.history) class DoConf : def __init__(self, configfile=None, diff = None, parametres = None) : @@ -158,7 +162,6 @@ class DoConf : self.conf.set(section, option, `parametres[i][option]`) if outfile is None : outfile = self.configfile - print outfile with codecs.open(outfile, 'w', 'utf8') as f : self.conf.write(f) diff --git a/guifunct.py b/guifunct.py index bf8614b..7b1f2fe 100644 --- a/guifunct.py +++ b/guifunct.py @@ -17,7 +17,7 @@ def OnOpen(self, type): elif type == "Texte": wildcard = "Fichier texte|*.txt|Tous les fichiers|*" elif type == "Analyse": - wildcard = "Fichier analyse|*.ira" + wildcard = "Fichier analyse/Corpus|*.ira;*.cira" defaultDir = self.PathPath.get('PATHS', 'lastpath') if defaultDir.strip() == '': defaultDir = self.UserConfigPath.replace('.iramuteq','') diff --git a/layout.py b/layout.py index 361c1b0..91d5f83 100644 --- a/layout.py +++ b/layout.py @@ -612,7 +612,7 @@ class dolexlayout : class StatLayout: def __init__(self, ira, corpus, parametres): - self.pathout = PathOut(dirout = os.path.dirname(parametres['pathout'])) + self.pathout = PathOut(dirout = parametres['pathout']) self.corpus = corpus self.ira = ira self.read_result() diff --git a/openanalyse.py b/openanalyse.py index 2678a3a..3787fe6 100644 --- a/openanalyse.py +++ b/openanalyse.py @@ -26,26 +26,67 @@ class OpenAnalyse(): self.parent = parent if isinstance(parametres, dict) : self.conf = DoConf(parametres['ira']).getoptions() + self.path = parametres['ira'] else : self.conf = DoConf(parametres).getoptions() + self.path = parametres + self.conf = self.redopath(self.conf, parametres) - if self.conf.get('corpus', '!!') in self.parent.history.history : - if self.conf.get('corpus', '!!') in self.parent.history.openedcorpus : - 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.conf['corpus']]['ira']) : - corpus = Corpus(self, parametres = DoConf(self.parent.history.history[self.conf['corpus']]['ira']).getoptions('corpus'), read = self.parent.history.history[self.conf['corpus']]['ira']) - self.parent.history.openedcorpus[self.conf['corpus']] = corpus + if self.conf['type'] == 'corpus' : + corpus = self.opencorpus() + elif self.conf['corpus'] in self.parent.history.history : + corpus = self.openanalyse() if self.conf.get('lem',1) : corpus.make_lems(True) else : corpus.make_lems(False) + self.doopen(corpus) else : corpus = None - self.doopen(corpus) self.parent.history.addtab(self.conf) - + + def redopath(self, conf, path) : + #if not os.path.exists(conf['ira']) : + 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) : + if self.conf['uuid'] not in self.parent.history.history : + self.parent.history.add(self.conf) + log.info('add to history') + self.parent.tree.OnItemAppend(self.conf) + if self.conf['uuid'] in self.parent.history.openedcorpus : + log.info('corpus is already opened') + else : + corpus = Corpus(self, parametres = self.conf, read = self.parent.history.history[self.conf['uuid']]['ira']) + self.parent.history.openedcorpus[self.conf['uuid']] = corpus + self.opencorpus_analyses() + self.doopen(corpus) + + def opencorpus_analyses(self) : + basepath = self.conf['pathout'] + for root, subfolders, files in os.walk(basepath) : + for folder in subfolders : + if os.path.exists(os.path.join(folder, 'Analyse.ira')) : + analyse_conf = DoConf(os.path.join(folder, 'Analyse.ira')).getoptions() + analyse_conf = self.redopath(analyse_conf, os.path.join(folder, 'Analyse.ira')) + if analyse_conf['corpus'] == self.conf['uuid'] : + self.parent.history.add(analyse_conf) + self.parent.tree.AddAnalyse(analyse_conf, bold = False) + + #self.parent.tree.OnItemAppend(self.conf) + def openanalyse(self) : + if self.conf['corpus'] in self.parent.history.openedcorpus : + log.info('corpus is already opened') + corpus = self.parent.history.openedcorpus[self.conf['corpus']] + else : + if os.path.exists(self.parent.history.history[self.conf['corpus']]['ira']) : + corpus = Corpus(self, parametres = DoConf(self.parent.history.history[self.conf['corpus']]['ira']).getoptions('corpus'), read = self.parent.history.history[self.conf['corpus']]['ira']) + self.parent.history.openedcorpus[self.conf['corpus']] = corpus + return corpus + def doopen(self, corpus) : print self.conf if self.conf['type'] == 'corpus' : diff --git a/tree.py b/tree.py index bde076a..d856799 100644 --- a/tree.py +++ b/tree.py @@ -67,7 +67,7 @@ class LeftTree(CT.CustomTreeCtrl): #textctrl.Bind(wx.EVT_CHAR, self.OnTextCtrl) #combobox.Bind(wx.EVT_COMBOBOX, self.OnComboBox) #lenArtIds = len(ArtIDs) - 2 - for x in range(len(self.h)) : + for x in range(len(self.history.corpora)) : if 'corpus_name' in self.h[self.history.order[x]] : key = 'corpus_name' else : @@ -524,11 +524,12 @@ class LeftTree(CT.CustomTreeCtrl): dlg.Destroy() - def AddAnalyse(self, parametres, itemParent = None) : + def AddAnalyse(self, parametres, itemParent = None, bold = True) : uuid = parametres['corpus'] if itemParent is None : itemParent = self.root child, cookie = self.GetFirstChild(itemParent) + corpus = None while child : pydata = self.GetPyData(child) if pydata['uuid'] == uuid : @@ -536,11 +537,15 @@ class LeftTree(CT.CustomTreeCtrl): break self.GiveFocus(child, uuid) child, cookie = self.GetNextChild(itemParent, cookie) - item = self.AppendItem(corpus, parametres['name']) + #item = self.AppendItem(child, parametres['name']) + if corpus is not None : + item = self.AppendItem(corpus, parametres['name']) + else : + item = self.AppendItem(self.root, parametres['name']) self.SetPyData(item, parametres) self.SetItemImage(item, 24, CT.TreeItemIcon_Normal) self.SetItemImage(item, 13, CT.TreeItemIcon_Expanded) - self.SetItemBold(item, True) + self.SetItemBold(item, bold) def OnItemAppend(self, item): child = self.AppendItem(self.root, item['corpus_name'])