From 439765f442117ff9d4d15d87789bc5aefb780d6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Pluta?= Date: Fri, 12 Jul 2019 23:12:09 +0200 Subject: [PATCH] Move 'flat' function definition to standard library --- smnp/module/iterable/__init__.py | 4 ++-- smnp/module/iterable/function/flat.py | 23 ----------------------- smnp/runtime/evaluators/imports.py | 2 +- 3 files changed, 3 insertions(+), 26 deletions(-) delete mode 100644 smnp/module/iterable/function/flat.py diff --git a/smnp/module/iterable/__init__.py b/smnp/module/iterable/__init__.py index ecb7f65..a3fc3b2 100644 --- a/smnp/module/iterable/__init__.py +++ b/smnp/module/iterable/__init__.py @@ -1,4 +1,4 @@ -from smnp.module.iterable.function import combine, flat, map, range, get +from smnp.module.iterable.function import combine, map, range, get -functions = [ combine.function, flat.function, map.function, range.function ] +functions = [ combine.function, map.function, range.function ] methods = [ get.function ] \ No newline at end of file diff --git a/smnp/module/iterable/function/flat.py b/smnp/module/iterable/function/flat.py deleted file mode 100644 index f83c1ee..0000000 --- a/smnp/module/iterable/function/flat.py +++ /dev/null @@ -1,23 +0,0 @@ -from smnp.function.model import Function -from smnp.function.signature import varargSignature -from smnp.type.model import Type -from smnp.type.signature.matcher.type import allTypes - -_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') \ No newline at end of file diff --git a/smnp/runtime/evaluators/imports.py b/smnp/runtime/evaluators/imports.py index 11b56a1..88419f4 100644 --- a/smnp/runtime/evaluators/imports.py +++ b/smnp/runtime/evaluators/imports.py @@ -7,5 +7,5 @@ class ImportEvaluator(Evaluator): @classmethod def evaluator(cls, node, environment): source = node.source - newEnvironment = Interpreter.interpretFile(source.value) + newEnvironment = Interpreter.interpretFile(source.value, baseEnvironment=environment) environment.extend(newEnvironment) \ No newline at end of file