all string values are unicode
This commit is contained in:
parent
1959786f68
commit
0335020963
1 changed files with 8 additions and 5 deletions
|
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
import re
|
import re
|
||||||
from .ordereddict import OrderedDict
|
from .ordereddict import OrderedDict
|
||||||
|
from .misc import to_unicode
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['ValuesDict', 'Value', 'ValueBackendPassword', 'ValueInt', 'ValueFloat', 'ValueBool']
|
__all__ = ['ValuesDict', 'Value', 'ValueBackendPassword', 'ValueInt', 'ValueFloat', 'ValueBool']
|
||||||
|
|
@ -103,6 +104,8 @@ class Value(object):
|
||||||
Set a value.
|
Set a value.
|
||||||
"""
|
"""
|
||||||
self.check_valid(v)
|
self.check_valid(v)
|
||||||
|
if isinstance(v, str):
|
||||||
|
v = to_unicode(v)
|
||||||
self._value = v
|
self._value = v
|
||||||
|
|
||||||
def dump(self):
|
def dump(self):
|
||||||
|
|
@ -131,7 +134,7 @@ class ValueBackendPassword(Value):
|
||||||
def load(self, domain, password, callbacks):
|
def load(self, domain, password, callbacks):
|
||||||
self.check_valid(password)
|
self.check_valid(password)
|
||||||
self._domain = domain
|
self._domain = domain
|
||||||
self._value = password
|
self._value = to_unicode(password)
|
||||||
self._callbacks = callbacks
|
self._callbacks = callbacks
|
||||||
|
|
||||||
def check_valid(self, passwd):
|
def check_valid(self, passwd):
|
||||||
|
|
@ -149,7 +152,7 @@ class ValueBackendPassword(Value):
|
||||||
if passwd == '':
|
if passwd == '':
|
||||||
return
|
return
|
||||||
if self._domain is None:
|
if self._domain is None:
|
||||||
self._value = passwd
|
self._value = to_unicode(passwd)
|
||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
@ -157,7 +160,7 @@ class ValueBackendPassword(Value):
|
||||||
import keyring
|
import keyring
|
||||||
keyring.set_password(self._domain, self.id, passwd)
|
keyring.set_password(self._domain, self.id, passwd)
|
||||||
except Exception:
|
except Exception:
|
||||||
self._value = passwd
|
self._value = to_unicode(passwd)
|
||||||
else:
|
else:
|
||||||
self._value = ''
|
self._value = ''
|
||||||
|
|
||||||
|
|
@ -181,11 +184,11 @@ class ValueBackendPassword(Value):
|
||||||
|
|
||||||
if passwd is not None:
|
if passwd is not None:
|
||||||
# Password has been read in the keyring.
|
# Password has been read in the keyring.
|
||||||
return passwd
|
return to_unicode(passwd)
|
||||||
|
|
||||||
# Prompt user to enter password by hand.
|
# Prompt user to enter password by hand.
|
||||||
if not self.noprompt and 'login' in self._callbacks:
|
if not self.noprompt and 'login' in self._callbacks:
|
||||||
self._value = self._callbacks['login'](self._domain, self)
|
self._value = to_unicode(self._callbacks['login'](self._domain, self))
|
||||||
if self._value is None:
|
if self._value is None:
|
||||||
self._value = ''
|
self._value = ''
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue