Move 'iterable' module

This commit is contained in:
Bartłomiej Pluta
2019-07-09 22:16:10 +02:00
parent 82bc9997c8
commit e3f9cb6551
10 changed files with 14 additions and 6 deletions

View File

@@ -0,0 +1,23 @@
from smnp.library.model import Function
from smnp.library.signature import varargSignature, allTypes
from smnp.type.model import Type
_signature = varargSignature(allTypes())
def _function(env, vararg):
return Type.list(doFlat(vararg, [])).decompose()
def doFlat(input, output=None):
if output is None:
output = []
for item in input:
if item.type == Type.LIST:
doFlat(item.value, output)
else:
output.append(item)
return output
function = Function(_signature, _function, 'flat')