Source code for node_dataset_to_table
# This file is part of Sympathy for Data.
# Copyright (c) 2021 Combine Control Systems
#
# SYMPATHY FOR DATA COMMERCIAL LICENSE
# You should have received a link to the License with Sympathy for Data.
from sympathy.api import node, table, exceptions
from sympathy.api.nodeconfig import Port, Ports, Tag, Tags
from sylib_aml.dataset import DatasetPort
[docs]
class DatasetToTables(node.Node):
"""
Convert Dataset to Table(s).
"""
name = "Dataset to tables (Experimental)"
nodeid = "com.sympathyfordata.advancedmachinelearning.datasettotables"
author = "Jannes Germishuys"
icon = "ds2tables.svg"
tags = Tags(Tag.MachineLearning.Processing)
inputs = Ports([DatasetPort("Dataset", "dataset")])
outputs = Ports([Port.Tables("Tables", name="out_tables")])
def execute(self, node_context):
from sylib_aml.amlnets import TabDataSet
input_ds = node_context.input["dataset"]
input_ds.load()
input_ds = input_ds.get_ds()
if input_ds is None:
raise exceptions.SyDataError("Empty dataset")
ds = TabDataSet(
csv_file=input_ds["paths"],
reader_config=input_ds["reader_config"],
column_config=input_ds["column_config"],
)
output_tables = node_context.output[0]
for input_table in ds:
output = table.File.from_dataframe(input_table)
output_tables.append(output)