diff options
author | W. Trevor King <wking@drexel.edu> | 2009-07-21 16:19:02 -0400 |
---|---|---|
committer | W. Trevor King <wking@drexel.edu> | 2009-07-21 16:19:02 -0400 |
commit | 257df923b9657a03d7a394d7862a449c2cd342dc (patch) | |
tree | 7f014c0b36212772085ee78101f99792c109972e /libbe | |
parent | 049825b147e291e11542b4c06ea7800cb0671bd6 (diff) | |
download | bugseverywhere-257df923b9657a03d7a394d7862a449c2cd342dc.tar.gz |
Bug._extra_strings_check_fn() guts now utility.iterable_full_of_strings().
Diffstat (limited to 'libbe')
-rw-r--r-- | libbe/bug.py | 11 | ||||
-rw-r--r-- | libbe/utility.py | 21 |
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() |