handle unknown analyzer

When changing something in the default configuration of the sanatizers
that refers to an analyzer that is not yet loaded, there shouldn't be
any errors.
This commit is contained in:
Sarah Hoffmann 2022-02-15 14:38:03 +01:00
parent 837d44391c
commit 0bb59b2e22
2 changed files with 8 additions and 1 deletions

View File

@ -27,3 +27,10 @@ class ICUTokenAnalysis:
self.analysis = {name: arules.create(self.normalizer, self.to_ascii, arules.config)
for name, arules in analysis_rules.items()}
def get_analyzer(self, name):
""" Return the given named analyzer. If no analyzer with that
name exists, return the default analyzer.
"""
return self.analysis.get(name) or self.analysis[None]

View File

@ -561,7 +561,7 @@ class LegacyICUNameAnalyzer(AbstractAnalyzer):
for name in names:
analyzer_id = name.get_attr('analyzer')
analyzer = self.token_analysis.analysis[analyzer_id]
analyzer = self.token_analysis.get_analyzer(analyzer_id)
norm_name = analyzer.normalize(name.name)
if analyzer_id is None:
token_id = norm_name