[Python-Dev] Adding timeout to socket.py and httplib.py (original) (raw)

Josiah Carlson jcarlson at uci.edu
Tue Mar 20 22:16:57 CET 2007


Facundo Batista <facundo at taniquetil.com.ar> wrote:

Josiah Carlson wrote: > sentinel = object() > > def connect(HOST, PORT, timeout=sentinel): > ... > if timeout is not sentinel: > sock.settimeout(timeout) > ... > > A keyword argument via **kwargs is also fine. I have no preference.

I do. The way you showed here, I'm not restricting user options. I think this is better.

But the kwargs doesn't restrict options either...

def connect(address, **kwargs): ... if 'timeout' in kwargs: sock.settimeout(kwargs['timeout']) ...

With that method you can include timeout=None, and it also doesn't restrict what the user could pass as a value to timeout. It requires that you pass timeout explicitly, but that's a (relatively inconsequential) API decision.



More information about the Python-Dev mailing list