BUGS
Max-Age handling should take account of RFC 2616 age rules, according to
 RFC 2965.  Would be nice to get rid of ._now instance attribute if &
 when fix this (be careful with maxage=0 case -- means delete cookie).
De-facto rules may have gotten slightly saner with recent MSIEs, so might
 be possible to simplify (or at least tighten up) some things.  I haven't
 tested much.  eg.:
 MS docs claim that .co.jp (two dots but country-code TLD) is blocked.
 MS docs: "Session cookies that specify a domain are rejected".  I don't
  remember that, and I don't understand what the purpose would be...
 Support any more bits of RFC 2109 that IE / Mozilla have added to their
  Netscape protocol implementations (there may not be any, dunno).
Sketch overlap with P3P protocol in docs, once I figure out exactly what
 the relationship is.  I think IE 6 and Mozilla implement it.
AbstractHTTPHandler should be updated to use HTTP{S,}Connection.
 Probably better, Either AbstractHTTPHandler or auth (/proxy?) classes
 need to use httpx and this interface adjusted as appropriate (if Greg
 Stein has implemented everything he wanted to do, which I don't think he
 has).

TESTS
Better round-trip tests for LWPCookieJar and MozillaCookieJar.
Test MSIECookies on Windows (only tested on wine recently).
Test thread safety.  How??
Add doctest running to test.py -- see Zope's test.py.
Add pychecker to release script somehow?  Need to figure out how to
 suppress warnings -- see Zope's test.py.
Write more tests.

PLANNED FEATURES
(some of this stuff is really for the standard library rather than
 this package -- eg. file upload function)
urlretrieve for urllib2.
Robot rules observance processor (using robotparser module).
 Exception raised should contain Request instance, I suppose.
TidyProcessor -- mxTidy / uTidylib.
Timeouts (PEP 42, bug 723287).  Document lack of DNS timeout (say should
 use separate process?? -- that's what squid does).
File upload function(s).  Remember need content-type HTTP header, not
 just request body data.
HTTP connection caching.
Functions for conditional fetches?
Embedded object fetcher (eg. images) for functional testing.
Content type negotiation (see LWP's HTTP::Negotiate)?
305 redirections.
HTTPS / CONNECT (see 515003)?
gzip / deflate / compress encoding processors (send Accept-Encoding (but
 doesn't httplib send this too?), unzip returned data if it *is*
 gzipped/zipped (Transfer-Encoding & optionally Content-Encoding)).
data: scheme?  urllib implements it, but does anybody use it?
Konqueror cookie file support (~/.kde/share/apps/kcookiejar/cookies).
Opera cookie file support (http://www.opera.com/docs/fileformats/).
Support for cookperm.txt (Mozilla file format; cookie permissions,
 presumably block / accept list).
Add a save method to MSIECookieJar? -- just iterate through
 self._cookies calling InternetSetCookie() for each.
Use wininet InternetSetCookie / InternetGetCookie (ctypes).
Link DOMForm's JavaScript handling to CookieJar.

TODO FOR PYTHON STD. LIB.
1. Python 2.4 version:
   Submit patch for Request headers methods: .get_header(),
    .header_items()  (required for request_host() and
    AbstractHTTPHandler, not to cause confusion with having headers twice,
    once in .headers, once in .unredirected_hdrs).
   Document in standard Python format.
    This needs to be done as part of improving urllib2 docs in general.
   Get rid of 1.5.2 compatibility stuff, replace iterator with generator.
   Drop all CJs except for CookieJar and MozillaCookieJar (maybe MSIE
    stuff is appropriate for win32all once rest is in std. lib?).
   Drop non-cookie features (SeekableProcessor, HTTPEquivProcessor,
    HTTPRefererProcessor, HTTPRefreshProcessor).
   Drop cut-n-pasted urllib2 stuff.
   Drop _Debug (just import warnings and logging direct).
   Combine code into one or two modules.
   Remove VERSION string.
2. Ask for comments on python-dev.
   Name?  cookielib?
   Sort out verifiability / Request problem.  Should there be a Request
    subclass?  Should the needed attributes have .__double_underscores?
    What about HEAD and PUT? -- I suppose __init__ needs to grow a method
    arg.
   What should happen with seek_wrapper?  It's needed for
    HTTPEquivProcessor.  Could use Andrew Dalke's ReseekFile instead,
    which is simpler.  Should it be a separate module?
3. Rest of stuff: UserAgent, HTTPEquivProcessor, HTTPRefreshProcessor,
    etc.
