summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Th?nault <sylvain.thenault@logilab.fr>2010-01-25 11:07:20 +0100
committerSylvain Th?nault <sylvain.thenault@logilab.fr>2010-01-25 11:07:20 +0100
commit26475801d2d4ab8b4a5a8560a014398ec4e549d3 (patch)
tree678ecce26003bda600fbf2379503088ac50154d5
parented82e1854ffa05655a24bdb1637e7115df8a1c8c (diff)
parentd23898fc964c40bb61cc699bd6cda0a3797b7c25 (diff)
downloadlogilab-common-26475801d2d4ab8b4a5a8560a014398ec4e549d3.tar.gz
backport stable
-rw-r--r--configuration.py4
-rw-r--r--optik_ext.py2
-rw-r--r--textutils.py6
3 files changed, 8 insertions, 4 deletions
diff --git a/configuration.py b/configuration.py
index 6172c5c..6d03af1 100644
--- a/configuration.py
+++ b/configuration.py
@@ -311,8 +311,8 @@ def format_option_value(optdict, value):
value = "'%s'" % value
elif optdict.get('type') == 'time' and isinstance(value, (float, int, long)):
value = "%ss" % value
- elif optdict.get('type') == 'bytes' and isinstance(value, (int, long)):
- value = "%sB" % value
+ elif optdict.get('type') == 'bytes' and hasattr(value, '__int__'):
+ value = "%iB" % value
return value
def ini_format_section(stream, section, options, encoding=None, doc=None):
diff --git a/optik_ext.py b/optik_ext.py
index 34dbfe9..86c2ffd 100644
--- a/optik_ext.py
+++ b/optik_ext.py
@@ -176,7 +176,7 @@ def check_time(option, opt, value):
def check_bytes(option, opt, value):
from logilab.common.textutils import BYTE_UNITS, apply_units
- if instance(value, (int, long)):
+ if hasattr(value, '__int__'):
return value
return apply_units(value, BYTE_UNITS)
diff --git a/textutils.py b/textutils.py
index 38f59c7..37d4f48 100644
--- a/textutils.py
+++ b/textutils.py
@@ -289,7 +289,11 @@ def apply_units( string, units, inter=None, final=float, blank_reg=_BLANK_RE,
lit, unit = dic["value"], dic.get("unit")
value = inter(lit)
if unit is not None:
- value *= units[unit]
+ try:
+ value *= units[unit]
+ except KeyError:
+ raise KeyError('invalid unit %s. valid units are %s' %
+ unit, units.keys())
values.append(value)
return final(sum(values))