Mercurial > repos > iuc > data_manager_vsnp_excel
annotate data_manager/vsnp_excel_fetcher.py @ 1:b819e969b5d9 draft default tip
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 02d2967f77e3fa5a18aea63dc84aa9ab418dc165"
author | iuc |
---|---|
date | Sun, 22 Nov 2020 12:55:17 +0000 |
parents | 25811bd45c44 |
children |
rev | line source |
---|---|
0
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
1 import argparse |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
2 import json |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
3 import os |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
4 import sys |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
5 try: |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
6 # For Python 3.0 and later |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
7 from urllib.request import Request, urlopen |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
8 except ImportError: |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
9 # Fall back to Python 2 imports |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
10 from urllib2 import Request, urlopen |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
11 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
12 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
13 def url_download(url, workdir): |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
14 file_path = os.path.abspath(os.path.join(workdir, os.path.basename(url))) |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
15 src = None |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
16 dst = None |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
17 try: |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
18 req = Request(url) |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
19 src = urlopen(req) |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
20 with open(file_path, 'wb') as dst: |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
21 while True: |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
22 chunk = src.read(2**10) |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
23 if chunk: |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
24 dst.write(chunk) |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
25 else: |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
26 break |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
27 except Exception as e: |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
28 sys.exit(str(e)) |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
29 finally: |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
30 if src: |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
31 src.close() |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
32 return file_path |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
33 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
34 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
35 def download(dbkey, name, url, out_file): |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
36 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
37 with open(out_file) as fh: |
1
b819e969b5d9
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 02d2967f77e3fa5a18aea63dc84aa9ab418dc165"
iuc
parents:
0
diff
changeset
|
38 params = json.load(fh) |
0
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
39 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
40 workdir = params['output_data'][0]['extra_files_path'] |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
41 os.makedirs(workdir) |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
42 file_path = url_download(url, workdir) |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
43 entry_name = os.path.basename(file_path) |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
44 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
45 data_manager_json = {"data_tables": {}} |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
46 data_manager_entry = {} |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
47 data_manager_entry['value'] = dbkey |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
48 data_manager_entry['name'] = entry_name |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
49 data_manager_entry['path'] = file_path |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
50 data_manager_entry['description'] = "Excel file for %s" % name |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
51 data_manager_json["data_tables"]["vsnp_excel"] = data_manager_entry |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
52 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
53 with open(out_file, 'w') as fh: |
1
b819e969b5d9
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 02d2967f77e3fa5a18aea63dc84aa9ab418dc165"
iuc
parents:
0
diff
changeset
|
54 json.dump(data_manager_json, fh, sort_keys=True) |
0
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
55 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
56 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
57 parser = argparse.ArgumentParser() |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
58 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
59 parser.add_argument('--dbkey', dest='dbkey', help='Genome reference dbkey') |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
60 parser.add_argument('--name', dest='name', help='Reference display name') |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
61 parser.add_argument('--url', dest='url', help='URL to download Excel file') |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
62 parser.add_argument('--out_file', dest='out_file', help='JSON output file') |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
63 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
64 args = parser.parse_args() |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
65 |
25811bd45c44
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_vsnp_excel commit 28873701c097a136c789024151e2fb59fa1091cd"
iuc
parents:
diff
changeset
|
66 download(args.dbkey, args.name, args.url, args.out_file) |