SC2: run download_data via concurrent.futures (#2704)

This commit is contained in:
Fabian Dill 2024-01-12 00:40:33 +01:00 committed by GitHub
parent ac2387e17c
commit 44de140add
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 2 deletions

View File

@ -3,7 +3,6 @@ from __future__ import annotations
import asyncio import asyncio
import copy import copy
import ctypes import ctypes
import json
import logging import logging
import multiprocessing import multiprocessing
import os.path import os.path
@ -15,6 +14,7 @@ import queue
import zipfile import zipfile
import io import io
import random import random
import concurrent.futures
from pathlib import Path from pathlib import Path
# CommonClient import first to trigger ModuleUpdater # CommonClient import first to trigger ModuleUpdater
@ -42,6 +42,7 @@ import colorama
from NetUtils import ClientStatus, NetworkItem, RawJSONtoTextParser, JSONtoTextParser, JSONMessagePart from NetUtils import ClientStatus, NetworkItem, RawJSONtoTextParser, JSONtoTextParser, JSONMessagePart
from MultiServer import mark_raw from MultiServer import mark_raw
pool = concurrent.futures.ThreadPoolExecutor(1)
loop = asyncio.get_event_loop_policy().new_event_loop() loop = asyncio.get_event_loop_policy().new_event_loop()
nest_asyncio.apply(loop) nest_asyncio.apply(loop)
max_bonus: int = 13 max_bonus: int = 13
@ -210,6 +211,11 @@ class StarcraftClientProcessor(ClientCommandProcessor):
def _cmd_download_data(self) -> bool: def _cmd_download_data(self) -> bool:
"""Download the most recent release of the necessary files for playing SC2 with """Download the most recent release of the necessary files for playing SC2 with
Archipelago. Will overwrite existing files.""" Archipelago. Will overwrite existing files."""
pool.submit(self._download_data)
return True
@staticmethod
def _download_data() -> bool:
if "SC2PATH" not in os.environ: if "SC2PATH" not in os.environ:
check_game_install_path() check_game_install_path()
@ -220,7 +226,7 @@ class StarcraftClientProcessor(ClientCommandProcessor):
metadata = None metadata = None
tempzip, metadata = download_latest_release_zip(DATA_REPO_OWNER, DATA_REPO_NAME, DATA_API_VERSION, tempzip, metadata = download_latest_release_zip(DATA_REPO_OWNER, DATA_REPO_NAME, DATA_API_VERSION,
metadata=metadata, force_download=True) metadata=metadata, force_download=True)
if tempzip != '': if tempzip != '':
try: try: