static void setstate (layer& l, boost::python::tuple state) { using namespace boost::python; if (len(state) != 9) { PyErr_SetObject(PyExc_ValueError, ("expected 9-item tuple in call to __setstate__; got %s" % state).ptr() ); throw_error_already_set(); } l.set_clear_label_cache(extract<bool>(state[0])); l.set_min_zoom(extract<double>(state[1])); l.set_max_zoom(extract<double>(state[2])); l.set_queryable(extract<bool>(state[3])); mapnik::parameters params = extract<parameters>(state[4]); l.set_datasource(datasource_cache::instance().create(params)); boost::python::list s = extract<boost::python::list>(state[5]); for (int i=0;i<len(s);++i) { l.add_style(extract<std::string>(s[i])); } l.set_cache_features(extract<bool>(state[6])); }