From 86a8315b9d9ef3c5559a6883a73ed01632fec7c0 Mon Sep 17 00:00:00 2001 From: Al Date: Sun, 18 Dec 2016 01:50:58 -0500 Subject: [PATCH] [openaddresses] adding new config option to OA config for aliasing fields based on a regex --- scripts/geodata/openaddresses/formatter.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/geodata/openaddresses/formatter.py b/scripts/geodata/openaddresses/formatter.py index fc177260..e7aef4ac 100644 --- a/scripts/geodata/openaddresses/formatter.py +++ b/scripts/geodata/openaddresses/formatter.py @@ -246,6 +246,9 @@ class OpenAddressesFormatter(object): ignore_fields_containing = {field: re.compile(six.u('|').join([six.u('(?:{})').format(safe_decode(v)) for v in value]), re.I | re.UNICODE) for field, value in six.iteritems(dict(self.get_property('ignore_fields_containing', *configs) or {}))} + alias_fields_containing = {field: [(re.compile(v['pattern']), re.I | re.UNICODE), v) for v in value] + for field, value in six.iteritems(dict(self.get_property('alias_fields_containing', *configs) or {}))} + language = self.get_property('language', *configs) add_components = self.get_property('add', *configs) @@ -320,6 +323,11 @@ class OpenAddressesFormatter(object): if key in ignore_fields_containing and ignore_fields_containing[key].search(value): continue + for (pattern, alias) in alias_fields_containing.get(key, []): + if pattern.search(value): + if 'component' in alias: + key = alias['component'] + if value: components[key] = value