aboutsummaryrefslogtreecommitdiffstats
path: root/libbe
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
parent049825b147e291e11542b4c06ea7800cb0671bd6 (diff)
downloadbugseverywhere-257df923b9657a03d7a394d7862a449c2cd342dc.tar.gz
Bug._extra_strings_check_fn() guts now utility.iterable_full_of_strings().
Diffstat (limited to 'libbe')
-rw-r--r--libbe/bug.py11
-rw-r--r--libbe/utility.py21
2 files changed, 22 insertions, 10 deletions
diff --git a/libbe/bug.py b/libbe/bug.py
index e3dc1e0..f3448e2 100644
--- a/libbe/bug.py
+++ b/libbe/bug.py
@@ -187,15 +187,8 @@ class Bug(settings_object.SavedSettingsObject):
doc="An integer version of .time_string")
def _extra_strings_check_fn(value):
- "Require an iterable full of strings"
- if value == settings_object.EMPTY:
- return True
- elif not hasattr(value, "__iter__"):
- return False
- for x in value:
- if type(x) not in types.StringTypes:
- return False
- return True
+ return utility.iterable_full_of_strings(value, \
+ alternative=settings_object.EMPTY)
def _extra_strings_change_hook(self, old, new):
self.extra_strings.sort() # to make merging easier
self._prop_save_settings(old, new)
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()