def process_template()

in tools/template_optimizer.py [0:0]


def process_template(input_template_path: str, output_format: str = "json"):
    if output_format not in ["json", "python"]:
        raise ValueError(f"Unsupported output format: {output_format}")

    with open(input_template_path, "r") as content:
        data = json.load(content)

    if "parameters" in data:
        for parameter in data["parameters"]:
            if "metadata" in data["parameters"][parameter]:
                if (
                    "description" in data["parameters"][parameter]["metadata"]
                    and len(data["parameters"][parameter]["metadata"]) == 1
                ):
                    del data["parameters"][parameter]["metadata"]

            if parameter in ["clusterLocation", "location"]:
                if "allowedValues" in data["parameters"][parameter]:
                    del data["parameters"][parameter]["allowedValues"]

    # TODO - @digimaun
    # if "outputs" in data:
    #     del data["outputs"]

    output_ext = "json" if output_format == "json" else "py"
    output_template_path = f"./optimized.{output_ext}"
    with open(output_template_path, "w") as write_file:
        if output_format == "json":
            write_file.write(json.dumps(data, indent=2))
        elif output_format == "python":
            write_file.write(str(data))
            write_file.close()
            run(f"black {output_template_path} --line-length=119 --target-version=py38", check=True)

    # Test serialized content
    with open(output_template_path, "r") as read_file:
        content = read_file.read()
        if output_format == "json":
            payload_to_integrate = json.loads(content)
        elif output_format == "python":
            payload_to_integrate = literal_eval(content)

    assert payload_to_integrate == data
    TestCase().assertDictEqual(data, payload_to_integrate)
    print("Expected data assertions passed!")