def parse_controlm_tree()

in dagify/converter/utils.py [0:0]


def parse_controlm_tree(root_node, parent):
    """Function to parse control m"""
    for node in root_node:
        match node.tag:
            case "FOLDER" | "SMART_FOLDER":
                # ufFolder = UFFolder()
                # ufFolder.from_xml(node)
                # parent.add_folder(ufFolder)
                parse_controlm_tree(node, parent)
            case "JOB":
                ufTask = UFTask()
                ufTask.from_xml(node)
                parent.add_task(ufTask)
                parse_controlm_tree(node, ufTask)
            case "VARIABLE":
                ufTaskVariable = UFTaskVariable()
                ufTaskVariable.from_xml(node)
                parent.add_variable(ufTaskVariable)
                parse_controlm_tree(node, ufTaskVariable)
            case "INCOND":
                ufTaskInCondition = UFTaskInCondition()
                ufTaskInCondition.from_xml(node)
                parent.add_in_condition(ufTaskInCondition)
                parse_controlm_tree(node, ufTaskInCondition)
            case "OUTCOND":
                ufTaskOutCondition = UFTaskOutCondition()
                ufTaskOutCondition.from_xml(node)
                parent.add_out_condition(ufTaskOutCondition)
                parse_controlm_tree(node, ufTaskOutCondition)
            case "SHOUT":
                ufTaskShout = UFTaskShout()
                ufTaskShout.from_xml(node)
                parent.add_shout(ufTaskShout)
                parse_controlm_tree(node, ufTaskShout)
            case _:
                print("Node: " + node.tag + " is not currently supported.")

    return parent