diff options
author | Jeff Dairiki <dairiki@dairiki.org> | 2014-01-10 08:02:21 -0800 |
---|---|---|
committer | Jeff Dairiki <dairiki@dairiki.org> | 2014-01-10 08:02:30 -0800 |
commit | 824df52069f9512ef192af07a9007a0d174becf8 (patch) | |
tree | 4464662cbf55697fb721a204e88e1490c1039242 | |
parent | 9a24cb31197994a82fdba203d791c42024e09ccb (diff) | |
download | dogpile-cache-824df52069f9512ef192af07a9007a0d174becf8.tar.gz |
util.coerce_string_conf: coerce floats too (#57)
-rw-r--r-- | dogpile/cache/util.py | 2 | ||||
-rw-r--r-- | tests/cache/test_utils.py | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/dogpile/cache/util.py b/dogpile/cache/util.py index 8f6f3ff..0f732a6 100644 --- a/dogpile/cache/util.py +++ b/dogpile/cache/util.py @@ -15,6 +15,8 @@ def coerce_string_conf(d): v = v.strip() if re.match(r'^[-+]?\d+$', v): result[k] = int(v) + elif re.match(r'^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$', v): + result[k] = float(v) elif v.lower() in ('false', 'true'): result[k] = v.lower() == 'true' elif v == 'None': diff --git a/tests/cache/test_utils.py b/tests/cache/test_utils.py index 4104e9b..6218a96 100644 --- a/tests/cache/test_utils.py +++ b/tests/cache/test_utils.py @@ -15,3 +15,12 @@ class UtilsTest(TestCase): settings = {'expiration_time': '+1'} coerced = util.coerce_string_conf(settings) self.assertEqual(coerced['expiration_time'], 1) + self.assertEqual(type(coerced['expiration_time']), int) + + settings = {'arguments.lock_sleep': '0.1'} + coerced = util.coerce_string_conf(settings) + self.assertEqual(coerced['arguments.lock_sleep'], 0.1) + + settings = {'arguments.lock_sleep': '-3.14e-10'} + coerced = util.coerce_string_conf(settings) + self.assertEqual(coerced['arguments.lock_sleep'], -3.14e-10) |