#!/usr/bin/env python3

"""
Instantiate variable fonts at specific weights/styles, producing static TTF files.
No subsetting, no recursive searching—just direct calls with hardcoded axis values.
Requires fontTools >= 4.0.

Genererated by ChatGTP o3-mini-high. Not human-modified.
"""

from fontTools.ttLib import TTFont
from fontTools.varLib.instancer import instantiateVariableFont

def instantiate_variable_font(input_font_path, axis_values, output_font_path):
    """
    1) Loads a variable font from `input_font_path`.
    2) Instantiates (flattens) it at the specified axis values (e.g. {"wght": 400}).
    3) Saves the result as a static TTF at `output_font_path`.
    """
    print(f"Instantiating {input_font_path} with axes={axis_values} -> {output_font_path}")
    vf = TTFont(input_font_path)
    static_font = instantiateVariableFont(vf, axis_values)
    static_font.flavor = "woff2"
    static_font.save(output_font_path)

def main():
    # Inconsolata (Variable)
    instantiate_variable_font(
        "Inconsolata-VariableFont_wdth,wght.ttf",
        {"wght": 400},
        "Inconsolata-400.woff2"
    )

    # Lora (Variable, normal and italic)
    instantiate_variable_font(
        "Lora-VariableFont_wght.ttf",
        {"wght": 400},
        "Lora-Regular.woff2"
    )
    instantiate_variable_font(
        "Lora-Italic-VariableFont_wght.ttf",
        {"wght": 400},
        "Lora-Italic.woff2"
    )

    # Raleway (Variable, normal and italic)
    instantiate_variable_font(
        "Raleway-VariableFont_wght.ttf",
        {"wght": 400},
        "Raleway-400.woff2"
    )
    instantiate_variable_font(
        "Raleway-VariableFont_wght.ttf",
        {"wght": 700},
        "Raleway-700.woff2"
    )
    instantiate_variable_font(
        "Raleway-Italic-VariableFont_wght.ttf",
        {"wght": 400},
        "Raleway-400-Italic.woff2"
    )
    instantiate_variable_font(
        "Raleway-Italic-VariableFont_wght.ttf",
        {"wght": 700},
        "Raleway-700-Italic.woff2"
    )

if __name__ == "__main__":
    main()
