forked from ray-project/ray
-
Notifications
You must be signed in to change notification settings - Fork 0
/
check_minimal_install.py
48 lines (38 loc) · 1.38 KB
/
check_minimal_install.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"""
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",
"aioredis",
"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)