39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
# Copyright 2023 The ChromiumOS Authors
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
"""
|
|
Run first before executing any python developer tool to ensure the environment is set up correctly.
|
|
"""
|
|
|
|
import sys
|
|
from typing import List
|
|
|
|
|
|
def ensure_packages_exist(*packages: str):
|
|
"""
|
|
Exits if one of the listed packages does not exist.
|
|
|
|
TODO(b/270708102): Automate venv installation of the packages
|
|
"""
|
|
missing_packages: List[str] = []
|
|
|
|
for package in packages:
|
|
try:
|
|
__import__(package)
|
|
except ImportError:
|
|
missing_packages.append(package)
|
|
|
|
if missing_packages:
|
|
debian_packages = [f"python3-{p}" for p in missing_packages]
|
|
package_list = " ".join(debian_packages)
|
|
print("Missing python dependencies. Please re-run ./tools/install-deps")
|
|
print(f"Or `sudo apt install {package_list}`")
|
|
sys.exit(1)
|
|
|
|
|
|
# Note: These packages need to be provided as CIPD packages for vpython in Luci CI.
|
|
# See tools/.vpython3 for how to add them.
|
|
ensure_packages_exist("argh", "rich")
|