|
@@ -1,5 +1,6 @@
|
|
|
import sys
|
|
|
import platform
|
|
|
+import subprocess
|
|
|
|
|
|
from setuptools import find_packages, setup
|
|
|
|
|
@@ -11,7 +12,6 @@ install_requires = [
|
|
|
"grpcio==1.68.0",
|
|
|
"grpcio-tools==1.68.0",
|
|
|
"Jinja2==3.1.4",
|
|
|
- "netifaces==0.11.0",
|
|
|
"numpy==2.0.0",
|
|
|
"nuitka==2.5.1",
|
|
|
"nvidia-ml-py==12.560.30",
|
|
@@ -23,6 +23,7 @@ install_requires = [
|
|
|
"pydantic==2.9.2",
|
|
|
"requests==2.32.3",
|
|
|
"rich==13.7.1",
|
|
|
+ "scapy==2.6.1",
|
|
|
"tenacity==9.0.0",
|
|
|
"tqdm==4.66.4",
|
|
|
"transformers==4.46.3",
|
|
@@ -31,19 +32,47 @@ install_requires = [
|
|
|
]
|
|
|
|
|
|
extras_require = {
|
|
|
- "formatting": [
|
|
|
- "yapf==0.40.2",
|
|
|
- ],
|
|
|
- "apple_silicon": [
|
|
|
+ "formatting": ["yapf==0.40.2",], "apple_silicon": [
|
|
|
"mlx==0.20.0",
|
|
|
"mlx-lm==0.19.3",
|
|
|
- ],
|
|
|
+ ], "windows": ["pywin32==308",], "nvidia-gpu": ["nvidia-ml-py==12.560.30",], "amd-gpu": ["pyrsmi==0.2.0"]
|
|
|
}
|
|
|
|
|
|
# Check if running on macOS with Apple Silicon
|
|
|
if sys.platform.startswith("darwin") and platform.machine() == "arm64":
|
|
|
install_requires.extend(extras_require["apple_silicon"])
|
|
|
|
|
|
+# Check if running Windows
|
|
|
+if sys.platform.startswith("win32"):
|
|
|
+ install_requires.extend(extras_require["windows"])
|
|
|
+
|
|
|
+
|
|
|
+def _add_gpu_requires():
|
|
|
+ global install_requires
|
|
|
+ # Add Nvidia-GPU
|
|
|
+ try:
|
|
|
+ out = subprocess.run(['nvidia-smi', '--query-gpu=name', '--format=csv,noheader'], shell=True, text=True, capture_output=True, check=False)
|
|
|
+ if out.returncode == 0:
|
|
|
+ install_requires.extend(extras_require["nvidia-gpu"])
|
|
|
+ except subprocess.CalledProcessError:
|
|
|
+ pass
|
|
|
+
|
|
|
+ # Add AMD-GPU
|
|
|
+ # This will mostly work only on Linux, amd/rocm-smi is not yet supported on Windows
|
|
|
+ try:
|
|
|
+ out = subprocess.run(['amd-smi', 'list', '--csv'], shell=True, text=True, capture_output=True, check=False)
|
|
|
+ if out.returncode == 0:
|
|
|
+ install_requires.extend(extras_require["amd-gpu"])
|
|
|
+ except:
|
|
|
+ out = subprocess.run(['rocm-smi', 'list', '--csv'], shell=True, text=True, capture_output=True, check=False)
|
|
|
+ if out.returncode == 0:
|
|
|
+ install_requires.extend(extras_require["amd-gpu"])
|
|
|
+ finally:
|
|
|
+ pass
|
|
|
+
|
|
|
+
|
|
|
+_add_gpu_requires()
|
|
|
+
|
|
|
setup(
|
|
|
name="exo",
|
|
|
version="0.0.1",
|