Move imports to top for google_assistant (#29561)

* Move imports to top for google_assistant

* Fix pylint error caused by isorting the imports with noqa: F401

* Move back an import because of circular dependency, add annotations
This commit is contained in:
springstan 2019-12-08 09:45:13 +01:00 committed by Paulus Schoutsen
parent cc9589cff2
commit b759d50900
7 changed files with 71 additions and 69 deletions

View file

@ -1,34 +1,33 @@
"""Support for Actions on Google Assistant Smart Home Control.""" """Support for Actions on Google Assistant Smart Home Control."""
import logging import logging
from typing import Dict, Any from typing import Any, Dict
import voluptuous as vol import voluptuous as vol
# Typing imports # Typing imports
from homeassistant.core import HomeAssistant, ServiceCall
from homeassistant.const import CONF_NAME from homeassistant.const import CONF_NAME
from homeassistant.core import HomeAssistant, ServiceCall
from homeassistant.helpers import config_validation as cv from homeassistant.helpers import config_validation as cv
from .const import ( from .const import (
DOMAIN, CONF_ALIASES,
CONF_PROJECT_ID, CONF_ALLOW_UNLOCK,
CONF_EXPOSE_BY_DEFAULT,
DEFAULT_EXPOSE_BY_DEFAULT,
CONF_EXPOSED_DOMAINS,
DEFAULT_EXPOSED_DOMAINS,
CONF_API_KEY, CONF_API_KEY,
SERVICE_REQUEST_SYNC, CONF_CLIENT_EMAIL,
CONF_ENTITY_CONFIG, CONF_ENTITY_CONFIG,
CONF_EXPOSE, CONF_EXPOSE,
CONF_ALIASES, CONF_EXPOSE_BY_DEFAULT,
CONF_EXPOSED_DOMAINS,
CONF_PRIVATE_KEY,
CONF_PROJECT_ID,
CONF_REPORT_STATE, CONF_REPORT_STATE,
CONF_ROOM_HINT, CONF_ROOM_HINT,
CONF_ALLOW_UNLOCK,
CONF_SECURE_DEVICES_PIN, CONF_SECURE_DEVICES_PIN,
CONF_SERVICE_ACCOUNT, CONF_SERVICE_ACCOUNT,
CONF_CLIENT_EMAIL, DEFAULT_EXPOSE_BY_DEFAULT,
CONF_PRIVATE_KEY, DEFAULT_EXPOSED_DOMAINS,
DOMAIN,
SERVICE_REQUEST_SYNC,
) )
from .const import EVENT_COMMAND_RECEIVED, EVENT_SYNC_RECEIVED # noqa: F401 from .const import EVENT_COMMAND_RECEIVED, EVENT_SYNC_RECEIVED # noqa: F401
from .const import EVENT_QUERY_RECEIVED # noqa: F401 from .const import EVENT_QUERY_RECEIVED # noqa: F401

View file

@ -1,5 +1,6 @@
"""Constants for Google Assistant.""" """Constants for Google Assistant."""
from homeassistant.components import ( from homeassistant.components import (
alarm_control_panel,
binary_sensor, binary_sensor,
camera, camera,
climate, climate,
@ -15,7 +16,6 @@ from homeassistant.components import (
sensor, sensor,
switch, switch,
vacuum, vacuum,
alarm_control_panel,
) )
DOMAIN = "google_assistant" DOMAIN = "google_assistant"

View file

@ -7,26 +7,26 @@ from typing import List, Optional
from aiohttp.web import json_response from aiohttp.web import json_response
from homeassistant.core import Context, callback, HomeAssistant, State
from homeassistant.helpers.event import async_call_later
from homeassistant.components import webhook from homeassistant.components import webhook
from homeassistant.helpers.storage import Store
from homeassistant.const import ( from homeassistant.const import (
ATTR_DEVICE_CLASS,
ATTR_SUPPORTED_FEATURES,
CLOUD_NEVER_EXPOSED_ENTITIES,
CONF_NAME, CONF_NAME,
STATE_UNAVAILABLE, STATE_UNAVAILABLE,
ATTR_SUPPORTED_FEATURES,
ATTR_DEVICE_CLASS,
CLOUD_NEVER_EXPOSED_ENTITIES,
) )
from homeassistant.core import Context, HomeAssistant, State, callback
from homeassistant.helpers.event import async_call_later
from homeassistant.helpers.storage import Store
from . import trait from . import trait
from .const import ( from .const import (
CONF_ALIASES,
CONF_ROOM_HINT,
DEVICE_CLASS_TO_GOOGLE_TYPES,
DOMAIN, DOMAIN,
DOMAIN_TO_GOOGLE_TYPES, DOMAIN_TO_GOOGLE_TYPES,
CONF_ALIASES,
ERR_FUNCTION_NOT_SUPPORTED, ERR_FUNCTION_NOT_SUPPORTED,
DEVICE_CLASS_TO_GOOGLE_TYPES,
CONF_ROOM_HINT,
STORE_AGENT_USER_IDS, STORE_AGENT_USER_IDS,
) )
from .error import SmartHomeError from .error import SmartHomeError
@ -119,6 +119,7 @@ class AbstractConfig:
def async_enable_report_state(self): def async_enable_report_state(self):
"""Enable proactive mode.""" """Enable proactive mode."""
# Circular dep # Circular dep
# pylint: disable=import-outside-toplevel
from .report_state import async_enable_report_state from .report_state import async_enable_report_state
if self._unsub_report_state is None: if self._unsub_report_state is None:
@ -213,6 +214,8 @@ class AbstractConfig:
async def _handle_local_webhook(self, hass, webhook_id, request): async def _handle_local_webhook(self, hass, webhook_id, request):
"""Handle an incoming local SDK message.""" """Handle an incoming local SDK message."""
# Circular dep
# pylint: disable=import-outside-toplevel
from . import smart_home from . import smart_home
payload = await request.json() payload = await request.json()

View file

@ -3,10 +3,10 @@ import asyncio
from datetime import timedelta from datetime import timedelta
import logging import logging
from uuid import uuid4 from uuid import uuid4
import jwt
from aiohttp import ClientResponseError, ClientError from aiohttp import ClientError, ClientResponseError
from aiohttp.web import Request, Response from aiohttp.web import Request, Response
import jwt
# Typing imports # Typing imports
from homeassistant.components.http import HomeAssistantView from homeassistant.components.http import HomeAssistantView
@ -15,24 +15,24 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util
from .const import ( from .const import (
GOOGLE_ASSISTANT_API_ENDPOINT,
CONF_API_KEY, CONF_API_KEY,
CONF_EXPOSE_BY_DEFAULT, CONF_CLIENT_EMAIL,
CONF_EXPOSED_DOMAINS,
CONF_ENTITY_CONFIG, CONF_ENTITY_CONFIG,
CONF_EXPOSE, CONF_EXPOSE,
CONF_EXPOSE_BY_DEFAULT,
CONF_EXPOSED_DOMAINS,
CONF_PRIVATE_KEY,
CONF_REPORT_STATE, CONF_REPORT_STATE,
CONF_SECURE_DEVICES_PIN, CONF_SECURE_DEVICES_PIN,
CONF_SERVICE_ACCOUNT, CONF_SERVICE_ACCOUNT,
CONF_CLIENT_EMAIL, GOOGLE_ASSISTANT_API_ENDPOINT,
CONF_PRIVATE_KEY,
HOMEGRAPH_TOKEN_URL,
HOMEGRAPH_SCOPE, HOMEGRAPH_SCOPE,
HOMEGRAPH_TOKEN_URL,
REPORT_STATE_BASE_URL, REPORT_STATE_BASE_URL,
REQUEST_SYNC_BASE_URL, REQUEST_SYNC_BASE_URL,
) )
from .smart_home import async_handle_message
from .helpers import AbstractConfig from .helpers import AbstractConfig
from .smart_home import async_handle_message
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View file

@ -1,12 +1,12 @@
"""Google Report State implementation.""" """Google Report State implementation."""
import logging import logging
from homeassistant.core import HomeAssistant, callback
from homeassistant.const import MATCH_ALL from homeassistant.const import MATCH_ALL
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.event import async_call_later from homeassistant.helpers.event import async_call_later
from .helpers import AbstractConfig, GoogleEntity, async_get_entities
from .error import SmartHomeError from .error import SmartHomeError
from .helpers import AbstractConfig, GoogleEntity, async_get_entities
# Time to wait until the homegraph updates # Time to wait until the homegraph updates
# https://github.com/actions-on-google/smart-home-nodejs/issues/196#issuecomment-439156639 # https://github.com/actions-on-google/smart-home-nodejs/issues/196#issuecomment-439156639

View file

@ -3,20 +3,19 @@ import asyncio
from itertools import product from itertools import product
import logging import logging
from homeassistant.const import ATTR_ENTITY_ID, __version__
from homeassistant.util.decorator import Registry from homeassistant.util.decorator import Registry
from homeassistant.const import ATTR_ENTITY_ID, __version__
from .const import ( from .const import (
ERR_PROTOCOL_ERROR,
ERR_DEVICE_OFFLINE, ERR_DEVICE_OFFLINE,
ERR_PROTOCOL_ERROR,
ERR_UNKNOWN_ERROR, ERR_UNKNOWN_ERROR,
EVENT_COMMAND_RECEIVED, EVENT_COMMAND_RECEIVED,
EVENT_SYNC_RECEIVED,
EVENT_QUERY_RECEIVED, EVENT_QUERY_RECEIVED,
EVENT_SYNC_RECEIVED,
) )
from .helpers import RequestData, GoogleEntity, async_get_entities
from .error import SmartHomeError from .error import SmartHomeError
from .helpers import GoogleEntity, RequestData, async_get_entities
HANDLERS = Registry() HANDLERS = Registry()
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View file

@ -2,66 +2,67 @@
import logging import logging
from homeassistant.components import ( from homeassistant.components import (
alarm_control_panel,
binary_sensor, binary_sensor,
camera, camera,
cover, cover,
group,
fan, fan,
group,
input_boolean, input_boolean,
media_player,
light, light,
lock, lock,
media_player,
scene, scene,
script, script,
sensor, sensor,
switch, switch,
vacuum, vacuum,
alarm_control_panel,
) )
from homeassistant.components.climate import const as climate from homeassistant.components.climate import const as climate
from homeassistant.const import ( from homeassistant.const import (
ATTR_ENTITY_ID, ATTR_ASSUMED_STATE,
ATTR_CODE,
ATTR_DEVICE_CLASS, ATTR_DEVICE_CLASS,
ATTR_ENTITY_ID,
ATTR_SUPPORTED_FEATURES,
ATTR_TEMPERATURE,
SERVICE_ALARM_ARM_AWAY,
SERVICE_ALARM_ARM_CUSTOM_BYPASS,
SERVICE_ALARM_ARM_HOME,
SERVICE_ALARM_ARM_NIGHT,
SERVICE_ALARM_DISARM,
SERVICE_ALARM_TRIGGER,
SERVICE_TURN_OFF, SERVICE_TURN_OFF,
SERVICE_TURN_ON, SERVICE_TURN_ON,
STATE_ALARM_ARMED_AWAY,
STATE_ALARM_ARMED_CUSTOM_BYPASS,
STATE_ALARM_ARMED_HOME,
STATE_ALARM_ARMED_NIGHT,
STATE_ALARM_DISARMED,
STATE_ALARM_PENDING,
STATE_ALARM_TRIGGERED,
STATE_LOCKED, STATE_LOCKED,
STATE_OFF, STATE_OFF,
STATE_ON, STATE_ON,
STATE_UNKNOWN,
TEMP_CELSIUS, TEMP_CELSIUS,
TEMP_FAHRENHEIT, TEMP_FAHRENHEIT,
ATTR_SUPPORTED_FEATURES,
ATTR_TEMPERATURE,
ATTR_ASSUMED_STATE,
SERVICE_ALARM_DISARM,
SERVICE_ALARM_ARM_HOME,
SERVICE_ALARM_ARM_AWAY,
SERVICE_ALARM_ARM_NIGHT,
SERVICE_ALARM_ARM_CUSTOM_BYPASS,
SERVICE_ALARM_TRIGGER,
STATE_ALARM_ARMED_HOME,
STATE_ALARM_ARMED_AWAY,
STATE_ALARM_ARMED_NIGHT,
STATE_ALARM_ARMED_CUSTOM_BYPASS,
STATE_ALARM_DISARMED,
STATE_ALARM_TRIGGERED,
STATE_ALARM_PENDING,
ATTR_CODE,
STATE_UNKNOWN,
) )
from homeassistant.core import DOMAIN as HA_DOMAIN from homeassistant.core import DOMAIN as HA_DOMAIN
from homeassistant.util import color as color_util, temperature as temp_util from homeassistant.util import color as color_util, temperature as temp_util
from .const import ( from .const import (
ERR_VALUE_OUT_OF_RANGE,
ERR_NOT_SUPPORTED,
ERR_FUNCTION_NOT_SUPPORTED,
ERR_CHALLENGE_NOT_SETUP,
CHALLENGE_ACK_NEEDED, CHALLENGE_ACK_NEEDED,
CHALLENGE_PIN_NEEDED,
CHALLENGE_FAILED_PIN_NEEDED, CHALLENGE_FAILED_PIN_NEEDED,
ERR_ALREADY_DISARMED, CHALLENGE_PIN_NEEDED,
ERR_ALREADY_ARMED, ERR_ALREADY_ARMED,
ERR_ALREADY_DISARMED,
ERR_CHALLENGE_NOT_SETUP,
ERR_FUNCTION_NOT_SUPPORTED,
ERR_NOT_SUPPORTED,
ERR_VALUE_OUT_OF_RANGE,
) )
from .error import SmartHomeError, ChallengeNeeded from .error import ChallengeNeeded, SmartHomeError
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)