You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemds.apache.org by ba...@apache.org on 2021/03/01 14:57:52 UTC
[systemds] branch master updated: [SYSTEMDS-2871] Python API
Autogenerator allow no docs
This is an automated email from the ASF dual-hosted git repository.
baunsgaard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/systemds.git
The following commit(s) were added to refs/heads/master by this push:
new 21b5027 [SYSTEMDS-2871] Python API Autogenerator allow no docs
21b5027 is described below
commit 21b5027934a0f7caa736bd123972e23c83186283
Author: baunsgaard <ba...@tugraz.at>
AuthorDate: Mon Mar 1 15:54:07 2021 +0100
[SYSTEMDS-2871] Python API Autogenerator allow no docs
---
scripts/builtin/dbscan.dml | 4 +-
scripts/builtin/gnmf.dml | 2 +-
scripts/builtin/lasso.dml | 2 +-
scripts/builtin/pnmf.dml | 2 +-
scripts/builtin/statsNA.dml | 2 +-
src/main/python/generator/generator.py | 127 +++++++++++----------
src/main/python/generator/parser.py | 92 +++++++--------
.../python/systemds/operator/algorithm/__init__.py | 75 ++++++++++--
.../algorithm/{__init__.py => builtin/abstain.py} | 27 +++--
.../systemds/operator/algorithm/builtin/als.py | 51 +++++++++
.../systemds/operator/algorithm/builtin/alsCG.py | 51 +++++++++
.../systemds/operator/algorithm/builtin/alsDS.py | 52 +++++++++
.../{__init__.py => builtin/alsPredict.py} | 28 +++--
.../systemds/operator/algorithm/builtin/arima.py | 53 +++++++++
.../systemds/operator/algorithm/builtin/bandit.py | 44 +++++++
.../algorithm/{__init__.py => builtin/bivar.py} | 32 ++++--
.../{__init__.py => builtin/components.py} | 26 +++--
.../{__init__.py => builtin/confusionMatrix.py} | 30 +++--
.../algorithm/{__init__.py => builtin/cor.py} | 25 ++--
.../algorithm/{__init__.py => builtin/cspline.py} | 27 +++--
.../{__init__.py => builtin/csplineDS.py} | 26 +++--
.../algorithm/{__init__.py => builtin/cvlm.py} | 27 +++--
.../algorithm/{__init__.py => builtin/dbscan.py} | 26 +++--
.../operator/algorithm/builtin/decisionTree.py | 49 ++++++++
.../{__init__.py => builtin/discoverFD.py} | 26 +++--
.../algorithm/{__init__.py => builtin/dist.py} | 25 ++--
.../{__init__.py => builtin/getAccuracy.py} | 27 +++--
.../algorithm/{__init__.py => builtin/glm.py} | 27 +++--
.../algorithm/{__init__.py => builtin/gmm.py} | 26 +++--
.../operator/algorithm/builtin/gmmPredict.py | 49 ++++++++
.../algorithm/{__init__.py => builtin/gnmf.py} | 26 +++--
.../{__init__.py => builtin/gridSearch.py} | 27 +++--
.../{__init__.py => builtin/hyperband.py} | 30 +++--
.../{__init__.py => builtin/img_brightness.py} | 25 ++--
.../algorithm/{__init__.py => builtin/img_crop.py} | 25 ++--
.../{__init__.py => builtin/img_mirror.py} | 25 ++--
.../{__init__.py => builtin/imputeByFD.py} | 26 +++--
.../{__init__.py => builtin/imputeByMean.py} | 25 ++--
.../{__init__.py => builtin/imputeByMedian.py} | 25 ++--
.../{__init__.py => builtin/intersect.py} | 26 +++--
.../algorithm/{__init__.py => builtin/knnbf.py} | 26 +++--
.../algorithm/{__init__.py => builtin/lasso.py} | 35 ++++--
.../algorithm/{__init__.py => builtin/lmCG.py} | 27 +++--
.../algorithm/{__init__.py => builtin/lmDS.py} | 27 +++--
.../{__init__.py => builtin/logSumExp.py} | 26 +++--
.../algorithm/{__init__.py => builtin/msvm.py} | 27 +++--
.../{__init__.py => builtin/msvmPredict.py} | 30 +++--
.../algorithm/{__init__.py => builtin/na_locf.py} | 26 +++--
.../{__init__.py => builtin/naivebayes.py} | 27 +++--
.../{__init__.py => builtin/normalize.py} | 25 ++--
.../algorithm/{__init__.py => builtin/outlier.py} | 25 ++--
.../{__init__.py => builtin/outlierByArima.py} | 26 +++--
.../{__init__.py => builtin/outlierByIQR.py} | 26 +++--
.../{__init__.py => builtin/outlierBySd.py} | 26 +++--
.../algorithm/{__init__.py => builtin/pnmf.py} | 26 +++--
.../systemds/operator/algorithm/builtin/ppca.py | 48 ++++++++
.../algorithm/{__init__.py => builtin/scale.py} | 25 ++--
.../{__init__.py => builtin/scaleApply.py} | 27 +++--
.../algorithm/{__init__.py => builtin/sigmoid.py} | 25 ++--
.../{__init__.py => builtin/slicefinder.py} | 27 +++--
.../algorithm/{__init__.py => builtin/smote.py} | 26 +++--
.../algorithm/{__init__.py => builtin/split.py} | 27 +++--
.../algorithm/{__init__.py => builtin/statsNA.py} | 26 +++--
.../algorithm/{__init__.py => builtin/steplm.py} | 27 +++--
.../algorithm/{__init__.py => builtin/univar.py} | 26 +++--
.../{__init__.py => builtin/vectorToCsv.py} | 25 ++--
.../{__init__.py => builtin/winsorize.py} | 25 ++--
.../algorithm/{__init__.py => builtin/xdummy1.py} | 25 ++--
.../algorithm/{__init__.py => builtin/xdummy2.py} | 25 ++--
69 files changed, 1456 insertions(+), 653 deletions(-)
diff --git a/scripts/builtin/dbscan.dml b/scripts/builtin/dbscan.dml
index 74d4040..ea8c6fd 100644
--- a/scripts/builtin/dbscan.dml
+++ b/scripts/builtin/dbscan.dml
@@ -30,8 +30,8 @@
# minPts Int 5 Number of points in a neighborhood for a point to be considered as a core point (includes the point itself).
#
-m_dbscan = function (Matrix[double] X, Double eps = 0.5, Integer minPts = 5)
- return (Matrix[double] clusterMembers)
+m_dbscan = function (Matrix[Double] X, Double eps = 0.5, Integer minPts = 5)
+ return (Matrix[Double] clusterMembers)
{
#check input parameter assertions
if(minPts < 0) { stop("DBSCAN: Stopping due to invalid inputs: minPts should be greater than 0"); }
diff --git a/scripts/builtin/gnmf.dml b/scripts/builtin/gnmf.dml
index a5f3e88..3a3acb9 100644
--- a/scripts/builtin/gnmf.dml
+++ b/scripts/builtin/gnmf.dml
@@ -25,7 +25,7 @@
# Distributed nonnegative matrix factorization for web-scale dyadic
# data analysis on mapreduce. WWW 2010: 681-690]
-m_gnmf = function(Matrix[Double] X, Integer rnk, Double eps = 10^-8, Integer maxi = 10)
+m_gnmf = function(Matrix[Double] X, Integer rnk, Double eps = 1e-8, Integer maxi = 10)
return (Matrix[Double] W, Matrix[Double] H)
{
#initialize W and H
diff --git a/scripts/builtin/lasso.dml b/scripts/builtin/lasso.dml
index 3edadd9..6fc6027 100644
--- a/scripts/builtin/lasso.dml
+++ b/scripts/builtin/lasso.dml
@@ -37,7 +37,7 @@
# w Double --- model matrix
-m_lasso = function(Matrix[Double] X, Matrix[Double] y, Double tol = 10^(-15),
+m_lasso = function(Matrix[Double] X, Matrix[Double] y, Double tol = 1e-15,
Integer M = 5, Double tau = 1, Integer maxi = 100, Boolean verbose = TRUE)
return(Matrix[Double] w)
{
diff --git a/scripts/builtin/pnmf.dml b/scripts/builtin/pnmf.dml
index 42bc366..b31fd57 100644
--- a/scripts/builtin/pnmf.dml
+++ b/scripts/builtin/pnmf.dml
@@ -25,7 +25,7 @@
# Distributed nonnegative matrix factorization for web-scale dyadic
# data analysis on mapreduce. WWW 2010: 681-690]
-m_pnmf = function(Matrix[Double] X, Integer rnk, Double eps = 10^-8, Integer maxi = 10, Boolean verbose=TRUE)
+m_pnmf = function(Matrix[Double] X, Integer rnk, Double eps = 1e-8, Integer maxi = 10, Boolean verbose=TRUE)
return (Matrix[Double] W, Matrix[Double] H)
{
#initialize W and H
diff --git a/scripts/builtin/statsNA.dml b/scripts/builtin/statsNA.dml
index d858966..5f58c56 100644
--- a/scripts/builtin/statsNA.dml
+++ b/scripts/builtin/statsNA.dml
@@ -43,7 +43,7 @@
# ------------------------------------------------------------------------------
m_statsNA = function(Matrix[Double] X, Integer bins = 4, Boolean verbose = TRUE)
- return( Matrix[Double] stats)
+ return(Matrix[Double] stats)
{
longest_nan_gap = -1
most_frequent_nan_gap = -1
diff --git a/src/main/python/generator/generator.py b/src/main/python/generator/generator.py
index c1a9ce2..190f176 100644
--- a/src/main/python/generator/generator.py
+++ b/src/main/python/generator/generator.py
@@ -24,40 +24,43 @@ import json
import os
import re
from parser import FunctionParser
+import traceback
class PythonAPIFileGenerator(object):
- target_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'systemds', 'operator', 'algorithm', 'builtin')
+ target_path = os.path.join(os.path.dirname(os.path.dirname(
+ __file__)), 'systemds', 'operator', 'algorithm', 'builtin')
licence_path = os.path.join('resources', 'template_python_script_license')
template_path = os.path.join('resources', 'template_python_script_imports')
-
- source_path :str
- licence : str
+
+ source_path: str
+ licence: str
imports: str
- generated_by : str
- generated_from : str
+ generated_by: str
+ generated_from: str
- init_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'systemds', 'operator', 'algorithm', '__init__.py')
+ init_path = os.path.join(os.path.dirname(os.path.dirname(
+ __file__)), 'systemds', 'operator', 'algorithm', '__init__.py')
init_import = u"from .builtin.{function} import {function} \n"
init_all = u"__all__ = {functions} \n"
- def __init__(self, source_path:str, extension: str='py'):
+ def __init__(self, source_path: str, extension: str = 'py'):
super(PythonAPIFileGenerator, self).__init__()
self.source_path = source_path
self.extension = '.{extension}'.format(extension=extension)
- os.makedirs(self.__class__.target_path, exist_ok = True)
+ os.makedirs(self.__class__.target_path, exist_ok=True)
self.function_names = list()
path = os.path.dirname(__file__)
-
+
with open(os.path.join(path, self.__class__.template_path), 'r') as f:
self.imports = f.read()
with open(os.path.join(path, self.__class__.licence_path), 'r') as f:
self.licence = f.read()
-
- self.generated_by = "# Autogenerated By : src/main/python/generator/generator.py\n"
- self.generated_from = "# Autogenerated From : "
+
+ self.generated_by = "# Autogenerated By : src/main/python/generator/generator.py\n"
+ self.generated_from = "# Autogenerated From : "
def generate_file(self, filename: str, file_content: str, dml_file: str):
"""
@@ -70,7 +73,8 @@ class PythonAPIFileGenerator(object):
with open(target_file, "w") as new_script:
new_script.write(self.licence)
new_script.write(self.generated_by)
- new_script.write((self.generated_from + dml_file + "\n").replace("../","").replace("src/main/python/generator/",""))
+ new_script.write((self.generated_from + dml_file + "\n").replace(
+ "../", "").replace("src/main/python/generator/", ""))
new_script.write(self.imports)
new_script.write(file_content)
@@ -84,7 +88,8 @@ class PythonAPIFileGenerator(object):
for f in self.function_names:
init_file.write(self.init_import.format(function=f))
init_file.write("\n")
- init_file.write(self.init_all.format(functions=self.function_names).replace("'", ""))
+ init_file.write(self.init_all.format(
+ functions=self.function_names).replace("'", ""))
class PythonAPIFunctionGenerator(object):
@@ -100,23 +105,21 @@ class PythonAPIFunctionGenerator(object):
kwargs_result = u"params_dict.update(kwargs)"
matrix_check_template = u"\n {param}._check_matrix_op()"
- shape_check_template = u"""\n if {param}.shape[0] == 0:
- raise ValueError("Found array with 0 feature(s) (shape={{s}}) while a minimum of 1 is required."
- .format(s={param}.shape))"""
- type_mapping_file = os.path.join('resources','type_mapping.json')
+
+ type_mapping_file = os.path.join('resources', 'type_mapping.json')
type_mapping_pattern = r"^([^\[\s]+)"
path = os.path.dirname(__file__)
type_mapping_path = os.path.join(path, type_mapping_file)
- # print(type_mapping_path)
+
with open(type_mapping_path, 'r') as mapping:
type_mapping = json.load(mapping)
def __init__(self):
super(PythonAPIFunctionGenerator, self).__init__()
- def generate_function(self, data:dict) -> str:
+ def generate_function(self, data: dict) -> str:
"""
Generates function definition for PythonAPI
@param data:
@@ -138,12 +141,6 @@ class PythonAPIFunctionGenerator(object):
data['return_values'],
data['function_name']
)
- #print(parameters)
- #print(function_name)
- #print(header)
- #print(value_checks)
- #print(params_dict)
- #print(api_call)
return self.__class__.api_template.format(
function_name=function_name,
parameters=parameters,
@@ -160,7 +157,8 @@ class PythonAPIFunctionGenerator(object):
for param in parameters:
# map data types
pattern = self.__class__.type_mapping_pattern
- param = tuple([self.__class__.type_mapping["type"].get(re.search(pattern, str(item).lower()).group() if item else str(item).lower(), item) for item in param])
+ param = tuple([self.__class__.type_mapping["type"].get(re.search(pattern, str(
+ item).lower()).group() if item else str(item).lower(), item) for item in param])
if param[2] is not None:
has_optional = True
else:
@@ -211,7 +209,7 @@ class PythonAPIFunctionGenerator(object):
parameters: List[Tuple[str]],
return_values: List[Tuple[str]],
function_name: str
- ) -> str:
+ ) -> str:
length = len(return_values)
result = "OperationNode({params})"
param_string = ""
@@ -221,14 +219,14 @@ class PythonAPIFunctionGenerator(object):
output_type_list = ""
for value in return_values:
output_type = re.search(pattern, value[1])[0].upper()
- #print(output_type)
+ # print(output_type)
if len(output_type_list):
output_type_list = "{output_type_list}, ".format(
output_type_list=output_type_list
)
else:
output_type_list = "output_types=["
-
+
output_type_list = "{output_type_list}OutputType.{typ}".format(
output_type_list=output_type_list,
typ=output_type
@@ -242,42 +240,47 @@ class PythonAPIFunctionGenerator(object):
)
else:
value = return_values[0]
- output_type = re.search(pattern, value[1])[0].upper()
- #print(output_type)
+ output_type = re.search(pattern, value[1])
+ if(output_type):
+ output_type = output_type[0].upper()
+ else:
+ raise AttributeError("Error in pattern match")
+ # print(output_type)
result = "{param}.sds_context, \'{function_name}\', named_input_nodes=params_dict, " \
"output_type=OutputType.{output_type}".format(
- param=param[0],
- function_name=function_name,
- output_type=output_type
- )
+ param=param[0],
+ function_name=function_name,
+ output_type=output_type
+ )
result = "OperationNode({params})".format(params=result)
return result
- def format_value_checks(self, parameters :List[Tuple[str]]) -> str:
+ def format_value_checks(self, parameters: List[Tuple[str]]) -> str:
result = ""
for param in parameters:
if "matrix" not in param[1].lower():
# This check is only needed for Matrix types
continue
- matrix_check = self.__class__.matrix_check_template.format(param=param[0])
+ matrix_check = self.__class__.matrix_check_template.format(
+ param=param[0])
# shape_check = self.__class__.shape_check_template.format(param=param[0])
result = "{result}{matrix_check}".format(
result=result,
matrix_check=matrix_check,
)
- # shape_check=shape_check
+ # shape_check=shape_check
return result
-
+
class PythonAPIDocumentationGenerator(object):
- python_multi_cmnt = "\"\"\""
+
param_str = "\n :param {pname}: {meaning}"
return_str = "\n :return: \'OperationNode\' containing {meaning} \n"
def __init__(self):
super(PythonAPIDocumentationGenerator, self).__init__()
- def generate_documentation(self, data:dict) -> str:
+ def generate_documentation(self, data: dict) -> str:
"""
Generates function header for PythonAPI
@param data:
@@ -291,16 +294,21 @@ class PythonAPIDocumentationGenerator(object):
input_param = self.header_parameter_string(data["parameters"])
output_param = self.header_return_string(data["return_values"])
- return self.__class__.python_multi_cmnt + input_param + output_param + " " + self.__class__.python_multi_cmnt
+ if(len(input_param) < 1 and len(output_param) < 1):
+ return ""
+ return '"""' + \
+ input_param + self.__class__.return_str.format(meaning=output_param.lower()) + \
+ " " + '"""'
- def header_parameter_string(self, parameter:dict) -> str:
+ def header_parameter_string(self, parameter: dict) -> str:
parameter_str = ""
for param in parameter:
- parameter_str += self.__class__.param_str.format(pname=param[0], meaning=param[3])
+ parameter_str += self.__class__.param_str.format(
+ pname=param[0], meaning=param[3])
return parameter_str
- def header_return_string(self, parameter:dict) -> str:
+ def header_return_string(self, parameter: dict) -> str:
meaning_str = ""
for param in parameter:
@@ -309,33 +317,34 @@ class PythonAPIDocumentationGenerator(object):
else:
meaning_str += param[3]
- return self.__class__.return_str.format(meaning=meaning_str.lower())
+ return meaning_str
if __name__ == "__main__":
if "python" in os.getcwd():
- source_path = os.path.join("../../../",'scripts', 'builtin' )
+ source_path = os.path.join("../../../", 'scripts', 'builtin')
else:
- source_path = os.path.join(os.path.dirname(__file__),"../../../../",'scripts', 'builtin')
+ source_path = os.path.join(os.path.dirname(
+ __file__), "../../../../", 'scripts', 'builtin')
file_generator = PythonAPIFileGenerator(source_path)
fun_generator = PythonAPIFunctionGenerator()
- f_parser = FunctionParser(source_path )
+ f_parser = FunctionParser(source_path)
doc_generator = PythonAPIDocumentationGenerator()
for dml_file in f_parser.files():
try:
header_data = f_parser.parse_header(dml_file)
data = f_parser.parse_function(dml_file)
- # TODO: define a set of dml script that would not fail this check
f_parser.check_parameters(header_data, data)
+ data['function_header'] = doc_generator.generate_documentation(
+ header_data)
+ script_content = fun_generator.generate_function(data)
except Exception as e:
- # print("[WARNING] Skipping file \'{file_name}\'.".format(file_name = dml_file))
+ traceback.print_exc()
+ print("[ERROR] error in : \'{file_name}\'.".format(
+ file_name=dml_file))
continue
- data['function_header'] = doc_generator.generate_documentation(header_data)
- script_content = fun_generator.generate_function(data)
- file_generator.generate_file(data["function_name"], script_content, dml_file)
+ file_generator.generate_file(
+ data["function_name"], script_content, dml_file)
file_generator.generate_init_file()
-
-
-
diff --git a/src/main/python/generator/parser.py b/src/main/python/generator/parser.py
index 14883f4..135d858 100644
--- a/src/main/python/generator/parser.py
+++ b/src/main/python/generator/parser.py
@@ -29,7 +29,7 @@ class FunctionParser(object):
header_input_pattern = r"^[ \t\n]*[#]+[ \t\n]*input[ \t\n\w:;.,#]*[\s#\-]*[#]+[\w\s\d:,.()\" \t\n\-]*[\s#\-]*$"
header_output_pattern = r"[\s#\-]*[#]+[ \t]*(return|output)[ \t\w:;.,#]*[\s#\-]*[#]+[\w\s\d:,.()\" \t\-]*[\s#\-]*$"
function_pattern = r"^m_[\w]+[ \t\n]+=[ \t\n]+function[^#{]*"
- parameter_pattern = r"^m_[\w]+[\s]+=[\s]+function\(([\w\[\]\s,\d=.\-]*)\)[\s]*return[\s]*\(([\w\[\]\s,\d=.\-]*)\)"
+ parameter_pattern = r"^m_[\w]+[\s]+=[\s]+function[\s]*\([\s]*([\w\[\]\s,\d=.\-'\"_\.]*)[\s]*\)[\s]*return[\s]*\([\s]*([\w\[\]\s,\d=.\-_]*)[\s]*\)[\s]*"
header_parameter_pattern = r"[\s#\-]*[#]+[ \t]*([\w|-]+)[\s]+([\w]+)[\s]+([\w,\d.\"\-]+)[\s]+([\w|\W]+)"
divider_pattern = r"[\s#\-]*"
@@ -57,47 +57,45 @@ class FunctionParser(object):
"""
file_name = os.path.basename(path)
function_name, extension = os.path.splitext(file_name)
- try:
- function_definition = self.find_function_definition(path)
- except AttributeError as e:
- print("[ERROR] Could not find function_definition for file \'{file_name}\'.".format(
- file_name=file_name
- ))
- raise e
-
- # print(function_definition)
+ function_definition = self.find_function_definition(path)
pattern = re.compile(
self.__class__.parameter_pattern, flags=re.I | re.M)
match = pattern.match(function_definition)
- param_str, retval_str = match.group(1, 2)
- parameters = self.get_parameters(param_str)
- return_values = self.get_parameters(retval_str)
+ if match:
+ param_str, retval_str = match.group(1, 2)
+ parameters = self.get_parameters(param_str)
+ return_values = self.get_parameters(retval_str)
+ else:
+ # TODO handle default matrix variables.
+ raise AttributeError("Unable to match to function definition:\n" + function_definition)
data = {'function_name': function_name,
- 'parameters': parameters, 'return_values': return_values}
+ 'parameters': parameters, 'return_values': return_values}
return data
def get_parameters(self, param_str: str):
- # pattern = re.compile(r"[\r\v\n\t]")
- # param_str = pattern.sub(" ", param_str)
- # print(param_str)
+
params = re.split(r",[\s]*", param_str)
+
parameters = []
for param in params:
- splitted = re.split(r"[\s]+", param)
- dml_type = splitted[0]
- name = splitted[1]
- default_value = None
-
- if len(splitted) == 4:
- if splitted[2] == "=":
- default_value = splitted[3]
- elif "=" in name:
- default_split = name.split("=")
- name = default_split[0]
- default_value = default_split[1]
- parameters.append((name, dml_type, default_value))
+ parameters.append(self.parse_single_parameter(param))
return parameters
+ def parse_single_parameter(self, param: str):
+ splitted = re.split(r"[\s]+", param)
+ dml_type = splitted[0]
+ name = splitted[1]
+ default_value = None
+
+ if len(splitted) == 4:
+ if splitted[2] == "=":
+ default_value = splitted[3]
+ elif "=" in name:
+ default_split = name.split("=")
+ name = default_split[0]
+ default_value = default_split[1]
+ return (name, dml_type, default_value)
+
def get_header_parameters(self, param_str: str):
parameters = list()
pattern = re.compile(
@@ -168,15 +166,20 @@ class FunctionParser(object):
content = f.read()
match = re.search(pattern=self.__class__.function_pattern,
string=content, flags=re.I | re.M)
- start = match.start()
- end = match.end()
- return content[start:end]
+ if match:
+ start = match.start()
+ end = match.end()
+ return content[start:end]
+ else:
+ raise AttributeError("Function definition not found in : " + path)
def files(self):
"""
generator function to find files in self.path, that end with self.extension
"""
- for f in os.listdir(self.path):
+ files = os.listdir(self.path)
+ files.sort()
+ for f in files:
name, extension = os.path.splitext(f)
if extension == self.extension:
yield os.path.join(self.path, f)
@@ -187,17 +190,15 @@ class FunctionParser(object):
path = os.path.dirname(__file__)
type_mapping_path = os.path.join(
path, self.__class__.type_mapping_file)
- # print(type_mapping_path)
+
with open(type_mapping_path, 'r') as mapping:
type_mapping = json.load(mapping)
header_param_names = [p[0].lower() for p in header["parameters"]]
data_param_names = [p[0].lower() for p in data["parameters"]]
if header_param_names != data_param_names:
- print("[ERROR] The parameter names of the function does not match with the documentation "
+ print("[WARNING] The parameter names of the function does not match with the documentation "
"for file \'{file_name}\'.".format(file_name=data["function_name"]))
- raise ValueError(
- "The parameter names of the function does not match with the documentation")
header_param_type = [p[1].lower() for p in header["parameters"]]
header_param_type = [type_mapping["type"].get(
@@ -207,18 +208,7 @@ class FunctionParser(object):
data_param_type = [type_mapping["type"].get(
re.search(type_mapping_pattern, str(item).lower()).group() if item else str(item).lower(), item)
for item in data_param_type]
- # data_param_type = [type_mapping["type"].get(item, item) for item in data_param_type]
+
if header_param_type != data_param_type:
- print("[ERROR] The parameter type of the function does not match with the documentation "
+ print("[WARNING] The parameter type of the function does not match with the documentation "
"for file \'{file_name}\'.".format(file_name=data["function_name"]))
- raise ValueError(
- "The parameter type of the function does not match with the documentation")
-
- # header_param_default = [p[2].lower() for p in header["parameters"]]
- # header_param_default = [type_mapping["default"].get(item, item).lower() for item in header_param_default]
- # data_param_default = [str(p[2]).lower() for p in data["parameters"]]
- # data_param_default = [type_mapping["default"].get(item, item).lower() for item in data_param_default]
- # if header_param_default != data_param_default:
- # print("[ERROR] The parameter default of the function does not match with the documentation "
- # "for file \'{file_name}\'.".format(file_name=data["function_name"]))
- # raise ValueError("The parameter default of the function does not match with the documentation")
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/__init__.py
index 80e5b67..90e9de9 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/__init__.py
@@ -21,14 +21,75 @@
# Autogenerated By : src/main/python/generator/generator.py
+from .builtin.abstain import abstain
+from .builtin.als import als
+from .builtin.alsCG import alsCG
+from .builtin.alsDS import alsDS
+from .builtin.alsPredict import alsPredict
+from .builtin.alsTopkPredict import alsTopkPredict
+from .builtin.arima import arima
+from .builtin.bandit import bandit
+from .builtin.bivar import bivar
+from .builtin.components import components
+from .builtin.confusionMatrix import confusionMatrix
+from .builtin.cor import cor
+from .builtin.cspline import cspline
+from .builtin.csplineDS import csplineDS
+from .builtin.cvlm import cvlm
+from .builtin.dbscan import dbscan
+from .builtin.decisionTree import decisionTree
+from .builtin.discoverFD import discoverFD
+from .builtin.dist import dist
+from .builtin.getAccuracy import getAccuracy
+from .builtin.glm import glm
+from .builtin.gmm import gmm
+from .builtin.gmmPredict import gmmPredict
+from .builtin.gnmf import gnmf
+from .builtin.gridSearch import gridSearch
+from .builtin.hyperband import hyperband
+from .builtin.img_brightness import img_brightness
+from .builtin.img_crop import img_crop
+from .builtin.img_mirror import img_mirror
+from .builtin.imputeByFD import imputeByFD
+from .builtin.imputeByMean import imputeByMean
+from .builtin.imputeByMedian import imputeByMedian
+from .builtin.intersect import intersect
+from .builtin.kmeans import kmeans
+from .builtin.kmeansPredict import kmeansPredict
+from .builtin.knnbf import knnbf
from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
+from .builtin.lasso import lasso
from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
+from .builtin.lmCG import lmCG
+from .builtin.lmDS import lmDS
+from .builtin.logSumExp import logSumExp
+from .builtin.msvm import msvm
+from .builtin.msvmPredict import msvmPredict
+from .builtin.multiLogReg import multiLogReg
+from .builtin.multiLogRegPredict import multiLogRegPredict
+from .builtin.na_locf import na_locf
+from .builtin.naivebayes import naivebayes
+from .builtin.normalize import normalize
+from .builtin.outlier import outlier
+from .builtin.outlierByArima import outlierByArima
+from .builtin.outlierByIQR import outlierByIQR
+from .builtin.outlierBySd import outlierBySd
from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from .builtin.pnmf import pnmf
+from .builtin.ppca import ppca
+from .builtin.scale import scale
+from .builtin.scaleApply import scaleApply
+from .builtin.sigmoid import sigmoid
+from .builtin.slicefinder import slicefinder
+from .builtin.smote import smote
+from .builtin.split import split
+from .builtin.statsNA import statsNA
+from .builtin.steplm import steplm
+from .builtin.toOneHot import toOneHot
+from .builtin.univar import univar
+from .builtin.vectorToCsv import vectorToCsv
+from .builtin.winsorize import winsorize
+from .builtin.xdummy1 import xdummy1
+from .builtin.xdummy2 import xdummy2
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+__all__ = [abstain, als, alsCG, alsDS, alsPredict, alsTopkPredict, arima, bandit, bivar, components, confusionMatrix, cor, cspline, csplineDS, cvlm, dbscan, decisionTree, discoverFD, dist, getAccuracy, glm, gmm, gmmPredict, gnmf, gridSearch, hyperband, img_brightness, img_crop, img_mirror, imputeByFD, imputeByMean, imputeByMedian, intersect, kmeans, kmeansPredict, knnbf, l2svm, lasso, lm, lmCG, lmDS, logSumExp, msvm, msvmPredict, multiLogReg, multiLogRegPredict, na_locf, naivebayes, norm [...]
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/abstain.py
similarity index 61%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/abstain.py
index 80e5b67..59fcd19 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/abstain.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/abstain.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def abstain(X: OperationNode, Y: OperationNode, threshold: float, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ Y._check_matrix_op()
+ params_dict = {'X':X, 'Y':Y, 'threshold':threshold}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'abstain', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/builtin/als.py b/src/main/python/systemds/operator/algorithm/builtin/als.py
new file mode 100644
index 0000000..731f51f
--- /dev/null
+++ b/src/main/python/systemds/operator/algorithm/builtin/als.py
@@ -0,0 +1,51 @@
+# -------------------------------------------------------------
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -------------------------------------------------------------
+
+# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/als.dml
+
+from typing import Dict
+
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def als(X: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+ """
+ :param X: Location to read the input matrix X to be factorized
+ :param rank: Rank of the factorization
+ :param reg: Regularization:
+ :param lambda: Regularization parameter, no regularization if 0.0
+ :param maxi: Maximum number of iterations
+ :param check: Check for convergence after every iteration, i.e., updating U and V once
+ :param thr: Assuming check is set to TRUE, the algorithm stops and convergence is declared
+ :param if: in loss in any two consecutive iterations falls below this threshold;
+ :param if: FALSE thr is ignored
+ :return: 'OperationNode' containing x n matrix v
+ """
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'als', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/builtin/alsCG.py b/src/main/python/systemds/operator/algorithm/builtin/alsCG.py
new file mode 100644
index 0000000..34e8c8e
--- /dev/null
+++ b/src/main/python/systemds/operator/algorithm/builtin/alsCG.py
@@ -0,0 +1,51 @@
+# -------------------------------------------------------------
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -------------------------------------------------------------
+
+# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/alsCG.dml
+
+from typing import Dict
+
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def alsCG(X: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+ """
+ :param X: Location to read the input matrix X to be factorized
+ :param rank: Rank of the factorization
+ :param reg: Regularization:
+ :param lambda: Regularization parameter, no regularization if 0.0
+ :param maxi: Maximum number of iterations
+ :param check: Check for convergence after every iteration, i.e., updating U and V once
+ :param thr: Assuming check is set to TRUE, the algorithm stops and convergence is declared
+ :param if: in loss in any two consecutive iterations falls below this threshold;
+ :param if: FALSE thr is ignored
+ :return: 'OperationNode' containing x n matrix v
+ """
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'alsCG', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/builtin/alsDS.py b/src/main/python/systemds/operator/algorithm/builtin/alsDS.py
new file mode 100644
index 0000000..fe67af4
--- /dev/null
+++ b/src/main/python/systemds/operator/algorithm/builtin/alsDS.py
@@ -0,0 +1,52 @@
+# -------------------------------------------------------------
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -------------------------------------------------------------
+
+# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/alsDS.dml
+
+from typing import Dict
+
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def alsDS(X: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+ """
+ :param V: Location to read the input matrix V to be factorized
+ :param L: Location to write the factor matrix L
+ :param R: Location to write the factor matrix R
+ :param rank: Rank of the factorization
+ :param lambda: Regularization parameter, no regularization if 0.0
+ :param maxi: Maximum number of iterations
+ :param check: Check for convergence after every iteration, i.e., updating L and R once
+ :param thr: Assuming check is set to TRUE, the algorithm stops and convergence is declared
+ :param if: in loss in any two consecutive iterations falls below this threshold;
+ :param if: FALSE thr is ignored
+ :return: 'OperationNode' containing x n matrix r
+ """
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'alsDS', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/alsPredict.py
similarity index 60%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/alsPredict.py
index 80e5b67..34c116c 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/alsPredict.py
@@ -20,15 +20,23 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/alsPredict.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def alsPredict(userIDs: OperationNode, I: OperationNode, L: OperationNode, R: OperationNode) -> OperationNode:
+
+
+ userIDs._check_matrix_op()
+ I._check_matrix_op()
+ L._check_matrix_op()
+ R._check_matrix_op()
+ params_dict = {'userIDs':userIDs, 'I':I, 'L':L, 'R':R}
+ return OperationNode(userIDs.sds_context, 'alsPredict', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/builtin/arima.py b/src/main/python/systemds/operator/algorithm/builtin/arima.py
new file mode 100644
index 0000000..f907f23
--- /dev/null
+++ b/src/main/python/systemds/operator/algorithm/builtin/arima.py
@@ -0,0 +1,53 @@
+# -------------------------------------------------------------
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -------------------------------------------------------------
+
+# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/arima.dml
+
+from typing import Dict
+
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def arima(X: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+ """
+ :param X: The input Matrix to apply Arima on.
+ :param max_func_invoc: ?
+ :param p: non-seasonal AR order
+ :param d: non-seasonal differencing order
+ :param q: non-seasonal MA order
+ :param P: seasonal AR order
+ :param D: seasonal differencing order
+ :param Q: seasonal MA order
+ :param s: period in terms of number of time-steps
+ :param include_mean: center to mean 0, and include in result
+ :param solver: solver, is either "cg" or "jacobi"
+ :return: 'OperationNode' containing the calculated coefficients
+ """
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'arima', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/builtin/bandit.py b/src/main/python/systemds/operator/algorithm/builtin/bandit.py
new file mode 100644
index 0000000..13240d8
--- /dev/null
+++ b/src/main/python/systemds/operator/algorithm/builtin/bandit.py
@@ -0,0 +1,44 @@
+# -------------------------------------------------------------
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -------------------------------------------------------------
+
+# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/bandit.dml
+
+from typing import Dict
+
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def bandit(X_train: OperationNode, Y_train: OperationNode, X_val: OperationNode, Y_val: OperationNode, mask: OperationNode, schema: Frame[Unknown], lp: Frame[Unknown], primitives: Frame[Unknown], param: Frame[Unknown], isWeighted: bool, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X_train._check_matrix_op()
+ Y_train._check_matrix_op()
+ X_val._check_matrix_op()
+ Y_val._check_matrix_op()
+ mask._check_matrix_op()
+ params_dict = {'X_train':X_train, 'Y_train':Y_train, 'X_val':X_val, 'Y_val':Y_val, 'mask':mask, 'schema':schema, 'lp':lp, 'primitives':primitives, 'param':param, 'isWeighted':isWeighted}
+ params_dict.update(kwargs)
+ return OperationNode(X_train.sds_context, 'bandit', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=3, output_types=[OutputType.FRAME, OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/bivar.py
similarity index 52%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/bivar.py
index 80e5b67..1687f2a 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/bivar.py
@@ -20,15 +20,27 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/bivar.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def bivar(X: OperationNode, S1: OperationNode, S2: OperationNode, T1: OperationNode, T2: OperationNode, verbose: bool) -> OperationNode:
+ """
+ :param verbose: Print bivar stats
+ :return: 'OperationNode' containing
+ """
+
+ X._check_matrix_op()
+ S1._check_matrix_op()
+ S2._check_matrix_op()
+ T1._check_matrix_op()
+ T2._check_matrix_op()
+ params_dict = {'X':X, 'S1':S1, 'S2':S2, 'T1':T1, 'T2':T2, 'verbose':verbose}
+ return OperationNode(X.sds_context, 'bivar', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=4, output_types=[OutputType.MATRIX, OutputType.MATRIX, OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/components.py
similarity index 64%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/components.py
index 80e5b67..117fd20 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/components.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/components.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def components(G: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ G._check_matrix_op()
+ params_dict = {'G':G}
+ params_dict.update(kwargs)
+ return OperationNode(G.sds_context, 'components', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/confusionMatrix.py
similarity index 52%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/confusionMatrix.py
index 80e5b67..46125ba 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/confusionMatrix.py
@@ -20,15 +20,25 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/confusionMatrix.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def confusionMatrix(P: OperationNode, Y: OperationNode) -> OperationNode:
+ """
+ :param P: vector of Predictions
+ :param Y: vector of Golden standard One Hot Encoded; the one hot encoded vector of actual labels
+ :return: 'OperationNode' containing the confusion matrix sums of classifications & the confusion matrix averages of each true class
+ """
+
+ P._check_matrix_op()
+ Y._check_matrix_op()
+ params_dict = {'P':P, 'Y':Y}
+ return OperationNode(P.sds_context, 'confusionMatrix', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/cor.py
similarity index 66%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/cor.py
index 80e5b67..4df9ddb 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/cor.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/cor.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def cor(X: OperationNode) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ return OperationNode(X.sds_context, 'cor', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/cspline.py
similarity index 59%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/cspline.py
index 80e5b67..6ae61ff 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/cspline.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/cspline.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def cspline(X: OperationNode, Y: OperationNode, inp_x: float, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ Y._check_matrix_op()
+ params_dict = {'X':X, 'Y':Y, 'inp_x':inp_x}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'cspline', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/csplineDS.py
similarity index 61%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/csplineDS.py
index 80e5b67..1ad7377 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/csplineDS.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/csplineDS.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def csplineDS(X: OperationNode, Y: OperationNode, inp_x: float) -> OperationNode:
+
+
+ X._check_matrix_op()
+ Y._check_matrix_op()
+ params_dict = {'X':X, 'Y':Y, 'inp_x':inp_x}
+ return OperationNode(X.sds_context, 'csplineDS', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/cvlm.py
similarity index 60%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/cvlm.py
index 80e5b67..6b3724b 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/cvlm.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/cvlm.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def cvlm(X: OperationNode, y: OperationNode, k: int, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ y._check_matrix_op()
+ params_dict = {'X':X, 'y':y, 'k':k}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'cvlm', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/dbscan.py
similarity index 65%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/dbscan.py
index 80e5b67..1c73d4e 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/dbscan.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/dbscan.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def dbscan(X: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'dbscan', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/builtin/decisionTree.py b/src/main/python/systemds/operator/algorithm/builtin/decisionTree.py
new file mode 100644
index 0000000..601b848
--- /dev/null
+++ b/src/main/python/systemds/operator/algorithm/builtin/decisionTree.py
@@ -0,0 +1,49 @@
+# -------------------------------------------------------------
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -------------------------------------------------------------
+
+# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/decisionTree.dml
+
+from typing import Dict
+
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def decisionTree(X: OperationNode, Y: OperationNode, R: OperationNode, verbose: bool, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+ """
+ :param a: vector, other positive Integers indicate the number of categories
+ :param If: not provided by default all variables are assumed to be scale
+ :param bins: Number of equiheight bins per scale feature to choose thresholds
+ :param depth: Maximum depth of the learned tree
+ :param verbose: boolean specifying if the algorithm should print information while executing
+ :return: 'OperationNode' containing looks at if j is an internal node, otherwise 0 & 6,7,... if j is categorical & a leaf node: number of misclassified samples reaching at node j & feature chosen for j is categorical rows 6,7,... depict the value subset chosen for j & a leaf node 1 if j is impure and the number of samples at j > threshold, otherwise 0
+ """
+
+ X._check_matrix_op()
+ Y._check_matrix_op()
+ R._check_matrix_op()
+ params_dict = {'X':X, 'Y':Y, 'R':R, 'verbose':verbose}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'decisionTree', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/discoverFD.py
similarity index 63%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/discoverFD.py
index 80e5b67..a6574f2 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/discoverFD.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/discoverFD.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def discoverFD(X: OperationNode, Mask: OperationNode, threshold: float) -> OperationNode:
+
+
+ X._check_matrix_op()
+ Mask._check_matrix_op()
+ params_dict = {'X':X, 'Mask':Mask, 'threshold':threshold}
+ return OperationNode(X.sds_context, 'discoverFD', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/dist.py
similarity index 66%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/dist.py
index 80e5b67..ca69fc1 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/dist.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/dist.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def dist(X: OperationNode) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ return OperationNode(X.sds_context, 'dist', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/getAccuracy.py
similarity index 62%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/getAccuracy.py
index 80e5b67..787c439 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/getAccuracy.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/getAccuracy.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def getAccuracy(y: OperationNode, yhat: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ y._check_matrix_op()
+ yhat._check_matrix_op()
+ params_dict = {'y':y, 'yhat':yhat}
+ params_dict.update(kwargs)
+ return OperationNode(y.sds_context, 'getAccuracy', named_input_nodes=params_dict, output_type=OutputType.DOUBLE)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/glm.py
similarity index 63%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/glm.py
index 80e5b67..cf9ad73 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/glm.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/glm.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def glm(X: OperationNode, Y: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ Y._check_matrix_op()
+ params_dict = {'X':X, 'Y':Y}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'glm', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/gmm.py
similarity index 57%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/gmm.py
index 80e5b67..69763ea 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/gmm.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/gmm.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def gmm(X: OperationNode, verbose: bool, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X, 'verbose':verbose}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'gmm', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=7, output_types=[OutputType.MATRIX, OutputType.MATRIX, OutputType.INTEGER, OutputType.DOUBLE, OutputType.MATRIX, OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/builtin/gmmPredict.py b/src/main/python/systemds/operator/algorithm/builtin/gmmPredict.py
new file mode 100644
index 0000000..5bdf57d
--- /dev/null
+++ b/src/main/python/systemds/operator/algorithm/builtin/gmmPredict.py
@@ -0,0 +1,49 @@
+# -------------------------------------------------------------
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -------------------------------------------------------------
+
+# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/gmmPredict.dml
+
+from typing import Dict
+
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def gmmPredict(X: OperationNode, weight: OperationNode, mu: OperationNode, precisions_cholesky: OperationNode, model: String) -> OperationNode:
+ """
+ :param X: Matrix X (instances to be clustered)
+ :param weight: Weight of learned model
+ :param mu: fitted clusters mean
+ :param precisions_cholesky: fitted precision matrix for each mixture
+ :param model: fitted model
+ :return: 'OperationNode' containing predicted cluster labels & probabilities of belongingness & for new instances given the variance and mean of fitted data
+ """
+
+ X._check_matrix_op()
+ weight._check_matrix_op()
+ mu._check_matrix_op()
+ precisions_cholesky._check_matrix_op()
+ params_dict = {'X':X, 'weight':weight, 'mu':mu, 'precisions_cholesky':precisions_cholesky, 'model':model}
+ return OperationNode(X.sds_context, 'gmmPredict', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/gnmf.py
similarity index 61%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/gnmf.py
index 80e5b67..1c9163f 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/gnmf.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/gnmf.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def gnmf(X: OperationNode, rnk: int, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X, 'rnk':rnk}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'gnmf', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/gridSearch.py
similarity index 54%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/gridSearch.py
index 80e5b67..ea6ec64 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/gridSearch.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/gridSearch.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def gridSearch(X: OperationNode, y: OperationNode, train: String, predict: String, params: List[String], paramValues: List[Unknown], **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ y._check_matrix_op()
+ params_dict = {'X':X, 'y':y, 'train':train, 'predict':predict, 'params':params, 'paramValues':paramValues}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'gridSearch', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.FRAME])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/hyperband.py
similarity index 50%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/hyperband.py
index 80e5b67..290756a 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/hyperband.py
@@ -20,15 +20,25 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/hyperband.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def hyperband(X_train: OperationNode, y_train: OperationNode, X_val: OperationNode, y_val: OperationNode, params: List[String], paramRanges: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X_train._check_matrix_op()
+ y_train._check_matrix_op()
+ X_val._check_matrix_op()
+ y_val._check_matrix_op()
+ paramRanges._check_matrix_op()
+ params_dict = {'X_train':X_train, 'y_train':y_train, 'X_val':X_val, 'y_val':y_val, 'params':params, 'paramRanges':paramRanges}
+ params_dict.update(kwargs)
+ return OperationNode(X_train.sds_context, 'hyperband', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.FRAME])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/img_brightness.py
similarity index 63%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/img_brightness.py
index 80e5b67..f23d7c6 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/img_brightness.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/img_brightness.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def img_brightness(img_in: OperationNode, value: float, channel_max: int) -> OperationNode:
+
+
+ img_in._check_matrix_op()
+ params_dict = {'img_in':img_in, 'value':value, 'channel_max':channel_max}
+ return OperationNode(img_in.sds_context, 'img_brightness', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/img_crop.py
similarity index 62%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/img_crop.py
index 80e5b67..434ba2b 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/img_crop.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/img_crop.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def img_crop(img_in: OperationNode, w: int, h: int, x_offset: int, y_offset: int) -> OperationNode:
+
+
+ img_in._check_matrix_op()
+ params_dict = {'img_in':img_in, 'w':w, 'h':h, 'x_offset':x_offset, 'y_offset':y_offset}
+ return OperationNode(img_in.sds_context, 'img_crop', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/img_mirror.py
similarity index 64%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/img_mirror.py
index 80e5b67..9e179be 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/img_mirror.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/img_mirror.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def img_mirror(img_in: OperationNode, horizontal_axis: bool) -> OperationNode:
+
+
+ img_in._check_matrix_op()
+ params_dict = {'img_in':img_in, 'horizontal_axis':horizontal_axis}
+ return OperationNode(img_in.sds_context, 'img_mirror', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/imputeByFD.py
similarity index 58%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/imputeByFD.py
index 80e5b67..c342db6 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/imputeByFD.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/imputeByFD.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def imputeByFD(X: OperationNode, sourceAttribute: int, targetAttribute: int, threshold: float, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X, 'sourceAttribute':sourceAttribute, 'targetAttribute':targetAttribute, 'threshold':threshold}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'imputeByFD', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/imputeByMean.py
similarity index 66%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/imputeByMean.py
index 80e5b67..96dc04a 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/imputeByMean.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/imputeByMean.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def imputeByMean(X: OperationNode) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ return OperationNode(X.sds_context, 'imputeByMean', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/imputeByMedian.py
similarity index 66%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/imputeByMedian.py
index 80e5b67..4559418 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/imputeByMedian.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/imputeByMedian.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def imputeByMedian(X: OperationNode) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ return OperationNode(X.sds_context, 'imputeByMedian', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/intersect.py
similarity index 65%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/intersect.py
index 80e5b67..a3a8294 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/intersect.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/intersect.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def intersect(X: OperationNode, Y: OperationNode) -> OperationNode:
+
+
+ X._check_matrix_op()
+ Y._check_matrix_op()
+ params_dict = {'X':X, 'Y':Y}
+ return OperationNode(X.sds_context, 'intersect', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/knnbf.py
similarity index 64%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/knnbf.py
index 80e5b67..4f339d0 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/knnbf.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/knnbf.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def knnbf(X: OperationNode, T: OperationNode, k_value: int) -> OperationNode:
+
+
+ X._check_matrix_op()
+ T._check_matrix_op()
+ params_dict = {'X':X, 'T':T, 'k_value':k_value}
+ return OperationNode(X.sds_context, 'knnbf', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/lasso.py
similarity index 52%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/lasso.py
index 80e5b67..1f746d2 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/lasso.py
@@ -20,15 +20,30 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/lasso.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def lasso(X: OperationNode, y: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+ """
+ :param X: input feature matrix
+ :param y: matrix Y columns of the design matrix
+ :param tol: target convergence tolerance
+ :param M: history length
+ :param tau: regularization component
+ :param maxi: maximum number of iterations until convergence
+ :return: 'OperationNode' containing
+ """
+
+ X._check_matrix_op()
+ y._check_matrix_op()
+ params_dict = {'X':X, 'y':y}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'lasso', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/lmCG.py
similarity index 63%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/lmCG.py
index 80e5b67..a6c8d45 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/lmCG.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/lmCG.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def lmCG(X: OperationNode, y: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ y._check_matrix_op()
+ params_dict = {'X':X, 'y':y}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'lmCG', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/lmDS.py
similarity index 63%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/lmDS.py
index 80e5b67..3ee4791 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/lmDS.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/lmDS.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def lmDS(X: OperationNode, y: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ y._check_matrix_op()
+ params_dict = {'X':X, 'y':y}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'lmDS', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/logSumExp.py
similarity index 64%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/logSumExp.py
index 80e5b67..0b9ee77 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/logSumExp.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/logSumExp.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def logSumExp(M: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ M._check_matrix_op()
+ params_dict = {'M':M}
+ params_dict.update(kwargs)
+ return OperationNode(M.sds_context, 'logSumExp', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/msvm.py
similarity index 63%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/msvm.py
index 80e5b67..83ece4f 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/msvm.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/msvm.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def msvm(X: OperationNode, Y: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ Y._check_matrix_op()
+ params_dict = {'X':X, 'Y':Y}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'msvm', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/msvmPredict.py
similarity index 55%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/msvmPredict.py
index 80e5b67..db7a48a 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/msvmPredict.py
@@ -20,15 +20,25 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/msvmPredict.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def msvmPredict(X: OperationNode, W: OperationNode) -> OperationNode:
+ """
+ :param X: matrix X of feature vectors to classify
+ :param W: matrix of the trained variables
+ :return: 'OperationNode' containing classification labels maxed to ones and zeros.
+ """
+
+ X._check_matrix_op()
+ W._check_matrix_op()
+ params_dict = {'X':X, 'W':W}
+ return OperationNode(X.sds_context, 'msvmPredict', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/na_locf.py
similarity index 65%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/na_locf.py
index 80e5b67..d2305da 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/na_locf.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/na_locf.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def na_locf(X: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'na_locf', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/naivebayes.py
similarity index 60%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/naivebayes.py
index 80e5b67..1929431 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/naivebayes.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/naivebayes.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def naivebayes(D: OperationNode, C: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ D._check_matrix_op()
+ C._check_matrix_op()
+ params_dict = {'D':D, 'C':C}
+ params_dict.update(kwargs)
+ return OperationNode(D.sds_context, 'naivebayes', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/normalize.py
similarity index 66%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/normalize.py
index 80e5b67..3e7d50f 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/normalize.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/normalize.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def normalize(X: OperationNode) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ return OperationNode(X.sds_context, 'normalize', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/outlier.py
similarity index 66%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/outlier.py
index 80e5b67..4f82c86 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/outlier.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/outlier.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def outlier(X: OperationNode, opposite: bool) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X, 'opposite':opposite}
+ return OperationNode(X.sds_context, 'outlier', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/outlierByArima.py
similarity index 64%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/outlierByArima.py
index 80e5b67..92fe568 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/outlierByArima.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/outlierByArima.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def outlierByArima(X: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'outlierByArima', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/outlierByIQR.py
similarity index 61%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/outlierByIQR.py
index 80e5b67..f33e0e8 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/outlierByIQR.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/outlierByIQR.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def outlierByIQR(X: OperationNode, k: float, max_iterations: int, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X, 'k':k, 'max_iterations':max_iterations}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'outlierByIQR', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/outlierBySd.py
similarity index 62%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/outlierBySd.py
index 80e5b67..2bef4e8 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/outlierBySd.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/outlierBySd.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def outlierBySd(X: OperationNode, max_iterations: int, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X, 'max_iterations':max_iterations}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'outlierBySd', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/pnmf.py
similarity index 61%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/pnmf.py
index 80e5b67..1b26a27 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/pnmf.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/pnmf.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def pnmf(X: OperationNode, rnk: int, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X, 'rnk':rnk}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'pnmf', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/builtin/ppca.py b/src/main/python/systemds/operator/algorithm/builtin/ppca.py
new file mode 100644
index 0000000..87a84cf
--- /dev/null
+++ b/src/main/python/systemds/operator/algorithm/builtin/ppca.py
@@ -0,0 +1,48 @@
+# -------------------------------------------------------------
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# -------------------------------------------------------------
+
+# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/ppca.dml
+
+from typing import Dict
+
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def ppca(X: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+ """
+ :param X: n x m input feature matrix
+ :param k: indicates dimension of the new vector space constructed from eigen vectors
+ :param maxi: maximum number of iterations until convergence
+ :param tolobj: objective function tolerance value to stop ppca algorithm
+ :param tolrecerr: reconstruction error tolerance value to stop the algorithm
+ :param verbose: verbose debug output
+ :return: 'OperationNode' containing output feature matrix with k columns & output dominant eigen vectors (can be used for projections)
+ """
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'ppca', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/scale.py
similarity index 62%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/scale.py
index 80e5b67..f1e0818 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/scale.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/scale.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def scale(X: OperationNode, center: bool, scale: bool) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X, 'center':center, 'scale':scale}
+ return OperationNode(X.sds_context, 'scale', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=3, output_types=[OutputType.MATRIX, OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/scaleApply.py
similarity index 60%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/scaleApply.py
index 80e5b67..4d9a19e 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/scaleApply.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/scaleApply.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def scaleApply(X: OperationNode, Centering: OperationNode, ScaleFactor: OperationNode) -> OperationNode:
+
+
+ X._check_matrix_op()
+ Centering._check_matrix_op()
+ ScaleFactor._check_matrix_op()
+ params_dict = {'X':X, 'Centering':Centering, 'ScaleFactor':ScaleFactor}
+ return OperationNode(X.sds_context, 'scaleApply', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/sigmoid.py
similarity index 66%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/sigmoid.py
index 80e5b67..01e6b8e 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/sigmoid.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/sigmoid.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def sigmoid(X: OperationNode) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ return OperationNode(X.sds_context, 'sigmoid', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/slicefinder.py
similarity index 59%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/slicefinder.py
index 80e5b67..2c4f26e 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/slicefinder.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/slicefinder.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def slicefinder(X: OperationNode, e: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ e._check_matrix_op()
+ params_dict = {'X':X, 'e':e}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'slicefinder', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=3, output_types=[OutputType.MATRIX, OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/smote.py
similarity index 65%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/smote.py
index 80e5b67..c67e683 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/smote.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/smote.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def smote(X: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'smote', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/split.py
similarity index 59%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/split.py
index 80e5b67..19fc4e7 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/split.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/split.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def split(X: OperationNode, Y: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ Y._check_matrix_op()
+ params_dict = {'X':X, 'Y':Y}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'split', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=4, output_types=[OutputType.MATRIX, OutputType.MATRIX, OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/statsNA.py
similarity index 65%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/statsNA.py
index 80e5b67..1fe4579 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/statsNA.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/statsNA.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def statsNA(X: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'statsNA', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/steplm.py
similarity index 60%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/steplm.py
index 80e5b67..ed11c00 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/steplm.py
@@ -20,15 +20,22 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/steplm.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def steplm(X: OperationNode, y: OperationNode, **kwargs: Dict[str, VALID_INPUT_TYPES]) -> OperationNode:
+
+
+ X._check_matrix_op()
+ y._check_matrix_op()
+ params_dict = {'X':X, 'y':y}
+ params_dict.update(kwargs)
+ return OperationNode(X.sds_context, 'steplm', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/univar.py
similarity index 65%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/univar.py
index 80e5b67..a9a6545 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/univar.py
@@ -20,15 +20,21 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/univar.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def univar(X: OperationNode, types: OperationNode) -> OperationNode:
+
+
+ X._check_matrix_op()
+ types._check_matrix_op()
+ params_dict = {'X':X, 'types':types}
+ return OperationNode(X.sds_context, 'univar', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/vectorToCsv.py
similarity index 66%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/vectorToCsv.py
index 80e5b67..b148e9c 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/vectorToCsv.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/vectorToCsv.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def vectorToCsv(vector: OperationNode) -> OperationNode:
+
+
+ vector._check_matrix_op()
+ params_dict = {'vector':vector}
+ return OperationNode(vector.sds_context, 'vectorToCsv', named_input_nodes=params_dict, output_type=OutputType.STRING)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/winsorize.py
similarity index 66%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/winsorize.py
index 80e5b67..fdeb287 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/winsorize.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/winsorize.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def winsorize(X: OperationNode, verbose: bool) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X, 'verbose':verbose}
+ return OperationNode(X.sds_context, 'winsorize', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/xdummy1.py
similarity index 66%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/xdummy1.py
index 80e5b67..a8799b8 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/xdummy1.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/xdummy1.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def xdummy1(X: OperationNode) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ return OperationNode(X.sds_context, 'xdummy1', named_input_nodes=params_dict, output_type=OutputType.MATRIX)
+
+
+
\ No newline at end of file
diff --git a/src/main/python/systemds/operator/algorithm/__init__.py b/src/main/python/systemds/operator/algorithm/builtin/xdummy2.py
similarity index 65%
copy from src/main/python/systemds/operator/algorithm/__init__.py
copy to src/main/python/systemds/operator/algorithm/builtin/xdummy2.py
index 80e5b67..9c77cb4 100644
--- a/src/main/python/systemds/operator/algorithm/__init__.py
+++ b/src/main/python/systemds/operator/algorithm/builtin/xdummy2.py
@@ -20,15 +20,20 @@
# -------------------------------------------------------------
# Autogenerated By : src/main/python/generator/generator.py
+# Autogenerated From : scripts/builtin/xdummy2.dml
-from .builtin.l2svm import l2svm
-from .builtin.multiLogRegPredict import multiLogRegPredict
-from .builtin.multiLogReg import multiLogReg
-from .builtin.lm import lm
-from .builtin.kmeans import kmeans
-from .builtin.toOneHot import toOneHot
-from .builtin.pca import pca
-from .builtin.kmeansPredict import kmeansPredict
-from .builtin.alsTopkPredict import alsTopkPredict
+from typing import Dict
-__all__ = [l2svm, multiLogRegPredict, multiLogReg, lm, kmeans, toOneHot, pca, kmeansPredict, alsTopkPredict]
+from systemds.operator import OperationNode
+from systemds.script_building.dag import OutputType
+from systemds.utils.consts import VALID_INPUT_TYPES
+
+def xdummy2(X: OperationNode) -> OperationNode:
+
+
+ X._check_matrix_op()
+ params_dict = {'X':X}
+ return OperationNode(X.sds_context, 'xdummy2', named_input_nodes=params_dict, output_type=OutputType.LIST, number_of_outputs=2, output_types=[OutputType.MATRIX, OutputType.MATRIX])
+
+
+
\ No newline at end of file