[Python-Dev] timeout options in high-level networking modules
Jim Fulton
jim at zope.com
Thu Dec 22 19:56:49 CET 2005
Steve Holden wrote:
> Jim Fulton wrote:
>
>>Yesterday, I needed to make a web request in a program (actually a test)
>>that could block indefinately, so I needed to set a socket timeout.
>>Unfortunately, AFAICT none of urllib, urllib2, httplib provide options to set
>>the timeout on the sockets they use. I ended up having to roll my own
>>code to make the request.
>>
>>It would be nice if high-level network modules, like the ones mentioned
>>above, had options to provide a timeout. (For example, urlopen could
>>grow an optional timout argument.)
>>
>>Thoughts?
>>
>>If we think this is a good idea, then someone who has time could start chipping
>>away at it. I'm happy to work on this *if* I can find time. This would make
>>a nice easy sprint project at PyCon too.
>>
>
> That's a very good idea. At present the only option one has is to set a
> global socket.defaulttimout() or somehow monkey-patch the modules you
> want to use, and neither of those options are entirely satisfactory.
Dang, I missed that. I could have abused that yesterday. :)
> Basically any method that can create a new TCP connection should acquire
> an optional timeout=None parameter, right?
Yup, except that None shouldn't be the "I didn't pass anything"
marker, since None is a valid settimeout parameter.
Jim
--
Jim Fulton mailto:jim at zope.com Python Powered!
CTO (540) 361-1714 http://www.python.org
Zope Corporation http://www.zope.com http://www.zope.org
More information about the Python-Dev
mailing list