reorganise process_place function

Move address processing into its own function as it is
rather extensive.
This commit is contained in:
Sarah Hoffmann
2021-07-12 11:53:25 +02:00
parent fff0012249
commit 47adb2a3fc
2 changed files with 51 additions and 48 deletions

View File

@@ -411,8 +411,13 @@ class LegacyICUNameAnalyzer:
self.add_country_names(country_feature.lower(), names) self.add_country_names(country_feature.lower(), names)
address = place.get('address') address = place.get('address')
if address: if address:
self._process_place_address(token_info, address)
return token_info.data
def _process_place_address(self, token_info, address):
hnrs = [] hnrs = []
addr_terms = [] addr_terms = []
for key, value in address.items(): for key, value in address.items():
@@ -435,8 +440,6 @@ class LegacyICUNameAnalyzer:
if addr_terms: if addr_terms:
token_info.add_address_terms(addr_terms) token_info.add_address_terms(addr_terms)
return token_info.data
def _compute_name_tokens(self, names): def _compute_name_tokens(self, names):
""" Computes the full name and partial name tokens for the given """ Computes the full name and partial name tokens for the given

View File

@@ -424,21 +424,29 @@ class LegacyNameAnalyzer:
self.add_country_names(country_feature.lower(), names) self.add_country_names(country_feature.lower(), names)
address = place.get('address') address = place.get('address')
if address: if address:
self._process_place_address(token_info, address)
return token_info.data
def _process_place_address(self, token_info, address):
hnrs = [] hnrs = []
addr_terms = [] addr_terms = []
for key, value in address.items(): for key, value in address.items():
if key == 'postcode': if key == 'postcode':
self._add_postcode(value) # Make sure the normalized postcode is present in the word table.
if re.search(r'[:,;]', value) is None:
self._cache.add_postcode(self.conn,
self.normalize_postcode(value))
elif key in ('housenumber', 'streetnumber', 'conscriptionnumber'): elif key in ('housenumber', 'streetnumber', 'conscriptionnumber'):
hnrs.append(value) hnrs.append(value)
elif key == 'street': elif key == 'street':
token_info.add_street(self.conn, value) token_info.add_street(self.conn, value)
elif key == 'place': elif key == 'place':
token_info.add_place(self.conn, value) token_info.add_place(self.conn, value)
elif not key.startswith('_') and \ elif not key.startswith('_') and key not in ('country', 'full'):
key not in ('country', 'full'):
addr_terms.append((key, value)) addr_terms.append((key, value))
if hnrs: if hnrs:
@@ -447,14 +455,6 @@ class LegacyNameAnalyzer:
if addr_terms: if addr_terms:
token_info.add_address_terms(self.conn, addr_terms) token_info.add_address_terms(self.conn, addr_terms)
return token_info.data
def _add_postcode(self, postcode):
""" Make sure the normalized postcode is present in the word table.
"""
if re.search(r'[:,;]', postcode) is None:
self._cache.add_postcode(self.conn, self.normalize_postcode(postcode))
class _TokenInfo: class _TokenInfo: