first prototype
This commit is contained in:
33
zoetrope/utils.py
Normal file
33
zoetrope/utils.py
Normal file
@ -0,0 +1,33 @@
|
||||
|
||||
def unseq(seq):
|
||||
return seq[0] if len(seq) == 1 else seq
|
||||
|
||||
|
||||
|
||||
#def flatten(obj):
|
||||
# try:
|
||||
# iter(obj)
|
||||
# except TypeError:
|
||||
# return [obj]
|
||||
# else:
|
||||
# res = []
|
||||
# for i in obj:
|
||||
# res.extend(flatten(i))
|
||||
# return res
|
||||
|
||||
|
||||
|
||||
def flatten(obj):
|
||||
return list(iflatten(obj))
|
||||
|
||||
def iflatten(obj):
|
||||
try:
|
||||
iterator = iter(obj)
|
||||
except TypeError:
|
||||
yield obj
|
||||
else:
|
||||
for item in iterator:
|
||||
yield from iflatten(item)
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user