Skip to content

core

Analysis Registration Mechanism

Analyses Handler for registration

Classes

AnalysisTestingHandler dataclass

Analysis handler for testing definition

Attributes

api_runner instance-attribute
Python
api_runner: Callable[[TestParams, Path, Any | None, bool], TestOutput]
cli_runner instance-attribute
Python
cli_runner: Callable[[TestParams, Path, Path | None, bool], TestOutput]
validator instance-attribute
Python
validator: Callable[[TestOutput, ReferenceOutput], None]

Methods:

__init__
Python
__init__(api_runner: Callable[[TestParams, Path, Any | None, bool], TestOutput], cli_runner: Callable[[TestParams, Path, Path | None, bool], TestOutput], validator: Callable[[TestOutput, ReferenceOutput], None]) -> None

AnalysisHandler dataclass

Analysis handler definition

Attributes

config instance-attribute
Python
config: Any
cli instance-attribute
Python
cli: Typer | Callable | None
testing instance-attribute
Python
testing: AnalysisTestingHandler | None
cli_group_name class-attribute instance-attribute
Python
cli_group_name: str | None = None

Methods:

__init__
Python
__init__(config: Any, cli: Typer | Callable | None, testing: AnalysisTestingHandler | None, cli_group_name: str | None = None) -> None

Analyses Registry.

Analyses are discovered lazily through the sct.analyses entry-point namespace. Discovery (and therefore importing the heavy analysis implementations) only happens on first access via get_analysis_registry / load_analyses, never at import sct time.

Attributes

ANALYSIS_REGISTRY module-attribute

Python
ANALYSIS_REGISTRY: dict[str, AnalysisHandler] = {}

Classes

Functions:

register_analysis

Python
register_analysis(analysis_type: str, handler: AnalysisHandler) -> None

Registration of an AnalysisHandler.

load_analyses

Python
load_analyses(*, force: bool = False) -> None

Discover and register all installed analysis plugins (memoized).

Parameters:

Name Type Description Default
force bool

re-run discovery even if it already ran, by default False

False

get_analysis_registry

Python
get_analysis_registry() -> dict[str, AnalysisHandler]

Return the analyses registry, triggering plugin discovery on first use.