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