# This file was auto generated by Styx.
# Do not edit this file directly.

import typing
import pathlib
from styxdefs import *
import dataclasses

V__INSTALL_NMT_METADATA = Metadata(
    id="633471699f3ec0b5e1dba7c99d8f03be3987c8b8.boutiques",
    name="@Install_NMT",
    package="afni",
    container_image_tag="afni/afni_make_build:AFNI_24.2.06",
)


class VInstallNmtOutputs(typing.NamedTuple):
    """
    Output object returned when calling `v__install_nmt(...)`.
    """
    root: OutputPathType
    """Output root folder. This is the root folder for all outputs."""


def v__install_nmt(
    install_dir: str | None = None,
    version: str | None = None,
    variant: str | None = None,
    overwrite: bool = False,
    wget: bool = False,
    curl: bool = False,
    help_: bool = False,
    runner: Runner | None = None,
) -> VInstallNmtOutputs:
    """
    Installs the NIMH Macaque Template (NMT) with the accompanying Cortical
    Hierarchy Atlas of the Rhesus Macaque (CHARM).
    
    Author: AFNI Team
    
    URL: https://afni.nimh.nih.gov/pub/dist/doc/program_help/@Install_NMT.html
    
    Args:
        install_dir: The install location for the NMT.
        version: The version of the NMT you wish to install (valid options:\
            2.1, 2.0, 1.3, 1.2).
        variant: The NMT v2 has both a symmetric and asymmetric variant.\
            Specify as either 'sym' or 'asym'. Valid for NMT v2 only.
        overwrite: Allows the script to remove a pre-existing NMT directory.
        wget: Use wget to download archive. Script chooses by default with\
            preference for curl.
        curl: Use curl to download archive. Script chooses by default with\
            preference for curl.
        help_: Displays the help message.
        runner: Command runner.
    Returns:
        NamedTuple of outputs (described in `VInstallNmtOutputs`).
    """
    runner = runner or get_global_runner()
    execution = runner.start_execution(V__INSTALL_NMT_METADATA)
    cargs = []
    cargs.append("Install_NMT")
    if install_dir is not None:
        cargs.append(install_dir)
    if version is not None:
        cargs.extend([
            "-nmt_ver",
            version
        ])
    if variant is not None:
        cargs.extend([
            "-sym",
            variant
        ])
    if overwrite:
        cargs.append("-overwrite")
    if wget:
        cargs.append("-wget")
    if curl:
        cargs.append("-curl")
    if help_:
        cargs.append("-help")
    ret = VInstallNmtOutputs(
        root=execution.output_file("."),
    )
    execution.run(cargs)
    return ret


__all__ = [
    "VInstallNmtOutputs",
    "V__INSTALL_NMT_METADATA",
    "v__install_nmt",
]
