From ff19b4504f372242fd29113a3f67928f777d6cf7 Mon Sep 17 00:00:00 2001 From: w- Date: Tue, 26 Jun 2018 13:35:47 +0700 Subject: [PATCH 1/3] Make compatible with python 3 --- ebaysdk/connection.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ebaysdk/connection.py b/ebaysdk/connection.py index 77d5f8f..370acd8 100644 --- a/ebaysdk/connection.py +++ b/ebaysdk/connection.py @@ -149,8 +149,13 @@ def build_request(self, verb, data, verb_attrs, files=None): requestData = self.build_request_data(verb, data, verb_attrs) if files: del(headers['Content-Type']) - if isinstance(requestData, basestring): # pylint: disable-msg=E0602 - requestData = {'XMLPayload': requestData} + # Python 3 compatibility + try: + if isinstance(requestData, basestring): # pylint: disable-msg=E0602 + requestData = {'XMLPayload': requestData} + except NameError: + if isinstance(requestData, str): # pylint: disable-msg=E0602 + requestData = {'XMLPayload': requestData} request = Request(self.method, url, From 7f97b94e5c2eb623c9430c6c7a83a5abf94cce99 Mon Sep 17 00:00:00 2001 From: w- Date: Tue, 26 Jun 2018 13:47:17 +0700 Subject: [PATCH 2/3] don't pass dict to smart_encode_request_data --- ebaysdk/connection.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ebaysdk/connection.py b/ebaysdk/connection.py index 370acd8..393348d 100644 --- a/ebaysdk/connection.py +++ b/ebaysdk/connection.py @@ -149,6 +149,7 @@ def build_request(self, verb, data, verb_attrs, files=None): requestData = self.build_request_data(verb, data, verb_attrs) if files: del(headers['Content-Type']) + requestData = smart_encode_request_data(requestData) # Python 3 compatibility try: if isinstance(requestData, basestring): # pylint: disable-msg=E0602 @@ -159,7 +160,7 @@ def build_request(self, verb, data, verb_attrs, files=None): request = Request(self.method, url, - data=smart_encode_request_data(requestData), + data=requestData, headers=headers, files=files, ) From 26a101a2bbabb22cc02de18a6b93de7bb6ced1e5 Mon Sep 17 00:00:00 2001 From: w- Date: Tue, 26 Jun 2018 13:51:22 +0700 Subject: [PATCH 3/3] Logic Errors on previous commit --- ebaysdk/connection.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ebaysdk/connection.py b/ebaysdk/connection.py index 393348d..3b6a89b 100644 --- a/ebaysdk/connection.py +++ b/ebaysdk/connection.py @@ -149,14 +149,16 @@ def build_request(self, verb, data, verb_attrs, files=None): requestData = self.build_request_data(verb, data, verb_attrs) if files: del(headers['Content-Type']) - requestData = smart_encode_request_data(requestData) # Python 3 compatibility try: - if isinstance(requestData, basestring): # pylint: disable-msg=E0602 - requestData = {'XMLPayload': requestData} + CLS_TO_COMPARE=basestring except NameError: - if isinstance(requestData, str): # pylint: disable-msg=E0602 - requestData = {'XMLPayload': requestData} + CLS_TO_COMPARE=str + if isinstance(requestData, CLS_TO_COMPARE): # pylint: disable-msg=E0602 + requestData = {'XMLPayload': smart_encode_request_data(requestData)} + else: + requestData = smart_encode_request_data(requestData) + request = Request(self.method, url,