Como o SWIG quebra um mapa <string, string> em Pytho
Estou usando o SWIG 2.0 para criar um wrapper Python para uma biblioteca C ++. Um método possui um argumento do tipo "const std :: map &". Felizmente, o SWIG gera um invólucro para ele, mas não consigo descobrir como invocar o método. Se eu passar, por exemplo, {"a": "b"} para esse argumento, recebo o erro "NotImplementedError: número ou tipo errado de argumentos para a função sobrecarregada".
Eu olhei para o arquivo .cxx gerado na esperança de esclarecer, mas não o fez. Aqui está o código que processa esse argumento:
res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_std__mapT_std__string_std__string_t, 0 | 0);
if (!SWIG_IsOK(res4)) {
SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_Context" "', argument " "4"" of type '" "std::map< std::string,std::string > const &""'");
}
Sabe claramente que o argumento existe e que deve ser algo que é convertido em um mapa. Mas não consigo descobrir o que realmente quer que eu aceite.