Mercurial > repos > jay > gaiac_precision
view 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 |
line wrap: on
line source
#!/usr/bin/env python import argparse import logging from base64 import urlsafe_b64encode from html import escape from urllib.parse import urljoin import requests log = logging.getLogger("tools.iuc.data_managers.data_manager_refgenie_pull") import urllib.request import json def get_file_list(ip): url = "%s/list-files"%(ip) with urllib.request.urlopen(url) as response: data = response.read() file_list = json.loads(data) return file_list def simulate_dynamic_options(ip): try: rval = [] api_data = {ip:{ }} for i in get_file_list(ip): # print("http://"+ip+'/download/'+i) api_data[ip][i] = ip+'/download/'+i ul = [] for dataset, url in api_data[ip].items(): ul.append({ 'name': dataset, 'value': url, 'options': [], 'selected': False }) # for urlname, genomes in api_data.items(): # # URL-safe base64 encoding for the URL name # urlname_64 = urlname # ul = [] # for genome, assets in genomes.items(): # al = [] # ul.append({ # 'name': genome, # 'value': genome, # 'options': [], # 'selected': False # }) return ul except Exception as e: # Handle any potential errors return [{ 'name': escape(str(e)), 'value': 'ERROR', 'options': [], 'selected': False }] if __name__ == '__main__': simulate_dynamic_options('http://192.168.1.202:8080') # for i in simulate_dynamic_options('192.168.1.202:8080')[0]['options']: # print(i) # print(i) # parser = argparse.ArgumentParser() # parser.add_argument('-n', '--names', dest='names', action='store', default=None, help='Table names to reload') # parser.add_argument('-u', '--url', dest='url', action='store', default=None, help='Base url for reload') # parser.add_argument('-k', '--key', dest='key', action='store', default=None, help='Galaxy API Key') # parser.add_argument('-g', '--graceful', dest='graceful', action='store_true', help='Fail gracefully') # args = parser.parse_args() # try: # if not args.names: # tables = requests.get(urljoin(args.url, "api/tool_data"), params={'key': args.key}).json() # args.names = [d.get('name') for d in tables] # for name in args.names: # print(requests.get(urljoin(args.url, "api/tool_data/%s/reload" % (name)), params={'key': args.key}).json()) # except Exception as e: # if args.graceful: # print("Failed to reload data tables:\n%s" % (e)) # else: # raise e