mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
issue a download progress event when install download starts
This commit is contained in:
@ -815,10 +815,13 @@ class ModelInstallService(ModelInstallServiceBase):
|
|||||||
if install_job := self._download_cache.get(download_job.id, None):
|
if install_job := self._download_cache.get(download_job.id, None):
|
||||||
install_job.status = InstallStatus.DOWNLOADING
|
install_job.status = InstallStatus.DOWNLOADING
|
||||||
|
|
||||||
assert download_job.download_path
|
|
||||||
if install_job.local_path == install_job._install_tmpdir: # first time
|
if install_job.local_path == install_job._install_tmpdir: # first time
|
||||||
|
assert download_job.download_path
|
||||||
install_job.local_path = download_job.download_path
|
install_job.local_path = download_job.download_path
|
||||||
install_job.total_bytes = download_job.total_bytes
|
install_job.download_parts = download_job.download_parts
|
||||||
|
install_job.bytes = sum(x.bytes for x in download_job.download_parts)
|
||||||
|
install_job.total_bytes = download_job.total_bytes
|
||||||
|
self._signal_job_downloading(install_job)
|
||||||
|
|
||||||
def _download_progress_callback(self, download_job: MultiFileDownloadJob) -> None:
|
def _download_progress_callback(self, download_job: MultiFileDownloadJob) -> None:
|
||||||
with self._lock:
|
with self._lock:
|
||||||
@ -829,7 +832,6 @@ class ModelInstallService(ModelInstallServiceBase):
|
|||||||
# update sizes
|
# update sizes
|
||||||
install_job.bytes = sum(x.bytes for x in download_job.download_parts)
|
install_job.bytes = sum(x.bytes for x in download_job.download_parts)
|
||||||
install_job.total_bytes = sum(x.total_bytes for x in download_job.download_parts)
|
install_job.total_bytes = sum(x.total_bytes for x in download_job.download_parts)
|
||||||
install_job.download_parts = download_job.download_parts
|
|
||||||
self._signal_job_downloading(install_job)
|
self._signal_job_downloading(install_job)
|
||||||
|
|
||||||
def _download_complete_callback(self, download_job: MultiFileDownloadJob) -> None:
|
def _download_complete_callback(self, download_job: MultiFileDownloadJob) -> None:
|
||||||
|
@ -251,11 +251,12 @@ def test_simple_download(mm2_installer: ModelInstallServiceBase, mm2_app_config:
|
|||||||
model_record = store.get_model(key)
|
model_record = store.get_model(key)
|
||||||
assert (mm2_app_config.models_path / model_record.path).exists()
|
assert (mm2_app_config.models_path / model_record.path).exists()
|
||||||
|
|
||||||
assert len(bus.events) == 4
|
assert len(bus.events) == 5
|
||||||
assert isinstance(bus.events[0], ModelInstallDownloadProgressEvent)
|
assert isinstance(bus.events[0], ModelInstallDownloadProgressEvent) # download starts
|
||||||
assert isinstance(bus.events[1], ModelInstallDownloadsCompleteEvent)
|
assert isinstance(bus.events[1], ModelInstallDownloadProgressEvent) # download progresses
|
||||||
assert isinstance(bus.events[2], ModelInstallStartedEvent)
|
assert isinstance(bus.events[2], ModelInstallDownloadsCompleteEvent) # download completed
|
||||||
assert isinstance(bus.events[3], ModelInstallCompleteEvent)
|
assert isinstance(bus.events[3], ModelInstallStartedEvent) # install started
|
||||||
|
assert isinstance(bus.events[4], ModelInstallCompleteEvent) # install completed
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.timeout(timeout=10, method="thread")
|
@pytest.mark.timeout(timeout=10, method="thread")
|
||||||
|
Reference in New Issue
Block a user