diff options
| author | Sergey Schetinin <sergey@maluke.com> | 2011-09-26 10:52:30 +0300 |
|---|---|---|
| committer | Sergey Schetinin <sergey@maluke.com> | 2011-09-26 10:52:30 +0300 |
| commit | d1f47bb9cfb5b9f2fe68531d5bee1dd1557b2ed2 (patch) | |
| tree | 1ae67b9f5f7adbd9377c5491cb073525900d7f1a /webob/acceptparse.py | |
| parent | fec7df05e64faf0976c373f29c9d04ed3f7320b2 (diff) | |
| download | webob-d1f47bb9cfb5b9f2fe68531d5bee1dd1557b2ed2.tar.gz | |
remove Accept.best_matches(), add Accept.__iter__()
Diffstat (limited to 'webob/acceptparse.py')
| -rw-r--r-- | webob/acceptparse.py | 42 |
1 files changed, 11 insertions, 31 deletions
diff --git a/webob/acceptparse.py b/webob/acceptparse.py index 79f0c57..3f7f567 100644 --- a/webob/acceptparse.py +++ b/webob/acceptparse.py @@ -62,10 +62,17 @@ class Accept(object): pass yield (name, 1) - def __repr__(self): return '<%s(%r)>' % (self.__class__.__name__, str(self)) + def __iter__(self): + for m,q in sorted( + self._parsed_nonzero, + key=lambda i: i[1], + reverse=True + ): + yield m + def __str__(self): result = [] for mask, quality in self._parsed: @@ -171,21 +178,6 @@ class Accept(object): matched_by = mask return best_offer - def best_matches(self, fallback=None): - """ - Return all the matches in order of quality, with fallback (if - given) at the end. - """ - items = [i for i, q in sorted(self._parsed, key=lambda iq: -iq[1])] - if fallback: - for index, item in enumerate(items): - if self._match(item, fallback): - items[index:] = [fallback] - break - else: - items.append(fallback) - return items - def _match(self, mask, offer): _check_offer(offer) return mask == '*' or offer.lower() == mask.lower() @@ -193,11 +185,6 @@ class Accept(object): class NilAccept(object): - - """ - Represents an Accept header with no value. - """ - MasterClass = Accept def __repr__(self): @@ -208,9 +195,11 @@ class NilAccept(object): def __nonzero__(self): return False - __bool__ = __nonzero__ # python 3 + def __iter__(self): + return iter(()) + def __add__(self, item): if isinstance(item, self.MasterClass): return item @@ -247,12 +236,6 @@ class NilAccept(object): best_quality = quality return best_offer - def best_matches(self, fallback=None): - if fallback: - return [fallback] - else: - return [] - class NoAccept(NilAccept): def __contains__(self, item): return False @@ -352,6 +335,3 @@ def accept_property(header, rfc_section, def fdel(req): del req.environ[key] return property(fget, fset, fdel, doc) - - - |
