python 3.4 support

This commit is contained in:
2016-03-19 21:27:37 +01:00
parent 924692d3ab
commit 7305cfa134
12 changed files with 62 additions and 23 deletions

View File

@ -21,6 +21,7 @@
import re
from types import FunctionType
import warnings
import sys
from ..i18n import _
from ..setting import log, undefined
@ -344,8 +345,12 @@ class BaseOption(Base):
return self._properties
def _impl_valid_unicode(self, value):
if not isinstance(value, unicode) and not isinstance(value, str):
return ValueError(_('invalid unicode or string'))
if sys.version_info[0] >= 3:
if not isinstance(value, str):
return ValueError(_('invalid string'))
else:
if not isinstance(value, unicode) and not isinstance(value, str):
return ValueError(_('invalid unicode or string'))
class OnlyOption(BaseOption):
@ -676,7 +681,7 @@ class Option(OnlyOption):
warnings_only, transitive)
if err:
if warnings_only:
return ValueWarning(err.message, option)
return ValueWarning(str(err), option)
else:
return err

View File

@ -278,7 +278,10 @@ class PortOption(Option):
def _validate(self, value, context=undefined, current_opt=undefined):
if isinstance(value, int):
value = unicode(value)
if sys.version_info[0] >= 3: # pragma: optional cover
value = str(value)
else:
value = unicode(value)
err = self._impl_valid_unicode(value)
if err:
return err

View File

@ -35,6 +35,11 @@ StorageOptionDescription = get_storages_option('optiondescription')
name_regexp = re.compile(r'^[a-zA-Z\d\-_]*$')
import sys
if sys.version_info[0] >= 3: # pragma: optional cover
xrange = range
del(sys)
class OptionDescription(BaseOption, StorageOptionDescription):
"""Config's schema (organisation, group) and container of Options