src/pyams_thesaurus/thesaurus.py
changeset 7 6a22cec2899b
parent 4 5dc0c1fa6af6
child 13 5717572bf2a8
equal deleted inserted replaced
6:9f3987a2dd72 7:6a22cec2899b
   113         self.terms = terms
   113         self.terms = terms
   114         locate(terms, self, '++terms++')
   114         locate(terms, self, '++terms++')
   115         self.reset_terms_parent()
   115         self.reset_terms_parent()
   116         self.reset_top_terms()
   116         self.reset_top_terms()
   117 
   117 
   118     @property
       
   119     def sublocations(self):
   118     def sublocations(self):
   120         return self.terms, self.catalog
   119         return self.terms, self.catalog
   121 
   120 
   122     @property
   121     @property
   123     def top_terms(self):
   122     def top_terms(self):
   126     @top_terms.setter
   125     @top_terms.setter
   127     def top_terms(self, value):
   126     def top_terms(self, value):
   128         self._top_terms = [term for term in value or () if term.usage is None]
   127         self._top_terms = [term for term in value or () if term.usage is None]
   129 
   128 
   130     def init_catalog(self):
   129     def init_catalog(self):
       
   130         # Init catalog
   131         catalog = self.catalog = Catalog()
   131         catalog = self.catalog = Catalog()
       
   132         locate(catalog, self)
   132         # Init fulltext search catalog
   133         # Init fulltext search catalog
   133         catalog['fulltext'] = TextIndexWithInterface(IThesaurusTerm, 'label', language=self.language)
   134         catalog['fulltext'] = TextIndexWithInterface(IThesaurusTerm, 'label', language=self.language)
   134         # Init stemmed search catalog
   135         # Init stemmed search catalog
   135         catalog['stemmed'] = TextIndexWithInterface(IThesaurusTerm, 'label',
   136         catalog['stemmed'] = TextIndexWithInterface(IThesaurusTerm, 'label',
   136                                                     lexicon=Lexicon(NltkStemmedTextProcessor(language=self.language)))
   137                                                     lexicon=Lexicon(NltkStemmedTextProcessor(language=self.language)))
   199                     pass
   200                     pass
   200 
   201 
   201     def reset_top_terms(self):
   202     def reset_top_terms(self):
   202         self.top_terms = [term for term in self.terms.values()
   203         self.top_terms = [term for term in self.terms.values()
   203                           if (not term.generic) and (not term.usage)]
   204                           if (not term.generic) and (not term.usage)]
       
   205 
       
   206     def get_top_terms(self, extract=None):
       
   207         if extract is None:
       
   208             return self.top_terms
       
   209         return [term for term in self.top_terms if extract in term.extracts]
   204 
   210 
   205     def clear(self):
   211     def clear(self):
   206         self.terms.clear()
   212         self.terms.clear()
   207         self.catalog.reset()
   213         self.catalog.reset()
   208         self.top_terms = []
   214         self.top_terms = []