Mercurial > repos > blankenberglab > data_manager_refgenie_pull
comparison data_manager/data_manager_refgenie_pull.py @ 0:aec9bc48cdb7 draft
"planemo upload for repository https://github.com/blankenberglab/galaxy-tools-blankenberg/tree/master/data_managers/data_manager_refgenie_pull commit da4cbfcb158b1cf283c5736434fa88b645783306"
author | blankenberglab |
---|---|
date | Fri, 10 Sep 2021 12:56:54 +0000 |
parents | |
children | 2cb1863cd236 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:aec9bc48cdb7 |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 | |
4 import argparse | |
5 import logging | |
6 from base64 import urlsafe_b64encode | |
7 from urllib.parse import urljoin | |
8 | |
9 import refgenconf | |
10 import requests | |
11 | |
12 | |
13 log = logging.getLogger("tools.iuc.data_managers.data_manager_refgenie_pull") | |
14 | |
15 | |
16 def galaxy_code_get_refgenie_assets(refgenie_config_file): | |
17 rgc = refgenconf.RefGenConf(refgenie_config_file) | |
18 rval = [] | |
19 for urlname, genomes in rgc.listr().items(): | |
20 urlname_64 = urlsafe_b64encode(bytes(urlname, 'utf8')).decode('utf8') | |
21 ul = [] | |
22 for genome, assets in genomes.items(): | |
23 al = [] | |
24 for name in assets: | |
25 al.append({'name': name, 'value': '%s/%s/%s' % (urlname_64, genome, name), 'options': [], 'selected': False}) | |
26 ul.append({'name': genome, 'value': genome, 'options': al, 'selected': False}) | |
27 rval.append({'name': urlname, 'value': urlname_64, 'options': ul, 'selected': False}) | |
28 return rval | |
29 | |
30 | |
31 if __name__ == '__main__': | |
32 parser = argparse.ArgumentParser() | |
33 parser.add_argument('-n', '--names', dest='names', action='store', default=None, help='Table names to reload') | |
34 parser.add_argument('-u', '--url', dest='url', action='store', default=None, help='Base url for reload') | |
35 parser.add_argument('-k', '--key', dest='key', action='store', default=None, help='Galaxy API Key') | |
36 | |
37 args = parser.parse_args() | |
38 if not args.names: | |
39 tables = requests.get(urljoin(args.url, "api/tool_data"), params={'key': args.key}).json() | |
40 args.names = [d.get('name') for d in tables] | |
41 for name in args.names: | |
42 print(requests.get(urljoin(args.url, "api/tool_data/%s/reload" % (name)), params={'key': args.key}).json()) |