def METHOD_NAME() -> FrameworkInfo:
    """
    Detect the information for the onnx/onnxruntime framework such as package versions,
    availability for core actions such as training and inference,
    sparsification support, and inference provider support.
    :return: The framework info for onnx/onnxruntime
    :rtype: FrameworkInfo
    """
    all_providers = []
    available_providers = []
    if check_onnxruntime_install(raise_on_error=False):
        from onnxruntime import get_all_providers, get_available_providers
        available_providers = get_available_providers()
        all_providers = get_all_providers()
    cpu_provider = FrameworkInferenceProviderInfo(
        name="cpu",
        description="Base CPU provider within ONNXRuntime",
        device="cpu",
        supported_sparsification=SparsificationInfo(),  # TODO: fill in when available
        available=(
            check_onnx_install(raise_on_error=False)
            and check_onnxruntime_install(raise_on_error=False)
            and "CPUExecutionProvider" in available_providers
        ),
        properties={},
        warnings=[],
    )
    gpu_provider = FrameworkInferenceProviderInfo(
        name="cuda",
        description="Base GPU CUDA provider within ONNXRuntime",
        device="gpu",
        supported_sparsification=SparsificationInfo(),  # TODO: fill in when available
        available=(
            check_onnx_install(raise_on_error=False)
            and check_onnxruntime_install(raise_on_error=False)
            and "CUDAExecutionProvider" in available_providers
        ),
        properties={},
        warnings=[],
    )
    return FrameworkInfo(
        framework=Framework.onnx,
        package_versions={
            "onnx": get_version(package_name="onnx", raise_on_error=False),
            "onnxruntime": (
                get_version(package_name="onnxruntime", raise_on_error=False)
            ),
            "sparsezoo": get_version(
                package_name="sparsezoo",
                raise_on_error=False,
                alternate_package_names=["sparsezoo-nightly"],
            ),
            "sparseml": get_version(
                package_name="sparseml",
                raise_on_error=False,
                alternate_package_names=["sparseml-nightly"],
            ),
        },
        sparsification=sparsification_info(),
        inference_providers=[cpu_provider, gpu_provider],
        properties={
            "available_providers": available_providers,
            "all_providers": all_providers,
        },
        training_available=False,
        sparsification_available=True,
        exporting_onnx_available=True,
        inference_available=True,
    )