[issue3276] httplib.HTTPConnection._send_request should not blindly assume dicts for headers

2021-06-20 Thread Irit Katriel


Irit Katriel  added the comment:

Indeed, as Terry wrote the assumption is that header is a mapping (not 
necessarily a dict). It is not hard to implement a Multimap that has this API:

import collections.abc

class Multimap(collections.abc.Mapping):
def __init__(self):
self.data = collections.defaultdict(list)

def __getitem__(self, key):
return self.data[key]

def __setitem__(self, key, value):
self.data[key].append(value)

def __iter__(self):
yield from self.data

def items(self):
for k in list(self.data.keys()):
for v in list(self.data[k]):
yield (k,v)

def __len__(self):
return sum([len(v) for v in self.data.values()])

mm = Multimap()
mm['1'] = 'a'
mm['1'] = 'aa'
mm['1'] = 'aaa'
mm['2'] = 'b'
mm['3'] = 'c'
mm['3'] = 'cc'
print(f'len = {len(mm)}')
print(f'mm.items() = {list(mm.items())}')

Output:
len = 6
mm.items() = [('1', 'a'), ('1', 'aa'), ('1', 'aaa'), ('2', 'b'), ('3', 'c'), 
('3', 'cc')]

--
nosy: +iritkatriel
resolution: out of date -> not a bug
stage:  -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue3276] httplib.HTTPConnection._send_request should not blindly assume dicts for headers

2011-12-04 Thread Piotr Dobrogost

Changes by Piotr Dobrogost p...@python.dobrogost.net:


--
nosy: +piotr.dobrogost
status: pending - open

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue3276
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue3276] httplib.HTTPConnection._send_request should not blindly assume dicts for headers

2010-06-09 Thread Terry J. Reedy

Terry J. Reedy tjre...@udel.edu added the comment:

This is a feature request for now old versions. It would have to be 
reformulated as a feature request for a 3.2 module. I do not see the dict 
(mapping now?) requirement being changed.

--
nosy: +tjreedy
resolution:  - out of date
status: open - pending
type:  - feature request
versions:  -Python 2.1.1, Python 2.1.2, Python 2.2, Python 2.2.1, Python 2.2.2, 
Python 2.2.3, Python 2.3, Python 2.4

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue3276
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue3276] httplib.HTTPConnection._send_request should not blindly assume dicts for headers

2008-07-03 Thread toxik

New submission from toxik [EMAIL PROTECTED]:

Presently it's impossible to use httplib.HTTPConnection.request and send 
the several headers with the same name. This is because _send_request 
assumes a dict is passed in, or a dict-like interface. Obviously one could 
make a list subclass or some such and give it an iteritems that returns 
itself, but IMHO the solution is to fix httplib.

Attached patch changes the current behavior to using iteritems only if it 
exists, otherwise iterate directly (which would fit with sequences of two-
tuples).

--
components: Library (Lib)
files: httplib.py.diff
keywords: patch
messages: 69234
nosy: ludvig.ericson
severity: normal
status: open
title: httplib.HTTPConnection._send_request should not blindly assume dicts for 
headers
versions: Python 2.1.1, Python 2.1.2, Python 2.2, Python 2.2.1, Python 2.2.2, 
Python 2.2.3, Python 2.3, Python 2.4, Python 2.5
Added file: http://bugs.python.org/file10807/httplib.py.diff

___
Python tracker [EMAIL PROTECTED]
http://bugs.python.org/issue3276
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com