ray/ci/travis/check_minimal_install.py
Balaji Veeramani 7f1bacc7dc
[CI] Format Python code with Black (#21975)
See #21316 and #21311 for the motivation behind these changes.
2022-01-29 18:41:57 -08:00

48 lines
1.4 KiB
Python

"""
This script ensures that some dependencies are _not_ installed in the
current python environment.
This is to ensure that tests with minimal dependencies are not tainted
by too many installed packages.
"""
from typing import List
# These are taken from `setup.py` for ray[default]
DEFAULT_BLACKLIST = [
"aiohttp",
"aiohttp_cors",
"colorful",
"py-spy",
# "requests",
"gpustat",
"opencensus",
"prometheus_client",
"smart_open",
]
def assert_packages_not_installed(blacklist: List[str]):
try:
from pip._internal.operations import freeze
except ImportError: # pip < 10.0
from pip.operations import freeze
installed_packages = [p.split("==")[0].split(" @ ")[0] for p in freeze.freeze()]
assert not any(p in installed_packages for p in blacklist), (
f"Found blacklisted packages in installed python packages: "
f"{[p for p in blacklist if p in installed_packages]}. "
f"Minimal dependency tests could be tainted by this. "
f"Check the install logs and primary dependencies if any of these "
f"packages were installed as part of another install step."
)
print(
f"Confirmed that blacklisted packages are not installed in "
f"current Python environment: {blacklist}"
)
if __name__ == "__main__":
assert_packages_not_installed(DEFAULT_BLACKLIST)