mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-09-09 21:19:26 +00:00
Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cea1a1a15f | ||
![]() |
c2700b14dc | ||
![]() |
07d27170db | ||
![]() |
8eb8c07df6 | ||
![]() |
7bee6f884c | ||
![]() |
78dd20e314 | ||
![]() |
2a011b6448 | ||
![]() |
5c90370ec8 | ||
![]() |
120465b88d | ||
![]() |
c77292439a | ||
![]() |
0a0209f81a |
@@ -2,6 +2,7 @@
|
||||
import logging
|
||||
import re
|
||||
import secrets
|
||||
from typing import Any, Dict
|
||||
import uuid
|
||||
|
||||
import voluptuous as vol
|
||||
@@ -85,6 +86,7 @@ from ..const import (
|
||||
STATE_STARTED,
|
||||
STATE_STOPPED,
|
||||
)
|
||||
from ..coresys import CoreSys
|
||||
from ..discovery.validate import valid_discovery_service
|
||||
from ..validate import (
|
||||
ALSA_DEVICE,
|
||||
@@ -310,7 +312,7 @@ SCHEMA_ADDON_SNAPSHOT = vol.Schema(
|
||||
)
|
||||
|
||||
|
||||
def validate_options(coresys, raw_schema):
|
||||
def validate_options(coresys: CoreSys, raw_schema: Dict[str, Any]):
|
||||
"""Validate schema."""
|
||||
|
||||
def validate(struct):
|
||||
@@ -346,7 +348,7 @@ def validate_options(coresys, raw_schema):
|
||||
|
||||
# pylint: disable=no-value-for-parameter
|
||||
# pylint: disable=inconsistent-return-statements
|
||||
def _single_validate(coresys, typ, value, key):
|
||||
def _single_validate(coresys: CoreSys, typ: str, value: Any, key: str):
|
||||
"""Validate a single element."""
|
||||
# if required argument
|
||||
if value is None:
|
||||
@@ -385,7 +387,7 @@ def _single_validate(coresys, typ, value, key):
|
||||
return NETWORK_PORT(value)
|
||||
elif typ.startswith(V_MATCH):
|
||||
return vol.Match(match.group("match"))(str(value))
|
||||
elif typ.strartswith(V_LIST):
|
||||
elif typ.startswith(V_LIST):
|
||||
return vol.In(match.group("list").split("|"))(str(value))
|
||||
|
||||
raise vol.Invalid(f"Fatal error for {key} type {typ}")
|
||||
|
@@ -2,7 +2,7 @@
|
||||
from pathlib import Path
|
||||
from ipaddress import ip_network
|
||||
|
||||
HASSIO_VERSION = "187"
|
||||
HASSIO_VERSION = "189"
|
||||
|
||||
|
||||
URL_HASSIO_ADDONS = "https://github.com/home-assistant/hassio-addons"
|
||||
|
@@ -5,12 +5,15 @@ from pathlib import Path
|
||||
from typing import Dict
|
||||
|
||||
from ruamel.yaml import YAML, YAMLError
|
||||
import voluptuous as vol
|
||||
|
||||
from .coresys import CoreSys, CoreSysAttributes
|
||||
from .utils import AsyncThrottle
|
||||
|
||||
_LOGGER: logging.Logger = logging.getLogger(__name__)
|
||||
|
||||
SECRETS_SCHEMA = vol.Schema({str: vol.Any(str, int, None, float)})
|
||||
|
||||
|
||||
class SecretsManager(CoreSysAttributes):
|
||||
"""Manage Home Assistant secrets."""
|
||||
@@ -50,8 +53,12 @@ class SecretsManager(CoreSysAttributes):
|
||||
# Read secrets
|
||||
try:
|
||||
yaml = YAML()
|
||||
self.secrets = await self.sys_run_in_executor(yaml.load, self.path_secrets)
|
||||
data = await self.sys_run_in_executor(yaml.load, self.path_secrets) or {}
|
||||
|
||||
self.secrets = SECRETS_SCHEMA(data)
|
||||
except YAMLError as err:
|
||||
_LOGGER.error("Can't process Home Assistant secrets: %s", err)
|
||||
except vol.Invalid:
|
||||
_LOGGER.warning("Home Assistant secrets have a invalid format")
|
||||
else:
|
||||
_LOGGER.debug("Reload Home Assistant secrets: %s", len(self.secrets))
|
||||
|
@@ -1,4 +1,4 @@
|
||||
aiohttp==3.5.4
|
||||
aiohttp==3.6.1
|
||||
async_timeout==3.0.1
|
||||
attrs==19.1.0
|
||||
cchardet==2.1.4
|
||||
@@ -7,10 +7,10 @@ cpe==1.2.1
|
||||
cryptography==2.7
|
||||
docker==4.0.2
|
||||
gitpython==3.0.2
|
||||
packaging==19.1
|
||||
packaging==19.2
|
||||
pytz==2019.2
|
||||
pyudev==0.21.0
|
||||
ruamel.yaml==0.15.100
|
||||
uvloop==0.12.2
|
||||
uvloop==0.13.0
|
||||
voluptuous==0.11.7
|
||||
ptvsd==4.3.2
|
||||
|
@@ -1,5 +1,5 @@
|
||||
flake8==3.7.8
|
||||
pylint==2.3.1
|
||||
pytest==5.1.2
|
||||
pytest==5.1.3
|
||||
pytest-timeout==1.3.3
|
||||
pytest-aiohttp==0.3.0
|
||||
|
2
setup.py
2
setup.py
@@ -19,7 +19,7 @@ setup(
|
||||
"Intended Audience :: Developers",
|
||||
"License :: OSI Approved :: Apache Software License",
|
||||
"Operating System :: OS Independent",
|
||||
"Topic :: Home Automation"
|
||||
"Topic :: Home Automation",
|
||||
"Topic :: Software Development :: Libraries :: Python Modules",
|
||||
"Topic :: Scientific/Engineering :: Atmospheric Science",
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
|
Reference in New Issue
Block a user