[meld: 2/3] issue: #misc.all_same - make all_same accept iterables; commit: use iterables and lazy match content



commit 9d1a330580902d23741156f43061e14234e109bb
Author: hugosenari <hugosenari gmail com>
Date:   Tue Jul 3 00:54:28 2018 -0300

    issue: #misc.all_same - make all_same accept iterables; commit: use iterables and lazy match content

 meld/misc.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/meld/misc.py b/meld/misc.py
index 21d52915..49f77dc4 100644
--- a/meld/misc.py
+++ b/meld/misc.py
@@ -281,9 +281,15 @@ def get_common_theme():
     return fill_colours, line_colours
 
 
-def all_same(lst):
+def all_same(iterable):
     """Return True if all elements of the list are equal"""
-    return not lst or lst.count(lst[0]) == len(lst)
+    sample, has_no_sample = None, True
+    for item in iterable or ():
+        if has_no_sample:
+            sample, has_no_sample = item, False
+        elif sample != item:
+            return False
+    return True
 
 
 def shorten_names(*names):


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]