Conditions | 6 |
Total Lines | 22 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | # -*- coding: utf-8 -*- |
||
26 | def geocode(self, address): |
||
27 | if not isinstance(address, basestring) \ |
||
28 | and not isinstance(address, dict): |
||
29 | err_msg = u"address should either be of type: %s, or of type %s." \ |
||
30 | % (basestring, dict) |
||
31 | raise TypeError(err_msg) |
||
32 | |||
33 | try: |
||
34 | geolocation = self._geocoder.geocode(address) |
||
35 | |||
36 | if not geolocation: |
||
37 | err_msg = u"Couldn't resolve the following address: '%s'" \ |
||
38 | % address |
||
39 | raise GeolocationFailure(err_msg) |
||
40 | except (exc.GeocoderQuotaExceeded, |
||
41 | exc.GeocoderUnavailable, |
||
42 | exc.GeocoderTimedOut) as e: |
||
43 | raise TemporaryError(u'Geolocator error: %s' % e) |
||
44 | except exc.GeocoderServiceError as e: |
||
45 | raise GeolocationError(u'Geolocator error: %s' % e) |
||
46 | |||
47 | return geolocation |
||
48 |