Spaces:
Runtime error
Runtime error
File size: 1,230 Bytes
69f3483 |
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 49 50 51 52 53 |
import importlib
import importlib.util
import os
import subprocess
import sys
from typing import Dict, Optional
from packaging.version import Version
python = sys.executable
index_url = os.environ.get("INDEX_URL", "")
def version(package: str) -> Optional[Version]:
try:
return Version(importlib.import_module(package).__version__)
except ModuleNotFoundError:
return None
def is_installed(package: str) -> bool:
try:
spec = importlib.util.find_spec(package)
except ModuleNotFoundError:
return False
return spec is not None
def run_python(command: str, env: Dict[str, str] = None) -> str:
run_kwargs = {
"args": f"\"{python}\" {command}",
"shell": True,
"env": os.environ if env is None else env,
"encoding": "utf8",
"errors": "ignore",
}
print(run_kwargs["args"])
result = subprocess.run(**run_kwargs)
if result.returncode != 0:
print(f"Error running command: {command}", file=sys.stderr)
raise RuntimeError(f"Error running command: {command}")
return result.stdout or ""
def run_pip(command: str, env: Dict[str, str] = None) -> str:
return run_python(f"-m pip {command}", env)
|