Spaces:
Runtime error
Runtime error
import logging | |
import subprocess # nosec - disable B404:import-subprocess check | |
import sys | |
import os | |
from pathlib import Path | |
import platform | |
def clone_repo(repo_url: str, revision: str = None, add_to_sys_path: bool = True) -> Path: | |
repo_path = Path(repo_url.split("/")[-1].replace(".git", "")) | |
if not repo_path.exists(): | |
try: | |
subprocess.run(["git", "clone", repo_url], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) | |
except Exception as exc: | |
print(f"Failed to clone the repository: {exc.stderr}") | |
raise | |
if revision: | |
subprocess.Popen(["git", "checkout", revision], cwd=str(repo_path)) | |
if add_to_sys_path and str(repo_path.resolve()) not in sys.path: | |
sys.path.insert(0, str(repo_path.resolve())) | |
return repo_path | |
def optimum_cli(model_id, output_dir, show_command=True, additional_args: dict[str, str] = None, debug_logs=False): | |
export_command = f"optimum-cli export openvino --model {model_id} {output_dir}" | |
if additional_args is not None: | |
for arg, value in additional_args.items(): | |
export_command += f" --{arg}" | |
if value: | |
export_command += f" {value}" | |
if show_command: | |
from IPython.display import Markdown, display | |
display(Markdown("**Export command:**")) | |
display(Markdown(f"`{export_command}`")) | |
transofrmers_loglevel = None | |
if debug_logs: | |
transofrmers_loglevel = os.environ.pop("TRANSFORMERS_VERBOSITY", None) | |
os.environ["TRANSFORMERS_VERBOSITY"] = "debug" | |
try: | |
subprocess.run(export_command.split(" "), shell=(platform.system() == "Windows"), check=True, capture_output=True) | |
except subprocess.CalledProcessError as exc: | |
logger = logging.getLogger() | |
logger.exception(exc.stderr) | |
if transofrmers_loglevel is not None: | |
os.environ["TRANSFORMERS_VERBOSITY"] = transofrmers_loglevel | |
raise exc | |
finally: | |
if transofrmers_loglevel is not None: | |
os.environ["TRANSFORMERS_VERBOSITY"] = transofrmers_loglevel | |