summaryrefslogtreecommitdiff
path: root/webob/acceptparse.py
diff options
context:
space:
mode:
authorSergey Schetinin <sergey@maluke.com>2011-09-26 10:52:30 +0300
committerSergey Schetinin <sergey@maluke.com>2011-09-26 10:52:30 +0300
commitd1f47bb9cfb5b9f2fe68531d5bee1dd1557b2ed2 (patch)
tree1ae67b9f5f7adbd9377c5491cb073525900d7f1a /webob/acceptparse.py
parentfec7df05e64faf0976c373f29c9d04ed3f7320b2 (diff)
downloadwebob-d1f47bb9cfb5b9f2fe68531d5bee1dd1557b2ed2.tar.gz
remove Accept.best_matches(), add Accept.__iter__()
Diffstat (limited to 'webob/acceptparse.py')
-rw-r--r--webob/acceptparse.py42
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)
-
-
-