Protocol/Connection based timeout facility for urllib2
Protocol based timeout facility for urllib2.
Currently only support HTTP and HTTPS.
Achived by inheriting httplib.HTTPConnection and httplib.HTTPSConnection classes and provide a timeout version for both. Timeout has been carefully implemented per connection base. A HTTPConnectionTimeoutError or HTTPSConnectionTimeoutError would be raised instead of the general socket.error so that urlib2 wouldn’t throw out URLError exception when timeout is hit.