diff options
author | Nicolas Chauvat <nicolas.chauvat@logilab.fr> | 2008-04-07 21:01:37 +0200 |
---|---|---|
committer | Nicolas Chauvat <nicolas.chauvat@logilab.fr> | 2008-04-07 21:01:37 +0200 |
commit | 4499e6e947d5334d65747f109ef2260486a8c76b (patch) | |
tree | 17d4aed6bdc44d2e2e526eadff95f2a51af2d2de /__init__.py | |
parent | 4a2e38261c9976311813e773ecb30eca1e471101 (diff) | |
download | logilab-common-4499e6e947d5334d65747f109ef2260486a8c76b.tar.gz |
fixme: improve flatten
Diffstat (limited to '__init__.py')
-rw-r--r-- | __init__.py | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/__init__.py b/__init__.py index e1ef63c..006f92b 100644 --- a/__init__.py +++ b/__init__.py @@ -93,7 +93,30 @@ class nullobject(object): def __nonzero__(self): return False -# XXX move in a specific module +# flatten ----- +# XXX move in a specific module and use yield instead +# do not mix flatten and translate +# +# def iterable(obj): +# try: iter(obj) +# except: return False +# return True +# +# def is_string_like(obj): +# try: obj +'' +# except (TypeError, ValueError): return False +# return True +# +#def is_scalar(obj): +# return is_string_like(obj) or not iterable(obj) +# +#def flatten(seq): +# for item in seq: +# if is_scalar(item): +# yield item +# else: +# for subitem in flatten(item): +# yield subitem def flatten(iterable, tr_func=None, results=None): """flatten a list of list with any level |