X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/80ea13437df4c6d57ea503adbdfc9928de8d859c..a6dab5e300de9c5664f714eb2c9290d18f01067f:/nominatim/data/postcode_format.py?ds=inline diff --git a/nominatim/data/postcode_format.py b/nominatim/data/postcode_format.py index 0158111a..366ea505 100644 --- a/nominatim/data/postcode_format.py +++ b/nominatim/data/postcode_format.py @@ -11,7 +11,7 @@ format. import re from nominatim.errors import UsageError -from nominatim.tools import country_info +from nominatim.data import country_info class CountryPostcodeMatcher: """ Matches and formats a postcode according to a format definition @@ -78,6 +78,18 @@ class PostcodeFormatter: self.default_matcher = CountryPostcodeMatcher('', {'pattern': pattern}) + def get_matcher(self, country_code): + """ Return the CountryPostcodeMatcher for the given country. + Returns None if the country doesn't have a postcode and the + default matcher if there is no specific matcher configured for + the country. + """ + if country_code in self.country_without_postcode: + return None + + return self.country_matcher.get(country_code, self.default_matcher) + + def match(self, country_code, postcode): """ Match the given postcode against the postcode pattern for this matcher. Returns a `re.Match` object if the country has a pattern