# /// script
# requires-python = "{{ requires_python }}"
# dependencies = {{ dependencies | tojson }}
# ///

import argparse
{% if args %}

def parse_args() -> argparse.Namespace:
    parser = argparse.ArgumentParser()
    {% for arg in args -%}
    {%- if arg.type == "bool" %}
    parser.add_argument(
        "--{{ arg.name }}", action="store_true", help="{{ arg.description }}"
    )
    {%- else %}
    parser.add_argument(
        "--{{ arg.name }}",
        type={{ arg.type }},
        required={{ "True" if arg.required else "False" }},
        {%- if not arg.required %}
        default={{ arg.default | topy }},
        {%- endif %}
        help="{{ arg.description }}",
    )
    {%- endif %}
    {% endfor %}
    return parser.parse_args()
{% endif %}

{% if args %}def main(
    {%- for arg in args %}
    {{ arg.name }}: {{ arg.type }},
    {%- endfor %}
) -> None:{% else %}def main() -> None:{% endif %}
    {{ body | indent(4) }}


if __name__ == "__main__":
    {% if args %}_args = parse_args()
    main(
        {%- for arg in args %}
        {{ arg.name }}=_args.{{ arg.name }},
        {%- endfor %}
    )
    {%- else %}main(){% endif %}
