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

import typing
import pathlib
from styxdefs import *
import dataclasses

BEDPOSTX_SINGLE_SLICE_SH_METADATA = Metadata(
    id="c5da5b3d8c7782f095a232569e1a4d3af1ffde90.boutiques",
    name="bedpostx_single_slice.sh",
    package="fsl",
    container_image_tag="mcin/fsl:6.0.5",
)


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


def bedpostx_single_slice_sh(
    input_number: str,
    output_length: float,
    runner: Runner | None = None,
) -> BedpostxSingleSliceShOutputs:
    """
    Add leading zeros to a number up to the specified length.
    
    Args:
        input_number: Input number to pad.
        output_length: Desired length of output with leading zeros.
        runner: Command runner.
    Returns:
        NamedTuple of outputs (described in `BedpostxSingleSliceShOutputs`).
    """
    runner = runner or get_global_runner()
    execution = runner.start_execution(BEDPOSTX_SINGLE_SLICE_SH_METADATA)
    cargs = []
    cargs.append("zeropad")
    cargs.append(input_number)
    cargs.append(str(output_length))
    ret = BedpostxSingleSliceShOutputs(
        root=execution.output_file("."),
    )
    execution.run(cargs)
    return ret


__all__ = [
    "BEDPOSTX_SINGLE_SLICE_SH_METADATA",
    "BedpostxSingleSliceShOutputs",
    "bedpostx_single_slice_sh",
]
