1 """Helpers for Google Time Travel integration."""
5 from googlemaps
import Client
6 from googlemaps.distance_matrix
import distance_matrix
7 from googlemaps.exceptions
import ApiError, Timeout, TransportError
12 _LOGGER = logging.getLogger(__name__)
16 hass: HomeAssistant, api_key: str, origin: str, destination: str
18 """Return whether the config entry data is valid."""
22 client = Client(api_key, timeout=10)
23 except ValueError
as value_error:
24 _LOGGER.error(
"Malformed API key")
25 raise InvalidApiKeyException
from value_error
27 distance_matrix(client, resolved_origin, resolved_destination, mode=
"driving")
28 except ApiError
as api_error:
29 if api_error.status ==
"REQUEST_DENIED":
30 _LOGGER.error(
"Request denied: %s", api_error.message)
31 raise InvalidApiKeyException
from api_error
32 _LOGGER.error(
"Unknown error: %s", api_error.message)
33 raise UnknownException
from api_error
34 except TransportError
as transport_error:
35 _LOGGER.error(
"Unknown error: %s", transport_error)
36 raise UnknownException
from transport_error
37 except Timeout
as timeout_error:
38 _LOGGER.error(
"Timeout error")
39 raise TimeoutError
from timeout_error
43 """Invalid API Key Error."""
47 """Unknown API Error."""
None validate_config_entry(HomeAssistant hass, str api_key, str origin, str destination)
str|None find_coordinates(HomeAssistant hass, str name, list|None recursion_history=None)