From 180bc17fc6f3b756c25e7f5c59cf56848b7ddf8d Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Mon, 27 Oct 2014 09:22:54 -0700 Subject: [PATCH] smarter type extraction in python_to_value --- bindings/python/python_to_value.hpp | 44 +++++++++++++++++------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/bindings/python/python_to_value.hpp b/bindings/python/python_to_value.hpp index 24c8e5556..198305cc1 100644 --- a/bindings/python/python_to_value.hpp +++ b/bindings/python/python_to_value.hpp @@ -82,29 +82,37 @@ namespace mapnik { continue; } - extract ex0(obj); - if (ex0.check()) + if (PyBool_Check(obj.ptr())) { - vars[key] = tr_.transcode(ex0().c_str()); - continue; + extract ex(obj); + if (ex.check()) + { + vars[key] = ex(); + } } - extract ex2(obj); - if (ex2.check()) + else if (PyFloat_Check(obj.ptr())) { - vars[key] = ex2(); - continue; + extract ex(obj); + if (ex.check()) + { + vars[key] = ex(); + } } - extract ex3(obj); - if (ex3.check()) + else { - vars[key] = ex3(); - continue; - } - extract ex1(obj); - if (ex1.check()) - { - vars[key] = ex1(); - continue; + extract ex(obj); + if (ex.check()) + { + vars[key] = ex(); + } + else + { + extract ex0(obj); + if (ex0.check()) + { + vars[key] = tr_.transcode(ex0().c_str()); + } + } } } return vars;