summaryrefslogtreecommitdiff
path: root/textutils.py
diff options
context:
space:
mode:
authorPierre-Yves David <pierre-yves.david@logilab.fr>2010-01-18 16:52:51 +0100
committerPierre-Yves David <pierre-yves.david@logilab.fr>2010-01-18 16:52:51 +0100
commitd23898fc964c40bb61cc699bd6cda0a3797b7c25 (patch)
tree32debd9123531b142afd8bc86e45ea225e5b88e3 /textutils.py
parentb96951d6a140b92d033a8d9eb53614e22e30c2c5 (diff)
downloadlogilab-common-d23898fc964c40bb61cc699bd6cda0a3797b7c25.tar.gz
[fix] Remove isinstance call for bytes units
The isinstance function was used to detect if a byte required unit application, This was leading to error when the value was a float. isinstance call is replaced by a more pythonix hasattribut __init__ check/
Diffstat (limited to 'textutils.py')
-rw-r--r--textutils.py6
1 files changed, 5 insertions, 1 deletions
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))