[openaddresses] adding random formatting to Colombian house numbers that match the {calle}-{building number} format
This commit is contained in:
@@ -48,6 +48,8 @@ number_space_letter_regex = re.compile('^[\d]+\s+[a-z]$', re.I)
|
|||||||
number_slash_number_regex = re.compile('^(?:[\d]+|[a-z]|[\d]+[a-z]|[a-z][\d]+)[\s]*/[\s]*(?:[\d]+|[a-z]|[\d]+[a-z]|[a-z][\d]+)$', re.I)
|
number_slash_number_regex = re.compile('^(?:[\d]+|[a-z]|[\d]+[a-z]|[a-z][\d]+)[\s]*/[\s]*(?:[\d]+|[a-z]|[\d]+[a-z]|[a-z][\d]+)$', re.I)
|
||||||
number_fraction_regex = re.compile('^(?:[\d]+\s+)?(?:1[\s]*/[\s]*[234]|2[\s]*/[\s]*3)$')
|
number_fraction_regex = re.compile('^(?:[\d]+\s+)?(?:1[\s]*/[\s]*[234]|2[\s]*/[\s]*3)$')
|
||||||
|
|
||||||
|
colombian_standard_house_number_regex = re.compile('^(\d+[\s]*[a-z]?) ([a-z]?[\d]+[\s]*[a-z]?)?', re.I)
|
||||||
|
|
||||||
dutch_house_number_regex = re.compile('([\d]+)( [a-z])?( [\d]+)?', re.I)
|
dutch_house_number_regex = re.compile('([\d]+)( [a-z])?( [\d]+)?', re.I)
|
||||||
|
|
||||||
SPANISH = 'es'
|
SPANISH = 'es'
|
||||||
@@ -198,6 +200,23 @@ class OpenAddressesFormatter(object):
|
|||||||
return house_number
|
return house_number
|
||||||
return cls.chinese_annex_regex.sub(u'\\1号', house_number)
|
return cls.chinese_annex_regex.sub(u'\\1号', house_number)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def format_colombian_house_number(cls, house_number):
|
||||||
|
match = colombian_standard_house_number_regex.match(house_number)
|
||||||
|
if match:
|
||||||
|
separator = random.choice((u'-', u' - ', u' '))
|
||||||
|
|
||||||
|
cross_street, building_number = match.groups()
|
||||||
|
|
||||||
|
if u' ' in cross_street and random.choice((True, False)):
|
||||||
|
cross_street = cross_street.replace(u' ', u'')
|
||||||
|
|
||||||
|
if u' ' in building_number and random.choice((True, False)):
|
||||||
|
building_number = building_number.replace(u' ', u'')
|
||||||
|
|
||||||
|
return separator.join([cross_street, building_number])
|
||||||
|
return house_number
|
||||||
|
|
||||||
def get_property(self, key, *configs):
|
def get_property(self, key, *configs):
|
||||||
for config in configs:
|
for config in configs:
|
||||||
value = config.get(key, None)
|
value = config.get(key, None)
|
||||||
@@ -424,6 +443,9 @@ class OpenAddressesFormatter(object):
|
|||||||
if language == CHINESE:
|
if language == CHINESE:
|
||||||
house_number = self.format_chinese_house_number(house_number)
|
house_number = self.format_chinese_house_number(house_number)
|
||||||
|
|
||||||
|
if country_dir == Countries.COLOMBIA:
|
||||||
|
house_number = self.format_colombian_house_number(house_number)
|
||||||
|
|
||||||
if house_number is not None:
|
if house_number is not None:
|
||||||
components[AddressFormatter.HOUSE_NUMBER] = house_number
|
components[AddressFormatter.HOUSE_NUMBER] = house_number
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user