Collections¶
These datastructures are used to implement the behaviour of various urllib3 components in a decoupled and application-agnostic design.
-
class
urllib3._collections.
RecentlyUsedContainer
(maxsize=10, dispose_func=None)¶ Provides a thread-safe dict-like container which maintains up to
maxsize
keys while throwing away the least-recently-used keys beyondmaxsize
.Parameters: - maxsize – Maximum number of recent elements to retain.
- dispose_func – Every time an item is evicted from the container,
dispose_func(value)
is called. Callback which will get called
-
ContainerCls
¶ alias of
OrderedDict
-
class
urllib3._collections.
HTTPHeaderDict
(headers=None, **kwargs)¶ Parameters: - headers – An iterable of field-value pairs. Must not contain multiple field names when compared case-insensitively.
- kwargs – Additional field-value pairs to pass in to
dict.update
.
A
dict
like container for storing HTTP Headers.Field names are stored and compared case-insensitively in compliance with RFC 7230. Iteration provides the first case-sensitive key seen for each case-insensitive pair.
Using
__setitem__
syntax overwrites fields that compare equal case-insensitively in order to maintaindict
‘s api. For fields that compare equal, instead create a newHTTPHeaderDict
and use.add
in a loop.If multiple fields that are equal case-insensitively are passed to the constructor or
.update
, the behavior is undefined and some will be lost.>>> headers = HTTPHeaderDict() >>> headers.add('Set-Cookie', 'foo=bar') >>> headers.add('set-cookie', 'baz=quxx') >>> headers['content-length'] = '7' >>> headers['SET-cookie'] 'foo=bar, baz=quxx' >>> headers['Content-Length'] '7'
-
add
(key, val)¶ Adds a (name, value) pair, doesn’t overwrite the value if it already exists.
>>> headers = HTTPHeaderDict(foo='bar') >>> headers.add('Foo', 'baz') >>> headers['foo'] 'bar, baz'
-
extend
(*args, **kwargs)¶ Generic import function for any type of header-like object. Adapted version of MutableMapping.update in order to insert items with self.add instead of self.__setitem__
-
classmethod
from_httplib
(message)¶ Read headers from a Python 2 httplib message object.
-
getallmatchingheaders
(key)¶ Returns a list of all the values for the named field. Returns an empty list if the key doesn’t exist.
-
getheaders
(key)¶ Returns a list of all the values for the named field. Returns an empty list if the key doesn’t exist.
-
getlist
(key)¶ Returns a list of all the values for the named field. Returns an empty list if the key doesn’t exist.
-
iget
(key)¶ Returns a list of all the values for the named field. Returns an empty list if the key doesn’t exist.
-
iteritems
()¶ Iterate over all header lines, including duplicate ones.
-
iterkeys
() → an iterator over the keys of D¶
-
itermerged
()¶ Iterate over all headers, merging duplicate ones together.
-
itervalues
() → an iterator over the values of D¶
-
pop
(k[, d]) → v, remove specified key and return the corresponding value.¶ If key is not found, d is returned if given, otherwise KeyError is raised.