From 0ab9de920d9ed1a8ee3f2eca3efff46af7f7cff2 Mon Sep 17 00:00:00 2001 From: "daniele.biasini" Date: Fri, 28 Jul 2017 17:16:57 +0200 Subject: [PATCH] Add proxy support in API definition --- krakenex/api.py | 5 +++-- krakenex/connection.py | 10 ++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/krakenex/api.py b/krakenex/api.py index 0602480..e34c73e 100644 --- a/krakenex/api.py +++ b/krakenex/api.py @@ -53,7 +53,7 @@ class API(object): pair, the effects are undefined. """ - def __init__(self, key='', secret='', conn=None): + def __init__(self, key='', secret='', conn=None, proxy=''): """ Create an object with authentication information. :param key: key required to make queries to the API @@ -70,6 +70,7 @@ def __init__(self, key='', secret='', conn=None): self.uri = 'https://api.kraken.com' self.apiversion = '0' self.conn = conn + self.proxy = proxy return def load_key(self, path): @@ -140,7 +141,7 @@ def _query(self, urlpath, req, conn=None, headers=None): if conn is None: if self.conn is None: - self.conn = connection.Connection() + self.conn = connection.Connection(proxy=self.proxy) conn = self.conn if headers is None: diff --git a/krakenex/connection.py b/krakenex/connection.py index fca182d..92ad274 100644 --- a/krakenex/connection.py +++ b/krakenex/connection.py @@ -32,13 +32,15 @@ class Connection(object): """ - def __init__(self, uri='api.kraken.com', timeout=30): + def __init__(self, uri='api.kraken.com', timeout=30, proxy=''): """ Create an object for reusable connections. :param uri: URI to connect to :type uri: str :param timeout: blocking operations' timeout (in seconds) :type timeout: int + :param proxy: URL of the proxy + :type proxy: str :returns: None """ @@ -46,7 +48,11 @@ def __init__(self, uri='api.kraken.com', timeout=30): 'User-Agent': 'krakenex/' + version.__version__ + ' (+' + version.__url__ + ')' } - self.conn = http.client.HTTPSConnection(uri, timeout=timeout) + if proxy == '': + self.conn = http.client.HTTPSConnection(uri, timeout = timeout) + else: + self.conn = http.client.HTTPSConnection(proxy, timeout=timeout) + self.conn.set_tunnel(uri) return def close(self):