diff --git a/scripts/geodata/addresses/entrances.py b/scripts/geodata/addresses/entrances.py index 74c3a066..835e40d6 100644 --- a/scripts/geodata/addresses/entrances.py +++ b/scripts/geodata/addresses/entrances.py @@ -8,7 +8,7 @@ from geodata.encoding import safe_decode from geodata.configs.utils import nested_get from geodata.addresses.directions import RelativeDirection from geodata.addresses.floors import Floor -from geodata.addresses.numbering import NumberedComponent, sample_alphabet, latin_alphabet +from geodata.addresses.numbering import NumberedComponent, Digits, sample_alphabet, latin_alphabet from geodata.encoding import safe_decode from geodata.math.sampling import weighted_choice, zipfian_distribution, cdf @@ -28,7 +28,8 @@ class Entrance(NumberedComponent): if num_type == cls.NUMERIC: number = weighted_choice(cls.entrance_range, cls.entrance_range_cdf) - return safe_decode(number) + number = safe_decode(number) + return Digits.rewrite(number, language, num_type_props) else: alphabet = address_config.get_property('alphabet', language, country=country, default=latin_alphabet) letter = sample_alphabet(alphabet, 2.0) diff --git a/scripts/geodata/addresses/floors.py b/scripts/geodata/addresses/floors.py index ddf1c14b..04e4f5a1 100644 --- a/scripts/geodata/addresses/floors.py +++ b/scripts/geodata/addresses/floors.py @@ -3,7 +3,7 @@ import six from geodata.addresses.config import address_config -from geodata.addresses.numbering import NumberedComponent, sample_alphabet, latin_alphabet +from geodata.addresses.numbering import NumberedComponent, Digits, sample_alphabet, latin_alphabet from geodata.encoding import safe_decode from geodata.math.sampling import weighted_choice, zipfian_distribution, cdf from geodata.numbers.spellout import numeric_expressions @@ -57,7 +57,8 @@ class Floor(NumberedComponent): number += numbering_starts_at if num_type == cls.NUMERIC: - return safe_decode(number) + number = safe_decode(number) + return Digits.rewrite(number, language, num_type_props) elif num_type == cls.ROMAN_NUMERAL: roman_numeral = numeric_expressions.roman_numeral(number) if roman_numeral is not None: diff --git a/scripts/geodata/addresses/po_boxes.py b/scripts/geodata/addresses/po_boxes.py index ff24e428..f74db123 100644 --- a/scripts/geodata/addresses/po_boxes.py +++ b/scripts/geodata/addresses/po_boxes.py @@ -2,7 +2,7 @@ import random import six from geodata.addresses.config import address_config -from geodata.addresses.numbering import NumberedComponent, sample_alphabet, latin_alphabet +from geodata.addresses.numbering import NumberedComponent, Digits, sample_alphabet, latin_alphabet from geodata.encoding import safe_decode from geodata.math.sampling import cdf, weighted_choice @@ -49,7 +49,9 @@ class POBox(NumberedComponent): num_digits = weighted_choice(values, probs) - number = cls.random_digits(num_digits) + digits = cls.random_digits(num_digits) + number = Digits.rewrite(digits, language, num_type_props) + if num_type == cls.NUMERIC: return safe_decode(number) diff --git a/scripts/geodata/addresses/staircases.py b/scripts/geodata/addresses/staircases.py index f87557f9..fcd90154 100644 --- a/scripts/geodata/addresses/staircases.py +++ b/scripts/geodata/addresses/staircases.py @@ -8,7 +8,7 @@ from geodata.encoding import safe_decode from geodata.configs.utils import nested_get from geodata.addresses.directions import RelativeDirection from geodata.addresses.floors import Floor -from geodata.addresses.numbering import NumberedComponent, sample_alphabet, latin_alphabet +from geodata.addresses.numbering import NumberedComponent, Digits, sample_alphabet, latin_alphabet from geodata.encoding import safe_decode from geodata.math.sampling import weighted_choice, zipfian_distribution, cdf @@ -28,7 +28,8 @@ class Staircase(NumberedComponent): if num_type == cls.NUMERIC: number = weighted_choice(cls.staircase_range, cls.staircase_range_cdf) - return safe_decode(number) + number = safe_decode(number) + return Digits.rewrite(number, language, num_type_props) else: alphabet = address_config.get_property('alphabet', language, country=country, default=latin_alphabet) letter = sample_alphabet(alphabet, 2.0)