def METHOD_NAME(
    model_path: str,
    output_path: str = "",
    check_type: bool = False,
    strict_mode: bool = False,
    data_prop: bool = False,
) -> None:
    """
    Take model path for shape_inference same as infer_shape; it support >2GB models
    Directly output the inferred model to the output_path; Default is the original model path
    """
    if isinstance(model_path, ModelProto):
        raise TypeError(
            "infer_shapes_path only accepts model Path (String),"
            "you can use infer_shapes for the ModelProto."
        )
    # Directly output the inferred model into the specified path, return nothing
    elif isinstance(model_path, str):
        # If output_path is not defined, default output_path would be the original model path
        if output_path == "":
            output_path = model_path
        C.METHOD_NAME(model_path, output_path, check_type, strict_mode, data_prop)
    else:
        raise TypeError(
            "infer_shapes_path only accepts model path (String), "
            "incorrect type: {}".format(type(model_path))
        )