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
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) :
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)
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','')
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()
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' :
#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 :
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 :
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'])