From b1ed5a3e79dff556db6671ffcd670c2480e7ae7f Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Thu, 5 Nov 2020 05:06:19 +0000 Subject: [PATCH] Fix circular import of config_validation and template (#41802) --- homeassistant/helpers/location.py | 4 +++- homeassistant/helpers/template.py | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/homeassistant/helpers/location.py b/homeassistant/helpers/location.py index 856c5c4d8e3..bca2996dfa2 100644 --- a/homeassistant/helpers/location.py +++ b/homeassistant/helpers/location.py @@ -7,7 +7,6 @@ import voluptuous as vol from homeassistant.const import ATTR_LATITUDE, ATTR_LONGITUDE from homeassistant.core import State -import homeassistant.helpers.config_validation as cv from homeassistant.helpers.typing import HomeAssistantType from homeassistant.util import location as loc_util @@ -91,6 +90,9 @@ def find_coordinates( # Check if state is valid coordinate set try: + # Import here, not at top-level to avoid circular import + import homeassistant.helpers.config_validation as cv # pylint: disable=import-outside-toplevel + cv.gps(entity_state.state.split(",")) except vol.Invalid: _LOGGER.error( diff --git a/homeassistant/helpers/template.py b/homeassistant/helpers/template.py index eae98b44044..c6efa717fa7 100644 --- a/homeassistant/helpers/template.py +++ b/homeassistant/helpers/template.py @@ -31,7 +31,7 @@ from homeassistant.const import ( ) from homeassistant.core import State, callback, split_entity_id, valid_entity_id from homeassistant.exceptions import TemplateError -from homeassistant.helpers import config_validation as cv, location as loc_helper +from homeassistant.helpers import location as loc_helper from homeassistant.helpers.typing import HomeAssistantType, TemplateVarsType from homeassistant.loader import bind_hass from homeassistant.util import convert, dt as dt_util, location as loc_util @@ -791,6 +791,11 @@ def result_as_boolean(template_result: Optional[str]) -> bool: """ try: + # Import here, not at top-level to avoid circular import + from homeassistant.helpers import ( # pylint: disable=import-outside-toplevel + config_validation as cv, + ) + return cv.boolean(template_result) except vol.Invalid: return False