HTTPConnection.send

2013-03-29 Thread dspublic
Hi!

I have a problem with HTTPConnection object send() method (pyver3.3.1). I want 
to send data from file-like object with HTTPConnection.send( f ), and I get a 
"data should be a bytes-like object or an iterable, ..." exception. I have 
investigated a send method, and discovered a problem: if data has a read 
attribute, send it , and try send it again with self.sock.sendall(data). My 
opinion is need an "else" after the "if hasattr(data, "read")"

Please, somebody help me. Does it a real BUG or my mistake?

http.client.py >

if hasattr(data, "read") :
if self.debuglevel > 0:
print("sendIng a read()able")
encode = False
try:
mode = data.mode
except AttributeError:
# io.BytesIO and other file-like objects don't have a `mode`
# attribute.
pass
else:
if "b" not in mode:
encode = True
if self.debuglevel > 0:
print("encoding file using iso-8859-1")
while 1:
datablock = data.read(blocksize)
if not datablock:
break
if encode:
datablock = datablock.encode("iso-8859-1")
self.sock.sendall(datablock)
ELSE: # i guess missing 
try:
self.sock.sendall(data)
except TypeError:
if isinstance(data, collections.Iterable):
  for d in data:
  self.sock.sendall(d)
  else:
  raise TypeError("data should be a bytes-like object "
"or an iterable, got %r" % type(data))
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: HTTPConnection.send

2013-03-29 Thread dspublic
Problematical python versions: 3.2+ (2.x, 3.0, 3.1 ok)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: HTTPConnection.send

2013-03-29 Thread dspublic
Thanx for confirmations...

I have reported http://bugs.python.org/issue17575 
-- 
http://mail.python.org/mailman/listinfo/python-list