# Script

Note

OPS! For internal use!

class `systemds.script_building.script.``DMLScript`(context: SystemDSContext)

  DMLScript is the class used to describe our intended behavior in DML. This script can be then executed to get the results.

  TODO caching

  TODO rerun with different inputs without recompilation

  `add_code`(code: str) → None

    Add a dml code line to our script

    Parameters

      code – the dml code line

  `add_input_from_python`(var_name: str, input_var: systemds.script_building.dag.DAGNode) → None

    Add an input for our preparedScript. Should only be executed for data that is python local.

    Parameters

      - var_name – name of variable

      - input_var – the DAGNode object which has data

  `build_code`(dag_root: systemds.script_building.dag.DAGNode) → None

    Builds code from our DAG

    Parameters

      dag_root – the topmost operation of our DAG, result of operation will be output

  `execute`(lineage: bool = False) → Union[py4j.java_gateway.JavaObject, Tuple[py4j.java_gateway.JavaObject, str]]

    If not already created, create a preparedScript from our DMLCode, pass python local data to our prepared script, then execute our script and return the resultVariables

    Returns

      resultVariables of our execution