[Kimchi-devel] [PATCH] [Wok] Wok utils method for converting String to Unicode and vice versa.
Aline Manera
alinefm at linux.vnet.ibm.com
Thu Apr 14 13:15:29 UTC 2016
Thanks for the explanation! I was only thinking about string as input.
On 04/14/2016 01:23 AM, Archana Singh wrote:
>
>
> On 4/13/2016 9:55 PM, Aline Manera wrote:
>>
>>
>> On 04/13/2016 01:11 AM, archus at linux.vnet.ibm.com wrote:
>>> From: Archana Singh <archus at linux.vnet.ibm.com>
>>>
>>> Added two utils methods which can be used to convert
>>> String to Unicode and Unicode to String.
>>> This method does the checking of instance of value passed
>>> and accordingly used the encode, decode, str methods.
>>>
>>> Signed-off-by: Archana Singh <archus at linux.vnet.ibm.com>
>>> ---
>>> src/wok/utils.py | 24 ++++++++++++++++++++++++
>>> 1 file changed, 24 insertions(+)
>>>
>>> diff --git a/src/wok/utils.py b/src/wok/utils.py
>>> index 175cf25..0e8ec05 100644
>>> --- a/src/wok/utils.py
>>> +++ b/src/wok/utils.py
>>> @@ -622,3 +622,27 @@ def upgrade_objectstore_schema(objstore=None,
>>> field=None):
>>> wok_log.error("Cannot upgrade objectstore schema: %s" %
>>> e.args[0])
>>> return False
>>> return True
>>> +
>>> +
>>> +def encode_value(val):
>>> + """
>>> + Convert the value to string.
>>> + If its unicode, use encode otherwise str.
>>> + """
>>> + if isinstance(val, unicode):
>>> + return val.encode('utf-8')
>>> + return str(val)
>>> +
>>> +
>>> +def decode_value(val):
>>> + """
>>> + Converts value to unicode,
>>> + if its not an instance of unicode.
>>> + For doing so convert the val to string,
>>> + if its not instance of basestring.
>>> + """
>>
>>> + if not isinstance(val, basestring):
>>> + val = str(val)
>>
>> Could you give an example when the above if condition is used?
> For eg. this method can be used to convert integer to unicode, by
> first converting it to string. And another example can be when
> exception string(i.e str(e)) has to be converted to unicode and if it
> has some non-ascii encoded value.
> "isinstance" of "basestring" is nothing but "isinstance" of "String"
> or "unicode". So basically if pass a value which is not instance of
> "basestring" then first has to be converted to "String", as decode can
> be called on "String" instance only.
>>
>>> + if not isinstance(val, unicode):
>>> + val = val.decode('utf-8')
>>> + return val
>>
>
More information about the Kimchi-devel
mailing list