diff options
author | Mike Bayer <classic@zzzcomputing.com> | 2014-01-16 12:34:24 -0500 |
---|---|---|
committer | Mike Bayer <classic@zzzcomputing.com> | 2014-01-16 12:34:24 -0500 |
commit | 73080395f042e664b16b8b1f1bbf2c5fefc21d79 (patch) | |
tree | 4464662cbf55697fb721a204e88e1490c1039242 | |
parent | 9a24cb31197994a82fdba203d791c42024e09ccb (diff) | |
parent | 824df52069f9512ef192af07a9007a0d174becf8 (diff) | |
download | dogpile-cache-73080395f042e664b16b8b1f1bbf2c5fefc21d79.tar.gz |
Merged in dairiki/dogpile.cache/ticket-57 (pull request #13)
coerce_string_conf: coerce floats too
-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) |