test-template-2 / app.py
pablovela5620's picture
Upload app.py with huggingface_hub
7561453 verified
Raw
History Blame Contribute Delete
2.28 kB
import re
import subprocess
from pathlib import Path
PIXI_PATH = Path("/home/user/.pixi/bin/pixi")
PIXI_VERSION = "0.44.0"
def check_and_install_pixi() -> None:
try:
# Check if pixi is installed and get its version
result = subprocess.run(f"{PIXI_PATH} --version", shell=True, capture_output=True, text=True)
if result.returncode == 0:
installed_version = result.stdout.strip()
# Extract version number using regex
version_match = re.search(r"(\d+\.\d+\.\d+)", installed_version)
if version_match and version_match.group(1) == PIXI_VERSION:
print(f"Correct pixi version {PIXI_VERSION} is already installed.")
else:
extracted_version = version_match.group(1) if version_match else "unknown"
print(f"Incorrect pixi version: {extracted_version}. Required: {PIXI_VERSION}")
print(f"Updating pixi to version {PIXI_VERSION}...")
subprocess.check_call(f"{PIXI_PATH} self-update --version {PIXI_VERSION}", shell=True)
subprocess.check_call(f"{PIXI_PATH} --version", shell=True)
else:
raise subprocess.CalledProcessError(returncode=result.returncode, cmd=result.args)
except subprocess.CalledProcessError:
print("pixi not found. Installing pixi...")
# Install pixi using the provided installation script
subprocess.check_call(
f"PIXI_VERSION=v{PIXI_VERSION} curl -fsSL https://pixi.sh/install.sh | bash",
shell=True,
)
subprocess.check_call(f"{PIXI_PATH} self-update --version {PIXI_VERSION}", shell=True)
subprocess.check_call(f"{PIXI_PATH} --version", shell=True)
def run_command(command: str) -> None:
try:
subprocess.check_call(command, shell=True)
except subprocess.CalledProcessError as e:
print(f"run command {command}. Error: {e}")
if __name__ == "__main__":
check_and_install_pixi()
# install lsof
run_command(command=f"{PIXI_PATH} global install lsof")
# kill anything running on port 7860
run_command(command=f"{PIXI_PATH.parent}/lsof -t -i:7860 | xargs -r kill")
# run spaces app
run_command(command=f"{PIXI_PATH} run -e spaces app")