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