leave ICU variant properties empty for now

Saving unused properties causes unnecessary duplicates.
This commit is contained in:
Sarah Hoffmann
2021-06-30 21:52:33 +02:00
parent 0894ce9dc3
commit 7b0f6b7905

View File

@@ -4,31 +4,8 @@ Data structures for saving variant expansions for ICU tokenizer.
from collections import namedtuple
import json
from nominatim.errors import UsageError
_ICU_VARIANT_PORPERTY_FIELDS = ['lang']
def _get_strtuple_prop(rules, field):
""" Return the given field of the rules dictionary as a list.
If the field is not defined or empty, returns None. If the field is
a singe string, it is converted into a tuple with a single element.
If the field is a list of strings, return as a string tuple.
Raise a usage error in all other cases.
"""
value = rules.get(field)
if not value:
return None
if isinstance(value, str):
return (value,)
if not isinstance(value, list) or any(not isinstance(x, str) for x in value):
raise UsageError("YAML variant property '{}' should be a list.".format(field))
return tuple(value)
class ICUVariantProperties(namedtuple('_ICUVariantProperties', _ICU_VARIANT_PORPERTY_FIELDS,
defaults=(None, )*len(_ICU_VARIANT_PORPERTY_FIELDS))):
@@ -38,17 +15,18 @@ class ICUVariantProperties(namedtuple('_ICUVariantProperties', _ICU_VARIANT_PORP
Porperty instances are hashable.
"""
@classmethod
def from_rules(cls, rules):
def from_rules(cls, _):
""" Create a new property type from a generic dictionary.
The function only takes into account the properties that are
understood presently and ignores all others.
"""
return cls(lang=_get_strtuple_prop(rules, 'lang'))
return cls(lang=None)
ICUVariant = namedtuple('ICUVariant', ['source', 'replacement', 'properties'])
def pickle_variant_set(variants):
""" Serializes an iterable of variant rules to a string.
"""