[openaddresses] adding numeric_postcodes_only and add_osm_neighborhoods options

This commit is contained in:
Al
2016-08-23 02:11:21 -04:00
parent ed0b49884e
commit b7c600e496

View File

@@ -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)