comparison env/lib/python3.7/site-packages/ephemeris/__init__.py @ 0:26e78fe6e8c4 draft

"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author shellac
date Sat, 02 May 2020 07:14:21 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:26e78fe6e8c4
1
2 # -*- coding: utf-8 -*-
3
4 import yaml
5 from bioblend import galaxy
6
7 __version__ = '0.10.5'
8
9 PROJECT_NAME = "ephemeris"
10 PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
11 PROJECT_URL = "https://github.com/galaxyproject/ephemeris"
12 PROJECT_AUTHOR = 'Galaxy Project and Community'
13 PROJECT_EMAIL = 'jmchilton@gmail.com'
14 RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
15 PROJECT_USERAME, PROJECT_NAME
16 )
17
18
19 def check_url(url, log=None):
20 if not url.startswith('http'):
21 if log:
22 log.warning('URL should start with http:// or https://. https:// chosen by default.')
23 url = 'https://' + url
24 return url
25
26
27 def get_galaxy_connection(args, file=None, log=None, login_required=True):
28 """
29 Return a Galaxy connection, given a user or an API key.
30 If not given gets the arguments from the file.
31 If either is missing raise ValueError.
32 """
33 if file:
34 file_content = load_yaml_file(file)
35 else:
36 file_content = dict()
37
38 url = args.galaxy or file_content.get('galaxy_instance')
39 galaxy_url = check_url(url, log)
40 api_key = args.api_key or file_content.get('api_key')
41
42 if args.user and args.password:
43 return galaxy.GalaxyInstance(url=galaxy_url, email=args.user, password=args.password)
44 elif api_key:
45 return galaxy.GalaxyInstance(url=galaxy_url, key=api_key)
46 elif not login_required:
47 return galaxy.GalaxyInstance(url=galaxy_url)
48 else:
49 raise ValueError("Missing api key or user & password combination, in order to make a galaxy connection.")
50
51
52 def load_yaml_file(filename):
53 """
54 Load YAML from the `tool_list_file` and return a dict with the content.
55 """
56 with open(filename, 'r') as f:
57 dictionary = yaml.safe_load(f)
58 return dictionary
59
60
61 def dump_to_yaml_file(content, file_name):
62 """
63 Dump YAML-compatible `content` to `file_name`.
64 """
65 with open(file_name, 'w') as f:
66 yaml.dump(content, f, default_flow_style=False)