11#!/usr/bin/env python
22
3- import sys
43import ssl
54import json
6- import urlparse
75import requests
86
97from hyperwallet .exceptions import HyperwalletAPIException
108from requests_toolbelt .adapters .ssl import SSLAdapter
119from hyperwallet import __version__
10+ try :
11+ from urllib .parse import urljoin
12+ except ImportError :
13+ from urlparse import urljoin # Python 2
1214
1315
1416class ApiClient (object ):
@@ -42,7 +44,7 @@ def __init__(self, username, password, server):
4244 self .server = server
4345
4446 # The complete base URL of the API.
45- self .baseUrl = urlparse . urljoin (self .server , '/rest/v3/' )
47+ self .baseUrl = urljoin (self .server , '/rest/v3/' )
4648
4749 # The default connection to persist authentication and SSL settings.
4850 defaultSession = requests .Session ()
@@ -81,7 +83,7 @@ def _makeRequest(self,
8183 try :
8284 response = self .session .request (
8385 method = method ,
84- url = urlparse . urljoin (self .baseUrl , url ),
86+ url = urljoin (self .baseUrl , url ),
8587 data = data ,
8688 headers = headers ,
8789 params = params
@@ -93,15 +95,17 @@ def _makeRequest(self,
9395 'code' : 'COMMUNICATION_ERROR' ,
9496 'message' : 'Connection to {} failed: {}' .format (
9597 self .server ,
96- e .message
98+ e .args [ 0 ]
9799 )
98100 }]
99101 })
100102
101103 if response .status_code is 204 :
102104 return {}
103105
104- content = response .content .decode ('utf-8' )
106+ content = response .content
107+ if hasattr (content , 'decode' ): # Python 2
108+ content = content .decode ('utf-8' )
105109
106110 try :
107111 json_body = json .loads (content )
@@ -110,7 +114,7 @@ def _makeRequest(self,
110114 raise HyperwalletAPIException ({
111115 'errors' : [{
112116 'code' : 'GARBAGE_RESPONSE' ,
113- 'message' : 'Invalid response: {}' .format (e .message )
117+ 'message' : 'Invalid response: {}' .format (e .args [ 0 ] )
114118 }]
115119 })
116120
0 commit comments