code: def test_model_save_load_with_metadata(shap_model, tmp_path):
      model_path = str(tmp_path.joinpath("pyfunc_test"))
      mlflow.shap.save_explainer(
          shap_model,
          path=model_path,
          metadata={"metadata_key": "metadata_value"},
      )
  
      reloaded_model = mlflow.pyfunc.load_model(model_uri=model_path)
      assert (
          reloaded_model.metadata.metadata["metadata_key"]
          == "metadata_value"
      )
  
imports: import json
  from unittest import mock
  import numpy
  import pandas
  import pytest
  import shap
  import sklearn
  from numba import njit
  from packaging.version import Version
  from sklearn.datasets import fetch_california_housing, load_diabetes
  import mlflow
  import mlflow.pyfunc.scoring_server
  from mlflow import MlflowClient
  from mlflow.tracking.artifact_utils import _download_artifact_from_uri
  from mlflow.utils import PYTHON_VERSION
  from mlflow.utils.model_utils import _get_flavor_configuration
  from tests.helper_functions import _assert_pip_requirements, _compare_logged_code_paths, _mlflow_major_version_string, pyfunc_serve_and_score_model
label_desc: Use image node_id 16 for calling a global function with example usage: test_model_save_load_with_metadata(shap_model, tmp_path) without return types