[feature][arch] supporting multi-threaded download for repository packages

This commit is contained in:
Vinícius Moreira
2020-05-27 11:51:24 -03:00
parent 12055fe0e1
commit cec0c06e4f
24 changed files with 402 additions and 51 deletions

View File

@@ -6,12 +6,17 @@ from bauh.api.abstract.handler import ProcessWatcher
class FileDownloader(ABC):
@abstractmethod
def download(self, file_url: str, watcher: ProcessWatcher, output_path: str, cwd: str) -> bool:
def download(self, file_url: str, watcher: ProcessWatcher, output_path: str, cwd: str, root_password: str = None, substatus_prefix: str = None, display_file_size: bool = True, max_threads: int = None, known_size: int = None) -> bool:
"""
:param file_url:
:param watcher:
:param output_path: the downloaded file output path. Leave None for the current directory and the same file name
:param cwd: current working directory. Leave None if does not matter.
:param root_password: (if the output directory is protected)
:param substatus_prefix: custom substatus prefix ('prefix downloading xpto')
:param display_file_size: if the file size should be displayed on the substatus
:param max_threads: maximum number of threads (only available for multi-threaded download)
:param known_size: known file size
:return: success / failure
"""
pass