From b7c600e4962f171637929bd8d3bef53da00bc1fd Mon Sep 17 00:00:00 2001 From: Al Date: Tue, 23 Aug 2016 02:11:21 -0400 Subject: [PATCH] [openaddresses] adding numeric_postcodes_only and add_osm_neighborhoods options --- scripts/geodata/openaddresses/formatter.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/scripts/geodata/openaddresses/formatter.py b/scripts/geodata/openaddresses/formatter.py index 8f0f5502..2e410098 100644 --- a/scripts/geodata/openaddresses/formatter.py +++ b/scripts/geodata/openaddresses/formatter.py @@ -104,8 +104,9 @@ class OpenAddressesFormatter(object): separate_unit_prob = float(self.get_property('separate_unit_probability', *configs) or 0.0) add_osm_boundaries = bool(self.get_property('add_osm_boundaries', *configs) or False) - strip_alpha_from_postcode = bool(self.get_property('strip_alpha_from_postcode', *configs) or False) + add_osm_neighborhoods = bool(self.get_property('add_osm_neighborhoods', *configs) or False) non_numeric_units = bool(self.get_property('non_numeric_units', *configs) or False) + numeric_postcodes_only = bool(self.get_property('numeric_postcodes_only', *configs) or False) language = self.get_property('language', *configs) @@ -185,12 +186,12 @@ class OpenAddressesFormatter(object): components.pop(AddressFormatter.UNIT) postcode = components.get(AddressFormatter.POSTCODE, None) - if postcode and postcode.strip() is not None and strip_alpha_from_postcode: - postcode = six.u('').join((c for c in safe_decode(postcode) if not c.isalpha())).strip() - if postcode: - components[AddressFormatter.POSTCODE] = postcode - else: + if postcode: + postcode = postcode.strip() + if postcode and not is_numeric(postcode) and numeric_postcodes_only: components.pop(AddressFormatter.POSTCODE) + else: + components[AddressFormatter.POSTCODE] = postcode country_name = self.cldr_country_name(country, language, configs) if country_name: @@ -206,9 +207,13 @@ class OpenAddressesFormatter(object): components[AddressFormatter.STATE] = address_state if add_osm_boundaries: - osm_components = self.osm_reverse_geocoded_components(latitude, longitude) + osm_components = self.components.osm_reverse_geocoded_components(latitude, longitude) self.components.add_admin_boundaries(components, osm_components, country, language) + if add_osm_neighborhoods: + neighborhood_components = self.components.neighborhood_components(latitude, longitude) + self.components.add_neighborhoods(components, neighborhood_components) + formatted = self.formatter.format_address(components, country, language=language, tag_components=tag_components) yield (language, country, formatted)