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