From 7716920fcfcf1595f6b575e1fe41c733c5ec7ab2 Mon Sep 17 00:00:00 2001 From: Jauhien Piatlicki Date: Tue, 18 Aug 2015 20:07:55 +0200 Subject: [g_sorcery/fileutils] make wget timeout optional --- g_sorcery/fileutils.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/g_sorcery/fileutils.py b/g_sorcery/fileutils.py index 235eaec..3440ec7 100644 --- a/g_sorcery/fileutils.py +++ b/g_sorcery/fileutils.py @@ -135,7 +135,7 @@ def copy_all(src, dst): """ os.system("cp -rv " + src + "/* " + dst) -def wget(uri, directory, output=""): +def wget(uri, directory, output="", timeout = None): """ Fetch a file. @@ -143,15 +143,21 @@ def wget(uri, directory, output=""): uri: URI. directory: Directory where file should be saved. output: Name of output file. + timeout: Timeout for wget. Returns: Nonzero in case of a failure. """ + if timeout is None: + timeout_str = ' ' + else: + timeout_str = ' -T ' + str(timeout) + if output: ret = os.system('wget ' + uri + - ' -O ' + os.path.join(directory, output) + ' -T 2') + ' -O ' + os.path.join(directory, output) + timeout_str) else: - ret = os.system('wget -P ' + directory + ' ' + uri + ' -T 2') + ret = os.system('wget -P ' + directory + ' ' + uri + timeout_str) return ret def get_pkgpath(root = None): @@ -255,7 +261,7 @@ def _call_parser(f_name, parser, open_file = True, open_mode = 'r'): return {os.path.basename(f_name): data} -def load_remote_file(uri, parser, open_file = True, open_mode='r', output=""): +def load_remote_file(uri, parser, open_file = True, open_mode = 'r', output = "", timeout = None): """ Load files from an URI. @@ -264,7 +270,8 @@ def load_remote_file(uri, parser, open_file = True, open_mode='r', output=""): parser: Parser that will be applied to downloaded files. open_file: Whether parser accepts a file descriptor. open_mode: Open mode for a file. - output: What output name should downloaded file have + output: What output name should downloaded file have. + timeout: URI access timeout. (it will be a key identifying data loaded from this file) Returns: @@ -272,7 +279,7 @@ def load_remote_file(uri, parser, open_file = True, open_mode='r', output=""): """ download_dir = TemporaryDirectory() loaded_data = {} - if wget(uri, download_dir.name, output): + if wget(uri, download_dir.name, output, timeout=timeout): raise DownloadingError("wget failed: " + uri) for f_name in glob.glob(os.path.join(download_dir.name, "*")): if tarfile.is_tarfile(f_name): -- cgit v1.2.3