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

import typing
import pathlib
from styxdefs import *
import dataclasses

UBER_ALIGN_TEST_PY_METADATA = Metadata(
    id="1cdb35a694ecfd6f154d70ecf75d0b5138262e0f.boutiques",
    name="uber_align_test.py",
    package="afni",
    container_image_tag="afni/afni_make_build:AFNI_24.2.06",
)


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


def uber_align_test_py(
    no_gui: bool = False,
    print_script: bool = False,
    save_script: str | None = None,
    user_variable: list[str] | None = None,
    qt_opts: str | None = None,
    help_: bool = False,
    help_gui: bool = False,
    history: bool = False,
    show_valid_opts: bool = False,
    version: bool = False,
    runner: Runner | None = None,
) -> UberAlignTestPyOutputs:
    """
    Generate script to test anatomical/EPI alignment.
    
    Author: AFNI Developers
    
    URL: https://afni.nimh.nih.gov/
    
    Args:
        no_gui: Run without the graphical user interface (GUI).
        print_script: Print the generated script to standard output.
        save_script: Save the generated script to the specified file.
        user_variable: Specify user variables for alignment.
        qt_opts: Pass PyQt4 options directly to the GUI.
        help_: Show help information.
        help_gui: Show help information for the GUI.
        history: Show command history.
        show_valid_opts: Show valid options.
        version: Show version information.
        runner: Command runner.
    Returns:
        NamedTuple of outputs (described in `UberAlignTestPyOutputs`).
    """
    runner = runner or get_global_runner()
    execution = runner.start_execution(UBER_ALIGN_TEST_PY_METADATA)
    cargs = []
    cargs.append("uber_align_test.py")
    if no_gui:
        cargs.append("-no_gui")
    if print_script:
        cargs.append("-print_script")
    if save_script is not None:
        cargs.extend([
            "-save_script",
            save_script
        ])
    if user_variable is not None:
        cargs.extend([
            "-uvar",
            *user_variable
        ])
    if qt_opts is not None:
        cargs.extend([
            "-qt_opts",
            qt_opts
        ])
    if help_:
        cargs.append("-help")
    if help_gui:
        cargs.append("-help_gui")
    if history:
        cargs.append("-hist")
    if show_valid_opts:
        cargs.append("-show_valid_opts")
    if version:
        cargs.append("-ver")
    ret = UberAlignTestPyOutputs(
        root=execution.output_file("."),
    )
    execution.run(cargs)
    return ret


__all__ = [
    "UBER_ALIGN_TEST_PY_METADATA",
    "UberAlignTestPyOutputs",
    "uber_align_test_py",
]
