Mercurial > repos > tduigou > data_manager_cache
diff data_manager/cache_fetcher.py @ 0:e0b92d203870 draft
"planemo upload commit f40274f6b9f6a15eb4022aab21286d4c96cd8475-dirty"
| author | tduigou |
|---|---|
| date | Mon, 04 Jul 2022 13:28:30 +0000 |
| parents | |
| children | 35c33747b9e3 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/cache_fetcher.py Mon Jul 04 13:28:30 2022 +0000 @@ -0,0 +1,53 @@ +from os import ( + path as os_path, + mkdir as os_mkdir +) + +from requests import get as r_get + +from tempfile import ( + NamedTemporaryFile +) + +import argparse + +def download( + url: str, + file: str = "" +) -> str: + """ + Download a file from 'url' and save it as 'file'. + Parameters: + url -- URL the file is downloaded from + file -- (Optional) filename the downloaded file is saved into (default: "") + Returns: + A filename where the downloaded file has stored into + """ + r = r_get(url) + if not file: + f = NamedTemporaryFile( + mode='wb', + delete=False + ) + file = f.name + else: + f = open(file, 'wb') + f.write(r.content) + f.close() + return file + +parser = argparse.ArgumentParser(description="Download a cache file") +parser.add_argument('-u','--url', required=True, default=None, type=str, help="URL the file is downloaded from") +parser.add_argument('-o','--outfile', required=True, default=None, type=str, help="A filename where the downloaded file has stored into") + +args = parser.parse_args() + +url= args.url #"https://gitlab.com/breakthewall/rrCache-data/-/raw/master/" +filename= os_path.basename(args.outfile) #"cid_strc.json.gz" +cache_dir=os_path.dirname(args.outfile) #'${GALAXY_DATA_MANAGER_DATA_PATH}'+'/rpextractsink/cache/' +full_filename=os_path.join(cache_dir,filename) #'${GALAXY_DATA_MANAGER_DATA_PATH}'+'/rpextractsink/cache/cid_strc.json.gz' + +if not os_path.isdir(cache_dir): + os_mkdir(cache_dir) + +download(url+filename, full_filename) \ No newline at end of file
