ayon-core/igniter/install_thread.py
2020-09-16 09:56:16 +02:00

45 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
"""Working thread for installer."""
import sys
from Qt.QtCore import QThread, Signal
from .bootstrap_repos import BootstrapRepos
class InstallThread(QThread):
progress = Signal(int)
message = Signal((str, bool))
_path = None
def __init__(self, parent=None):
QThread.__init__(self, parent)
def run(self):
self.message.emit("Installing Pype ...", False)
bs = BootstrapRepos()
local_version = bs.get_local_version()
if getattr(sys, "freeze", None):
# copy frozen repo zip
pass
else:
# we are running from live code.
# zip content of `repos`, copy it to user data dir and append
# version to it.
if not self._path:
self.message.emit(
f"We will use local Pype version {local_version}", False)
repo_file = bs.install_live_repos(
progress_callback=self.set_progress)
if not repo_file:
self.message.emit(
f"!!! install failed - {repo_file}", True)
return
self.message.emit(f"installed as {repo_file}", False)
def set_path(self, path: str) -> None:
self._path = path
def set_progress(self, progress: int):
self.progress.emit(progress)