diff options
Diffstat (limited to 'netlib')
| -rw-r--r-- | netlib/http/headers.py | 9 | ||||
| -rw-r--r-- | netlib/http/http2/utils.py | 6 | ||||
| -rw-r--r-- | netlib/multidict.py | 24 | 
3 files changed, 19 insertions, 20 deletions
diff --git a/netlib/http/headers.py b/netlib/http/headers.py index f052a53b..413add87 100644 --- a/netlib/http/headers.py +++ b/netlib/http/headers.py @@ -148,6 +148,15 @@ class Headers(multidict.MultiDict):          value = _always_bytes(value)          super(Headers, self).insert(index, key, value) +    def items(self, multi=False): +        if multi: +            return ( +                (_native(k), _native(v)) +                for k, v in self.fields +            ) +        else: +            return super(Headers, self).items() +      def replace(self, pattern, repl, flags=0):          """          Replaces a regular expression pattern with repl in each "name: value" diff --git a/netlib/http/http2/utils.py b/netlib/http/http2/utils.py index 4c01952d..164bacc8 100644 --- a/netlib/http/http2/utils.py +++ b/netlib/http/http2/utils.py @@ -7,9 +7,9 @@ def parse_headers(headers):      scheme = headers.get(':scheme', 'https').encode()      path = headers.get(':path', '/').encode() -    headers.clear(":method") -    headers.clear(":scheme") -    headers.clear(":path") +    headers.pop(":method", None) +    headers.pop(":scheme", None) +    headers.pop(":path", None)      host = None      port = None diff --git a/netlib/multidict.py b/netlib/multidict.py index 50c879d9..51053ff6 100644 --- a/netlib/multidict.py +++ b/netlib/multidict.py @@ -170,18 +170,10 @@ class _MultiDict(MutableMapping, basetypes.Serializable):          else:              return super(_MultiDict, self).items() -    def clear(self, key): -        """ -            Removes all items with the specified key, and does not raise an -            exception if the key does not exist. -        """ -        if key in self: -            del self[key] -      def collect(self):          """              Returns a list of (key, value) tuples, where values are either -            singular if threre is only one matching item for a key, or a list +            singular if there is only one matching item for a key, or a list              if there are more than one. The order of the keys matches the order              in the underlying fields list.          """ @@ -204,18 +196,16 @@ class _MultiDict(MutableMapping, basetypes.Serializable):          .. code-block:: python              # Simple dict with duplicate values. -            >>> d -            MultiDictView[("name", "value"), ("a", "false"), ("a", "42")] +            >>> d = MultiDict([("name", "value"), ("a", False), ("a", 42)])              >>> d.to_dict()              {                  "name": "value", -                "a": ["false", "42"] +                "a": [False, 42]              }          """ -        d = {} -        for k, v in self.collect(): -            d[k] = v -        return d +        return { +            k: v for k, v in self.collect() +        }      def get_state(self):          return self.fields @@ -307,4 +297,4 @@ class MultiDictView(_MultiDict):      @fields.setter      def fields(self, value): -        return self._setter(value) +        self._setter(value)  | 
