ANN: ClientCookie 1.0.0a released
http://wwwsearch.sourceforge.net/ClientCookie/ 0.4.19 is still the stable version. 0.4.x will not be actively maintained as soon as a final 1.0 release is out (which will happen when Python 2.4 is released). I will likely fix bugs in 0.4.x if asked, though. 1.0.0a is an alpha release of a "final" version, parts of which will be in Python 2.4, as new module cookielib and updates to urllib2. Although still alpha, the interface is now unlikely to change. This release contains lots of changes to bring ClientCookie into line with cookielib and Python 2.4's urllib2. Once a final patch has been applied to cookielib (I'm just about to upload the patch), anything in the ClientCookie interface that differs from 2.4's urllib2 / cookielib is probably a bug. ClientCookie will remain backwards-compatible with older Pythons. However, this release requires Python 2.0 or newer. Python 1.5.2 is no longer supported. For detailed history, please see the ChangeLog: http://wwwsearch.sourceforge.net/ClientCookie/src/ChangeLog.txt and the SVN repository: http://codespeak.net/svn/user/jjlee/wwwsearch/ClientCookie/trunk/ Backwards-incompatible changes from 0.4.x to 1.0.x: * RFC 2965 is now off by default. * AbstractHTTPHandler (hence all HTTP functionality) now uses httplib.HTTPConnection instead of httplib.HTTP. This means that ClientCookie now claims to be an HTTP/1.1 client instead of 1.0. Same goes for HTTPS. * CookieJar now knows nothing about files. If you want to write cookies to a file, and don't need to use a browser-compatible file format, use LWPCookieJar. CookieJars that know about files now derive from FileCookieJar. * FileCookieJar.load(), .revert() and .save() now raise LoadError in addition to IOError. * CookieJar.cookies attribute is now private. * Renamed ClientCookie.Request.iter_headers() to .header_items(). * Request.unverifiable and .origin_req_host are now private, replaced by methods .get_unverifiable() and .get_origin_req_hoot(). The constructor now has arguments to set these attributes. Some old code still returns urllib2.Request objects: in that case, set these attributes directly on the urllib2.Request, and RequestUpgradeProcessor will carry them over when upgrading them to ClientCookie.Request objects (yuck). * Cookie.rest is now private: use has_nonstandard_attr(), get_nonstandard_attr() and set_nonstandard_attr() instead. ClientCookie is a Python module for handling HTTP cookies on the client side, useful for accessing web sites that require cookies to be set and then returned later. It also provides some other (optional) useful stuff: HTTP-EQUIV and Refresh handling, automatic adding of the Referer [sic] header, robots.txt observance and lazily-seek()able responses. These extras are implemented using an extension that makes it easier to add new functionality to urllib2. It has developed from a port of Gisle Aas' Perl module HTTP::Cookies, from the libwww-perl library. Simple usage: import ClientCookie response = ClientCookie.urlopen("http://www.example.com/") This function behaves identically to urllib2.urlopen, except that it deals with cookies automatically. That's probably all you need to know. John
participants (1)
-
jjl@pobox.com