This is a really trivial patch to add support for the CURLOPT_USERNAME and CURLOPT_PASSWORD options (and their _PROXY equivalents), which affect the same parts of libcurl's state that CURLOPT_USERPWD does but which don't require you to combine the username and password into one string first. (Libcurl just immediately parses it apart again anyway.)
I've tested against libcurl-7.21.0, and looked through the source for libcurl 7.20.0 and 7.19.5 to verify that it looks like it should still do the right things there (in particular that curl_easy_setopt(..., NULL) does the reasonable thing with these options).
diff against cvs HEAD
Applied, thanks!
https://github.com/p/pycurl/pull/32