Source code for NeuroRuler.utils.cli_settings

"""CLI settings set through command-line arguments and ``cli_config.json``.

Command-line arguments override the values in the JSON."""

from typing import Any
import NeuroRuler.utils.global_vars as global_vars
from NeuroRuler.utils.constants import ThresholdFilter

DEBUG: bool = False
"""Whether or not to print debugging information throughout execution."""

RAW: bool = False
"""Whether to print the \"raw\" circumference.

If false, it prints a \"pretty\", rounded output with units included."""

FILE: str = ""
"""The file path."""

THETA_X: int = global_vars.THETA_X
"""In degrees"""
THETA_Y: int = global_vars.THETA_Y
"""In degrees"""
THETA_Z: int = global_vars.THETA_Z
"""In degrees"""
SLICE: int = -1
"""0-indexed. Overwritten later."""

CONDUCTANCE_PARAMETER: float = global_vars.CONDUCTANCE_PARAMETER
"""Smoothing option. See global_vars.CONDUCTANCE_PARAMETER."""
SMOOTHING_ITERATIONS: int = global_vars.SMOOTHING_ITERATIONS
"""Smoothing option. See global_vars.SMOOTHING_ITERATIONS."""
TIME_STEP: float = global_vars.TIME_STEP
"""Smoothing option. See global_vars.TIME_STEP."""

THRESHOLD_FILTER: ThresholdFilter = ThresholdFilter.Otsu
"""Which threshold filter to use. Default is Otsu."""

LOWER_BINARY_THRESHOLD: float = global_vars.LOWER_BINARY_THRESHOLD
"""Required threshold option for binary threshold.

If ``THRESHOLD_FILTER`` is ``ThresholdFilter.Otsu``, then this field will not be updated by CLI args
or by ``cli_config.json``."""

UPPER_BINARY_THRESHOLD: float = global_vars.UPPER_BINARY_THRESHOLD
"""Required threshold option for binary threshold.

If ``THRESHOLD_FILTER`` is ``ThresholdFilter.Otsu``, then this field will not be updated by CLI args
or by ``cli_config.json``."""


[docs] def get_settings() -> dict[str, Any]: r"""Returns ``dict`` containing values of all variables in this file, used for debugging :return: ``dict`` of all CLI settings :rtype: ``dict[str, Any]``""" return { "DEBUG": DEBUG, "RAW": RAW, "FILE": FILE, "THETA_X": THETA_X, "THETA_Y": THETA_Y, "THETA_Z": THETA_Z, "SLICE": SLICE, "CONDUCTANCE_PARAMETER": CONDUCTANCE_PARAMETER, "SMOOTHING_ITERATIONS": SMOOTHING_ITERATIONS, "TIME_STEP": TIME_STEP, "THRESHOLD_FILTER": THRESHOLD_FILTER, "LOWER_BINARY_THRESHOLD": LOWER_BINARY_THRESHOLD, "UPPER_BINARY_THRESHOLD": UPPER_BINARY_THRESHOLD, }