fixed performance bug for representations
No more creating millions of namedtuple classes. Works about 15x faster
This commit is contained in:
		
							parent
							
								
									3be4118dc0
								
							
						
					
					
						commit
						c0939fbbd4
					
				
							
								
								
									
										18
									
								
								wani.py
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								wani.py
									
									
									
									
									
								
							@ -261,9 +261,7 @@ class WordFormMsdCR(WordFormAnyCR):
 | 
			
		||||
 | 
			
		||||
    def _render(self):
 | 
			
		||||
        msd = self.word_renderer.get_lemma_msd(self.lemma, self.msd)
 | 
			
		||||
        WordLemma = namedtuple('WordLemmaOnly', 'msd most_frequent_text lemma text')
 | 
			
		||||
        backup_word = WordLemma(msd=msd, most_frequent_text=lambda *x: None, lemma=None, text=None)
 | 
			
		||||
        self.words.append(backup_word)
 | 
			
		||||
        self.words.append(WordMsdOnly(msd))
 | 
			
		||||
 | 
			
		||||
        return super()._render()
 | 
			
		||||
 | 
			
		||||
@ -832,12 +830,16 @@ def get_msd(comp):
 | 
			
		||||
        logging.error(d, file=sys.stderr)
 | 
			
		||||
        raise NotImplementedError("MSD?")
 | 
			
		||||
 | 
			
		||||
def lemma_only_word(msd):
 | 
			
		||||
    if msd is None:
 | 
			
		||||
 | 
			
		||||
class WordMsdOnly:
 | 
			
		||||
    def __init__(self, msd):
 | 
			
		||||
        self.msd = msd
 | 
			
		||||
        self.lemma = None
 | 
			
		||||
        self.text = None
 | 
			
		||||
 | 
			
		||||
    def most_frequent_text(self, _):
 | 
			
		||||
        return None
 | 
			
		||||
    else:
 | 
			
		||||
        WordLemma = namedtuple('WordLemmaOnly', 'msd most_frequent_text lemma text')
 | 
			
		||||
        return WordLemma(msd=msd, most_frequent_text=lambda *x: None, lemma=None, text=None)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Word:
 | 
			
		||||
    def __init__(self, xml, do_msd_translate):
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user