[Python-ideas] socket.sendall() "counter" parameter

Masklinn masklinn at masklinn.net
Fri Apr 18 14:12:01 CEST 2014


On 2014-04-18, at 13:52 , Chris Angelico <rosuav at gmail.com> wrote:

> On Fri, Apr 18, 2014 at 9:34 PM, Giampaolo Rodola' <g.rodola at gmail.com> wrote:
>> With current socket.sendall() implementation if an error occurs it's
>> impossible to tell how much data was sent. As such I'm wondering whether it
>> would make sense to add a "counter" parameter which gets incremented
>> internally:
>> 
>> sent = 0
>> try:
>>     sock.sendall(data, counter=sent)
>> except socket.error as err:
>>     priint("only %s bytes were sent" % sent)
> 
> That doesn't work with a straight integer; there's no way for
> sendall() to modify your integer. It'd need to be some mutable type,
> or else the new value would have to be returned somewhere.

sendall could just raise a subtype of socket.error with the
actually-sent-bytes count attached couldn't it?


More information about the Python-ideas mailing list