[Alan Kennedy] >> I see that your updated socket.connect() method takes a timeout >> parameter, which defaults to None if not present, e.g.
[Facundo Batista] > I did NOT update a connect() method. I created a connect() function, in > the module socket.py (there's also a connect() method in the socket > object, but I didn't touch it). Sorry, my mistake. I realise now that you're creating a whole new function, dedicated to the special (but extremely common) case of creating a fully connected client socket. My fault for not realising that first off. So, a question I would ask is: Is "connect" the right name for that function? - Will users get confused between the "connect" function and socket.connect method? They are doing different things. - Will the naming give rise to the question "the socket-module-level function connect() takes a timeout parameter, why doesn't the socket-method connect() take a timeout parameter as well?" Perhaps a better name might be "create_connected_client_socket", or something equally descriptive? Another question I would ask is: "How do I ensure that my newly created connected client socket is in blocking mode, *without* making any assumptions about the value of socket.getdefaulttimeout()?" If the answer to this question is "you can't", then I would suggest a function signature and implementation like this instead def connect(address, **kwargs): [snip] if kwargs.has_key('timeout'): sock.settimeout(kwargs['timeout']) [snip] This would of course mean that the user would have to explicitly name the 'timeout' parameter, but that's a good thing in this case, IMO. Regards, Alan. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com