diff -r 4cd9d0a9f42f -r df1e3b67882a VirtualMailManager/password.py --- a/VirtualMailManager/password.py Sun Nov 11 16:53:52 2012 +0000 +++ b/VirtualMailManager/password.py Tue Nov 20 13:40:32 2012 +0000 @@ -51,7 +51,7 @@ cfg_dget = lambda option: None _sys_rand = SystemRandom() _choice = _sys_rand.choice -_get_salt = lambda s_len: ''.join(_choice(SALTCHARS) for x in xrange(s_len)) +_get_salt = lambda s_len: ''.join(_choice(SALTCHARS) for x in range(s_len)) def _dovecotpw(password, scheme, encoding): @@ -81,7 +81,7 @@ """ try: return hashlib.new('md4') - except ValueError, err: + except ValueError as err: if str(err) == 'unsupported hash type': try: from Crypto.Hash import MD4 @@ -330,7 +330,7 @@ be empty. """ dcv = cfg_dget('misc.dovecot_version') - schemes = (k for (k, v) in _scheme_info.iteritems() if v[1] <= dcv) + schemes = (k for (k, v) in _scheme_info.items() if v[1] <= dcv) encodings = ('.B64', '.BASE64', '.HEX') if dcv >= 0x10100a01 else () return schemes, encodings @@ -350,23 +350,23 @@ * depends on a newer Dovecot version * has a unknown encoding suffix """ - assert isinstance(scheme, basestring), 'Not a str/unicode: %r' % scheme + assert isinstance(scheme, str), 'Not a str/unicode: %r' % scheme scheme_encoding = scheme.upper().split('.') scheme = scheme_encoding[0] if scheme not in _scheme_info: - raise VMMError(_(u"Unsupported password scheme: '%s'") % scheme, + raise VMMError(_("Unsupported password scheme: '%s'") % scheme, VMM_ERROR) if cfg_dget('misc.dovecot_version') < _scheme_info[scheme][1]: - raise VMMError(_(u"The password scheme '%(scheme)s' requires Dovecot " - u">= v%(version)s.") % {'scheme': scheme, + raise VMMError(_("The password scheme '%(scheme)s' requires Dovecot " + ">= v%(version)s.") % {'scheme': scheme, 'version': version_str(_scheme_info[scheme][1])}, VMM_ERROR) if len(scheme_encoding) > 1: if cfg_dget('misc.dovecot_version') < 0x10100a01: - raise VMMError(_(u'Encoding suffixes for password schemes require ' - u'Dovecot >= v1.1.alpha1.'), VMM_ERROR) + raise VMMError(_('Encoding suffixes for password schemes require ' + 'Dovecot >= v1.1.alpha1.'), VMM_ERROR) if scheme_encoding[1] not in ('B64', 'BASE64', 'HEX'): - raise VMMError(_(u"Unsupported password encoding: '%s'") % + raise VMMError(_("Unsupported password encoding: '%s'") % scheme_encoding[1], VMM_ERROR) encoding = scheme_encoding[1] else: @@ -381,9 +381,9 @@ be used for the hash generation. When 'DIGEST-MD5' is used as scheme, also an EmailAddress instance must be given as *user* argument. """ - if not isinstance(password, basestring): + if not isinstance(password, str): raise TypeError('Password is not a string: %r' % password) - if isinstance(password, unicode): + if isinstance(password, str): password = password.encode(ENCODING) password = password.strip() if not password: