diff options
author | Pierre-Yves David <pierre-yves.david@logilab.fr> | 2010-01-18 16:52:51 +0100 |
---|---|---|
committer | Pierre-Yves David <pierre-yves.david@logilab.fr> | 2010-01-18 16:52:51 +0100 |
commit | d23898fc964c40bb61cc699bd6cda0a3797b7c25 (patch) | |
tree | 32debd9123531b142afd8bc86e45ea225e5b88e3 /textutils.py | |
parent | b96951d6a140b92d033a8d9eb53614e22e30c2c5 (diff) | |
download | logilab-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.py | 6 |
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)) |