title: How does SWIG wrap a map<string,string> in Python?
body: <p>I'm using SWIG 2.0 to create a Python wrapper for a C++ library.  One method has an argument of type "const std::map&amp;".  SWIG happily generates a wrapper for it, but I can't figure out how to invoke the method.  If I pass, for example, {"a":"b"} for that argument, I get a "NotImplementedError: Wrong number or type of arguments for overloaded function" error.</p>
  
  <p>I looked at the generated .cxx file in the hope it would clarify, but it didn't.  Here's the code that processes that argument:</p>
  
  <pre><code>res4 = SWIG_ConvertPtr(obj3, &amp;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&lt; std::string,std::string &gt; const &amp;""'"); 
  }
  </code></pre>
  
  <p>It clearly knows that argument exists, and that it's supposed to be something that gets converted to a map.  But I can't figure out what it actually wants me to pass for it.</p>