From 84276b4cd320199326276fcd6f5c2241fd28c041 Mon Sep 17 00:00:00 2001 From: Javier Torres Date: Mon, 24 Dec 2018 13:04:16 +0100 Subject: [PATCH] Do not crash when matchType is empty --- .../cartodb_services/cartodb_services/here/bulk_geocoder.py | 6 +++--- .../cartodb_services/cartodb_services/here/geocoder.py | 4 ++-- server/lib/python/cartodb_services/setup.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/server/lib/python/cartodb_services/cartodb_services/here/bulk_geocoder.py b/server/lib/python/cartodb_services/cartodb_services/here/bulk_geocoder.py index 772787c..0da38fa 100644 --- a/server/lib/python/cartodb_services/cartodb_services/here/bulk_geocoder.py +++ b/server/lib/python/cartodb_services/cartodb_services/here/bulk_geocoder.py @@ -8,7 +8,7 @@ from collections import namedtuple from requests.adapters import HTTPAdapter from cartodb_services import StreetPointBulkGeocoder from cartodb_services.here import HereMapsGeocoder -from cartodb_services.geocoder import geocoder_metadata, geocoder_error_response +from cartodb_services.geocoder import geocoder_metadata, geocoder_error_response, PRECISION_INTERPOLATED from cartodb_services.metrics import Traceable from cartodb_services.tools.exceptions import ServiceException @@ -137,8 +137,8 @@ class HereMapsBulkGeocoder(HereMapsGeocoder, StreetPointBulkGeocoder): reader = csv.DictReader(root_zip.open(name), delimiter='|') for row in reader: if row['SeqNumber'] == '1': # First per requested data - precision = self.PRECISION_BY_MATCH_TYPE[ - row.get('matchType', 'pointAddress')] + precision = self.PRECISION_BY_MATCH_TYPE.get( + row.get('matchType'), PRECISION_INTERPOLATED) match_type = self.MATCH_TYPE_BY_MATCH_LEVEL.get(row['matchLevel'], None) results.append((row['recId'], [row['displayLongitude'], row['displayLatitude']], diff --git a/server/lib/python/cartodb_services/cartodb_services/here/geocoder.py b/server/lib/python/cartodb_services/cartodb_services/here/geocoder.py index cbf2576..ae7a369 100644 --- a/server/lib/python/cartodb_services/cartodb_services/here/geocoder.py +++ b/server/lib/python/cartodb_services/cartodb_services/here/geocoder.py @@ -143,8 +143,8 @@ class HereMapsGeocoder(Traceable): def _extract_metadata_from_result(self, result): # See https://stackoverflow.com/questions/51285622/missing-matchtype-at-here-geocoding-responses - precision = self.PRECISION_BY_MATCH_TYPE[ - result.get('MatchType', 'pointAddress')] + precision = self.PRECISION_BY_MATCH_TYPE.get( + result.get('MatchType'), PRECISION_INTERPOLATED) match_type = self.MATCH_TYPE_BY_MATCH_LEVEL.get(result['MatchLevel'], None) return geocoder_metadata( result['Relevance'], diff --git a/server/lib/python/cartodb_services/setup.py b/server/lib/python/cartodb_services/setup.py index 5263621..8985b8b 100644 --- a/server/lib/python/cartodb_services/setup.py +++ b/server/lib/python/cartodb_services/setup.py @@ -10,7 +10,7 @@ from setuptools import setup, find_packages setup( name='cartodb_services', - version='0.21.0', + version='0.21.1', description='CartoDB Services API Python Library',