ha-core/script/install_integration_require...

55 lines
1.2 KiB
Python

"""Install requirements for a given integration."""
import argparse
from pathlib import Path
import subprocess
import sys
from .gen_requirements_all import gather_recursive_requirements
from .util import valid_integration
def get_arguments() -> argparse.Namespace:
"""Get parsed passed in arguments."""
parser = argparse.ArgumentParser(
description="Install requirements for a given integration"
)
parser.add_argument(
"integration", type=valid_integration, help="Integration to target."
)
arguments = parser.parse_args()
return arguments
def main() -> int | None:
"""Install requirements for a given integration."""
if not Path("requirements_all.txt").is_file():
print("Run from project root")
return 1
args = get_arguments()
requirements = gather_recursive_requirements(args.integration)
cmd = [
sys.executable,
"-m",
"pip",
"install",
"-c",
"homeassistant/package_constraints.txt",
"-U",
*requirements,
]
print(" ".join(cmd))
subprocess.run(
cmd,
check=True,
)
if __name__ == "__main__":
sys.exit(main())