X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/8adab2c6ca7c2f722a3a59fd49989a32fb164ea8..2ca83efc36a96cfa070be61c7422d255044130f3:/nominatim/data/postcode_format.py?ds=sidebyside diff --git a/nominatim/data/postcode_format.py b/nominatim/data/postcode_format.py index 99065965..dad35b7a 100644 --- a/nominatim/data/postcode_format.py +++ b/nominatim/data/postcode_format.py @@ -79,7 +79,7 @@ class PostcodeFormatter: self.default_matcher = CountryPostcodeMatcher('', {'pattern': pattern}) - def get_matcher(self, country_code: str) -> Optional[CountryPostcodeMatcher]: + def get_matcher(self, country_code: Optional[str]) -> Optional[CountryPostcodeMatcher]: """ 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 @@ -88,10 +88,12 @@ class PostcodeFormatter: if country_code in self.country_without_postcode: return None + assert country_code is not None + return self.country_matcher.get(country_code, self.default_matcher) - def match(self, country_code: str, postcode: str) -> Optional[Match[str]]: + def match(self, country_code: Optional[str], postcode: str) -> Optional[Match[str]]: """ Match the given postcode against the postcode pattern for this matcher. Returns a `re.Match` object if the country has a pattern and the match was successful or None if the match failed. @@ -99,6 +101,8 @@ class PostcodeFormatter: if country_code in self.country_without_postcode: return None + assert country_code is not None + return self.country_matcher.get(country_code, self.default_matcher).match(postcode)