mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 16:57:53 +00:00
Check if a script requirement is available before install (#20517)
* Check if a script requirement is available before install * PackageLoadable * hound * req
This commit is contained in:
parent
f3c9327ccf
commit
90d3f517d8
@ -9,7 +9,8 @@ from typing import List
|
||||
|
||||
from homeassistant.bootstrap import async_mount_local_lib_path
|
||||
from homeassistant.config import get_default_config_dir
|
||||
from homeassistant import requirements
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.requirements import pip_kwargs, PackageLoadable
|
||||
from homeassistant.util.package import install_package, is_virtual_env
|
||||
|
||||
|
||||
@ -39,16 +40,25 @@ def run(args: List) -> int:
|
||||
|
||||
config_dir = extract_config_dir()
|
||||
|
||||
if not is_virtual_env():
|
||||
asyncio.get_event_loop().run_until_complete(
|
||||
async_mount_local_lib_path(config_dir))
|
||||
loop = asyncio.get_event_loop()
|
||||
|
||||
pip_kwargs = requirements.pip_kwargs(config_dir)
|
||||
if not is_virtual_env():
|
||||
loop.run_until_complete(async_mount_local_lib_path(config_dir))
|
||||
|
||||
_pip_kwargs = pip_kwargs(config_dir)
|
||||
|
||||
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
|
||||
|
||||
hass = HomeAssistant(loop)
|
||||
pkgload = PackageLoadable(hass)
|
||||
for req in getattr(script, 'REQUIREMENTS', []):
|
||||
returncode = install_package(req, **pip_kwargs)
|
||||
try:
|
||||
loop.run_until_complete(pkgload.loadable(req))
|
||||
continue
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
returncode = install_package(req, **_pip_kwargs)
|
||||
|
||||
if not returncode:
|
||||
print('Aborting script, could not install dependency', req)
|
||||
|
@ -5,7 +5,6 @@ import logging
|
||||
import os
|
||||
from collections import OrderedDict, namedtuple
|
||||
from glob import glob
|
||||
from platform import system
|
||||
from typing import Dict, List, Sequence
|
||||
from unittest.mock import patch
|
||||
|
||||
@ -22,8 +21,6 @@ from homeassistant.util import yaml
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
|
||||
REQUIREMENTS = ('colorlog==4.0.2',)
|
||||
if system() == 'Windows': # Ensure colorama installed for colorlog on Windows
|
||||
REQUIREMENTS += ('colorama<=1',)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
# pylint: disable=protected-access
|
||||
|
Loading…
x
Reference in New Issue
Block a user