From cd14b919d3f15e2bb686fdbc0715ec269aa9d3a1 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 7 May 2009 01:05:09 -0400 Subject: [PATCH] Add equality predicate to single_valued(). --- pytools/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pytools/__init__.py b/pytools/__init__.py index 7054e3a..819162f 100644 --- a/pytools/__init__.py +++ b/pytools/__init__.py @@ -297,7 +297,7 @@ def one(iterable): -def single_valued(iterable): +def single_valued(iterable, equality_pred=operator.eq): it = iter(iterable) try: first_item = it.next() @@ -306,7 +306,7 @@ def single_valued(iterable): def others_same(): for other_item in it: - if other_item != first_item: + if not equality_pred(other_item, first_item): raise ValueError, "non-single-valued iterable passed to 'single_valued()'" return True assert others_same() -- GitLab