- self.conf = DoConf(self.filein)
- self.order = {}
- self.ordera = {}
- for i, section in enumerate(self.conf.conf.sections()) :
- if self.conf.conf.has_option(section, 'corpus_name') :
- self.corpora[section] = self.conf.getoptions(section)
- self.order[len(self.order)] = section
- else :
- self.analyses[section] = self.conf.getoptions(section)
- self.ordera[len(self.ordera)] = section
- todel = []
- for corpus in self.corpora :
- self.history[corpus] = copy(self.corpora[corpus])
- for analyse in self.analyses :
- if self.analyses[analyse]['corpus'] in self.corpora :
- if 'analyses' in self.history[self.analyses[analyse]['corpus']] :
- self.history[self.analyses[analyse]['corpus']]['analyses'].append(self.analyses[analyse])
- todel.append(analyse)
- else :
- self.history[self.analyses[analyse]['corpus']]['analyses'] = [self.analyses[analyse]]
- todel.append(analyse)
- else :
- self.history[analyse] = self.analyses[analyse]
- #for analyse in todel :
- # del self.analyses[analyse]
-
- def write(self) :
- sections = self.corpora.keys() + self.analyses.keys()
- parametres = [self.corpora[key] for key in self.corpora.keys() if key != 'analyses'] + [self.analyses[key] for key in self.analyses.keys()]
- self.conf.makeoptions(sections, parametres)
- log.info('write history')
+ d = shelve.open(self.filein)
+ self.history = d.get('history', [])
+ self.matrix = d.get('matrix', [])
+ self.ordercorpus = dict([[corpus['uuid'], i] for i, corpus in enumerate(self.history)])
+ self.corpus = dict([[corpus['uuid'], corpus] for corpus in self.history])
+ self.analyses = dict([[analyse['uuid'], analyse] for corpus in self.history for analyse in corpus.get('analyses', [])])
+ self.matrixanalyse = dict([[mat['uuid'], mat] for mat in self.matrix])
+ d.close()