def __unicodify(data, encoding='utf-8'):
'''Private function to transform strings into unicode strings.
'''
if isinstance(data, basestring):
if not isinstance(data, unicode):
data = unicode(data, encoding)
# else we'll just return the data as it's already unicode
elif isinstance(data, dict):
for key in data:
data[key] = __unicodify(data[key], encoding)
elif isinstance(data, list):
for key in xrange(0, len(data)):
data[key] = __unicodify(data[key], encoding)
elif isinstance(data, tuple):
newTuple = []
for key in xrange(0, len(data)):
newTuple[key] = __unicodify(data[key], encoding)
data[key] = tuple(newTuple)
return data