Add python 3 support

Replaced unicode with six.text_type

copied from I9f084ef4fae1ec1111e26142e2e89bad18acbf45

Change-Id: Icba62cb7a76884289ffd93f61a16cdf89fcdce86
This commit is contained in:
Davanum Srinivas
2016-04-22 14:47:23 -04:00
parent b6b461b895
commit 1f3d16883e

View File

@@ -21,7 +21,6 @@ from . import models
from .rest import RESTClient from .rest import RESTClient
from .rest import ApiException from .rest import ApiException
import ast
import os import os
import re import re
import json import json
@@ -34,11 +33,19 @@ from datetime import datetime
from datetime import date from datetime import date
# python 2 and python 3 compatibility library # python 2 and python 3 compatibility library
import six
from six import iteritems from six import iteritems
import six.moves.builtins as __builtin__
from six.moves.urllib import parse as urlparse from six.moves.urllib import parse as urlparse
from .configuration import Configuration from .configuration import Configuration
if six.PY3:
import io
file_type = io.IOBase
else:
file_type = file # noqa
class ApiClient(object): class ApiClient(object):
""" """
@@ -184,7 +191,8 @@ class ApiClient(object):
""" """
if isinstance(obj, type(None)): if isinstance(obj, type(None)):
return None return None
elif isinstance(obj, (unicode, str, int, float, bool, tuple, file)): elif isinstance(obj, (six.text_type, str, int, float,
bool, tuple, file_type)):
return obj return obj
elif isinstance(obj, list): elif isinstance(obj, list):
return [self.sanitize_for_serialization(sub_obj) return [self.sanitize_for_serialization(sub_obj)
@@ -257,10 +265,10 @@ class ApiClient(object):
# for native types # for native types
if klass in ['int', 'float', 'str', 'bool', if klass in ['int', 'float', 'str', 'bool',
"date", 'datetime', "object"]: "date", 'datetime', "object"]:
klass = ast.literal_eval(klass) klass = getattr(__builtin__, klass)
# for model types # for model types
else: else:
klass = ast.literal_eval('models.' + klass) klass = getattr(models, klass)
if klass in [int, float, str, bool]: if klass in [int, float, str, bool]:
return self.__deserialize_primitive(data, klass) return self.__deserialize_primitive(data, klass)
@@ -485,7 +493,7 @@ class ApiClient(object):
try: try:
value = klass(data) value = klass(data)
except UnicodeEncodeError: except UnicodeEncodeError:
value = unicode(data) value = six.text_type(data)
except TypeError: except TypeError:
value = data value = data
return value return value