16
16
#
17
17
18
18
"""Performs requests to the Google Maps Address Validation API."""
19
+ from __future__ import annotations
20
+ from typing import TYPE_CHECKING , cast , List , Optional
21
+
22
+ import requests
23
+
19
24
from googlemaps import exceptions
25
+ from googlemaps .types import DictStrAny
26
+
27
+ if TYPE_CHECKING :
28
+ from googlemaps .client import Client
20
29
21
30
22
31
_ADDRESSVALIDATION_BASE_URL = "https://addressvalidation.googleapis.com"
23
32
24
33
25
- def _addressvalidation_extract (response ) :
34
+ def _addressvalidation_extract (response : requests . Response ) -> DictStrAny :
26
35
"""
27
36
Mimics the exception handling logic in ``client._get_body``, but
28
37
for addressvalidation which uses a different response format.
29
38
"""
30
39
body = response .json ()
31
- return body
40
+ return cast ( DictStrAny , body )
32
41
33
42
# if response.status_code in (200, 404):
34
43
# return body
@@ -44,7 +53,13 @@ def _addressvalidation_extract(response):
44
53
# raise exceptions.ApiError(response.status_code, error)
45
54
46
55
47
- def addressvalidation (client , addressLines , regionCode = None , locality = None , enableUspsCass = None ):
56
+ def addressvalidation (
57
+ client : Client ,
58
+ addressLines : List [str ],
59
+ regionCode : Optional [str ] = None ,
60
+ locality : Optional [str ] = None ,
61
+ enableUspsCass : Optional [bool ] = None ,
62
+ ) -> DictStrAny :
48
63
"""
49
64
The Google Maps Address Validation API returns a verification of an address
50
65
See https://developers.google.com/maps/documentation/address-validation/overview
@@ -59,7 +74,7 @@ def addressvalidation(client, addressLines, regionCode=None , locality=None, ena
59
74
:type locality: boolean
60
75
"""
61
76
62
- params = {
77
+ params : DictStrAny = {
63
78
"address" :{
64
79
"addressLines" : addressLines
65
80
}
0 commit comments