Source code for bioblend.toolshed
"""
A base representation of an instance of Tool Shed
"""
from six.moves.urllib.parse import urljoin, urlparse
from bioblend.toolshed import (repositories)
from bioblend.galaxyclient import GalaxyClient
[docs]class ToolShedInstance(GalaxyClient):
[docs] def __init__(self, url, key='', email=None, password=None):
"""
A base representation of an instance of ToolShed, identified by a
URL and a user's API key.
After you have created an ``ToolShed`` object, access various
modules via the class fields (see the source for the most up-to-date
list): ``repositories`` are the minimum set supported. For example, to work with
a repositories, and get a list of all the public repositories, the following
should be done::
from bioblend import toolshed
ts = toolshed.ToolShedInstance(url='http://testtoolshed.g2.bx.psu.edu')
rl = ts.repositories.get_repositories()
:type url: string
:param url: A FQDN or IP for a given instance of ToolShed. For example:
http://testtoolshed.g2.bx.psu.edu
:type key: string
:param key: If required, user's API key for the given instance of ToolShed,
obtained from the user preferences.
"""
# Make sure the url scheme is defined (otherwise requests will not work)
if not urlparse(url).scheme:
url = "http://" + url
self.base_url = url
# All of ToolShed's API's are rooted at <url>/api so make that the url
self.url = urljoin(url, 'api')
self._init_auth(key, email, password)
self.json_headers = {'Content-Type': 'application/json'}
self.verify = True # Should SSL verification be done
self.repositories = repositories.ToolShedClient(self)