[Python-Dev] Adding timeout to socket.py and httplib.py
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.
- Josiah
More information about the Python-Dev
mailing list