Mercurial > repos > jay > gaiac_precision
comparison gaiac_pm_data_pulling/gaiac_pm_data_pulling.py @ 1:8a99d8639aa2 draft
planemo upload for repository https://github.com/jaidevjoshi83/gaiac.git commit a733fec1915a1f6cf5f07092dc33426f765b6cb3-dirty
author | jay |
---|---|
date | Thu, 15 May 2025 22:49:52 +0000 |
parents | |
children | 69b3190e5e64 |
comparison
equal
deleted
inserted
replaced
0:287d6cc86582 | 1:8a99d8639aa2 |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 | |
4 import argparse | |
5 import logging | |
6 from base64 import urlsafe_b64encode | |
7 from html import escape | |
8 from urllib.parse import urljoin | |
9 import requests | |
10 | |
11 log = logging.getLogger("tools.iuc.data_managers.data_manager_refgenie_pull") | |
12 | |
13 import urllib.request | |
14 import json | |
15 | |
16 def get_file_list(ip): | |
17 | |
18 url = "%s/list-files"%(ip) | |
19 | |
20 with urllib.request.urlopen(url) as response: | |
21 data = response.read() | |
22 file_list = json.loads(data) | |
23 | |
24 return file_list | |
25 | |
26 | |
27 def simulate_dynamic_options(ip): | |
28 try: | |
29 rval = [] | |
30 | |
31 api_data = {ip:{ | |
32 | |
33 }} | |
34 | |
35 for i in get_file_list(ip): | |
36 # print("http://"+ip+'/download/'+i) | |
37 api_data[ip][i] = ip+'/download/'+i | |
38 | |
39 | |
40 ul = [] | |
41 for dataset, url in api_data[ip].items(): | |
42 | |
43 ul.append({ | |
44 'name': dataset, | |
45 'value': url, | |
46 'options': [], | |
47 'selected': False | |
48 }) | |
49 | |
50 # for urlname, genomes in api_data.items(): | |
51 # # URL-safe base64 encoding for the URL name | |
52 # urlname_64 = urlname | |
53 # ul = [] | |
54 # for genome, assets in genomes.items(): | |
55 # al = [] | |
56 | |
57 # ul.append({ | |
58 # 'name': genome, | |
59 # 'value': genome, | |
60 # 'options': [], | |
61 # 'selected': False | |
62 # }) | |
63 | |
64 return ul | |
65 except Exception as e: | |
66 # Handle any potential errors | |
67 return [{ | |
68 'name': escape(str(e)), | |
69 'value': 'ERROR', | |
70 'options': [], | |
71 'selected': False | |
72 }] | |
73 | |
74 if __name__ == '__main__': | |
75 | |
76 simulate_dynamic_options('http://192.168.1.202:8080') | |
77 | |
78 # for i in simulate_dynamic_options('192.168.1.202:8080')[0]['options']: | |
79 # print(i) | |
80 # print(i) | |
81 # parser = argparse.ArgumentParser() | |
82 # parser.add_argument('-n', '--names', dest='names', action='store', default=None, help='Table names to reload') | |
83 # parser.add_argument('-u', '--url', dest='url', action='store', default=None, help='Base url for reload') | |
84 # parser.add_argument('-k', '--key', dest='key', action='store', default=None, help='Galaxy API Key') | |
85 # parser.add_argument('-g', '--graceful', dest='graceful', action='store_true', help='Fail gracefully') | |
86 | |
87 # args = parser.parse_args() | |
88 # try: | |
89 # if not args.names: | |
90 # tables = requests.get(urljoin(args.url, "api/tool_data"), params={'key': args.key}).json() | |
91 # args.names = [d.get('name') for d in tables] | |
92 # for name in args.names: | |
93 # print(requests.get(urljoin(args.url, "api/tool_data/%s/reload" % (name)), params={'key': args.key}).json()) | |
94 # except Exception as e: | |
95 # if args.graceful: | |
96 # print("Failed to reload data tables:\n%s" % (e)) | |
97 # else: | |
98 # raise e |