diff options
author | hut <hut@lavabit.com> | 2010-01-20 20:44:11 +0100 |
---|---|---|
committer | hut <hut@lavabit.com> | 2010-01-20 20:44:11 +0100 |
commit | 0fd1c723e2518b55eeea58b10cc9040040c27954 (patch) | |
tree | 716f4d3eb02f5956e63ebb55fa57213743d3aa6a | |
parent | 58d4900c1bae503461d7a810cafb528515191307 (diff) | |
download | ranger-0fd1c723e2518b55eeea58b10cc9040040c27954.tar.gz |
added flatten function
-rw-r--r-- | ranger/ext/flatten.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/ranger/ext/flatten.py b/ranger/ext/flatten.py new file mode 100644 index 00000000..19342efe --- /dev/null +++ b/ranger/ext/flatten.py @@ -0,0 +1,27 @@ +# Copyright (c) 2009, 2010 hut <hut@lavabit.com> +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +def flatten(lst): + """ + Flatten an iterable. + + All contained tuples, lists and sets are replaced by their + elements and flattened as well. + """ + for elem in lst: + if isinstance(elem, (tuple, list, set)): + for subelem in flatten(elem): + yield subelem + else: + yield elem |