Dropbox 2.6 fixes (#127)

Dropbox lib fixes for python 2.6
This commit is contained in:
Rob 2017-12-27 09:55:20 -06:00 committed by GitHub
parent e02245e422
commit 4b8b847544
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 24 deletions

View File

@ -511,5 +511,9 @@ def _params_to_urlencoded(params):
else:
return str(o).encode('utf-8')
utf8_params = {encode(k): encode(v) for k, v in six.iteritems(params)}
#fix for python 2.6
utf8_params = {}
for k,v in six.iteritems(params):
utf8_params[encode(k)] = encode(v)
return url_encode(utf8_params)

View File

@ -237,11 +237,12 @@ class StoneToPythonPrimitiveSerializer(StoneSerializerBase):
def encode_map(self, validator, value):
validated_value = validator.validate(value)
return {
self.encode_sub(validator.key_validator, key):
self.encode_sub(validator.value_validator, value) for
key, value in validated_value.items()
}
#fix for python 2.6
result = {}
for key, value in validated_value.items():
result[self.encode_sub(validator.key_validator,key)] = self.encode_sub(validator.value_validator, value)
return result
def encode_nullable(self, validator, value):
if value is None:
@ -830,11 +831,12 @@ def _decode_list(
if not isinstance(obj, list):
raise bv.ValidationError(
'expected list, got %s' % bv.generic_type_name(obj))
return [
_json_compat_obj_decode_helper(
data_type.item_validator, item, alias_validators, strict,
old_style, for_msgpack)
for item in obj]
result = []
for item in obj:
result.append(_json_compat_obj_decode_helper(data_type.item_validator, item, alias_validators, strict,old_style, for_msgpack))
return result
def _decode_map(
@ -846,15 +848,12 @@ def _decode_map(
if not isinstance(obj, dict):
raise bv.ValidationError(
'expected dict, got %s' % bv.generic_type_name(obj))
return {
_json_compat_obj_decode_helper(
data_type.key_validator, key, alias_validators, strict,
old_style, for_msgpack):
_json_compat_obj_decode_helper(
data_type.value_validator, value, alias_validators, strict,
old_style, for_msgpack)
for key, value in obj.items()
}
result = {}
for key, value in obj.items():
result[_json_compat_obj_decode_helper(data_type.key_validator, key, alias_validators, strict,old_style, for_msgpack)] = _json_compat_obj_decode_helper(data_type.value_validator, value, alias_validators, strict,old_style, for_msgpack)
return result
def _decode_nullable(

View File

@ -422,10 +422,13 @@ class Map(Composite):
def validate(self, val):
if not isinstance(val, dict):
raise ValidationError('%r is not a valid dict' % val)
return {
self.key_validator.validate(key):
self.value_validator.validate(value) for key, value in val.items()
}
#fix for python 2.6
result = {}
for key, value in val.items():
result[self.key_validator.validate(key)] = self.value_validator.validate(value)
return result
class Struct(Composite):