aboutsummaryrefslogtreecommitdiffstats
path: root/libbe/utility.py
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2009-07-21 16:19:02 -0400
committerW. Trevor King <wking@drexel.edu>2009-07-21 16:19:02 -0400
commit257df923b9657a03d7a394d7862a449c2cd342dc (patch)
tree7f014c0b36212772085ee78101f99792c109972e /libbe/utility.py
parent049825b147e291e11542b4c06ea7800cb0671bd6 (diff)
downloadbugseverywhere-257df923b9657a03d7a394d7862a449c2cd342dc.tar.gz
Bug._extra_strings_check_fn() guts now utility.iterable_full_of_strings().
Diffstat (limited to 'libbe/utility.py')
-rw-r--r--libbe/utility.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/libbe/utility.py b/libbe/utility.py
index f27d7eb..3df06b4 100644
--- a/libbe/utility.py
+++ b/libbe/utility.py
@@ -23,7 +23,6 @@ import time
import types
import doctest
-
def search_parent_directories(path, filename):
"""
Find the file (or directory) named filename in path or in any
@@ -106,5 +105,25 @@ def time_to_gmtime(str_time):
time_val = str_to_time(str_time)
return time_to_str(time_val)
+def iterable_full_of_strings(value, alternative=None):
+ """
+ Require an iterable full of strings.
+ >>> iterable_full_of_strings([])
+ True
+ >>> iterable_full_of_strings(["abc", "def", u"hij"])
+ True
+ >>> iterable_full_of_strings(["abc", None, u"hij"])
+ False
+ >>> iterable_full_of_strings(None, alternative=None)
+ True
+ """
+ if value == alternative:
+ return True
+ elif not hasattr(value, "__iter__"):
+ return False
+ for x in value:
+ if type(x) not in types.StringTypes:
+ return False
+ return True
suite = doctest.DocTestSuite()