code: def catboost_eval_metric(ml_task, eval_metric):
      if eval_metric == "user_defined_metric":
          return eval_metric
      metric_name_mapping = {
          BINARY_CLASSIFICATION: {
              "auc": "AUC",
              "logloss": "Logloss",
              "f1": "F1",
              "average_precision": "average_precision",
              "accuracy": "Accuracy",
          },
          MULTICLASS_CLASSIFICATION: {
              "logloss": "MultiClass",
              "f1": "TotalF1:average=Micro",
              "accuracy": "Accuracy",
          },
          REGRESSION: {
              "rmse": "RMSE",
              "mse": "mse",
              "mae": "MAE",
              "mape": "MAPE",
              "r2": "R2",
              "spearman": "spearman",
              "pearson": "pearson",
          },
      }
      return metric_name_mapping[ml_task][eval_metric]
  
imports: import copy
  import logging
  import os
  import time
  import numpy
  import pandas
  from sklearn.base import ClassifierMixin, RegressorMixin
  from supervised.algorithms.algorithm import BaseAlgorithm
  from supervised.algorithms.registry import BINARY_CLASSIFICATION, MULTICLASS_CLASSIFICATION, REGRESSION, AlgorithmsRegistry
  from supervised.preprocessing.preprocessing_utils import PreprocessingUtils
  from supervised.utils.config import LOG_LEVEL
  from supervised.utils.metric import CatBoostEvalMetricAveragePrecision, CatBoostEvalMetricMSE, CatBoostEvalMetricPearson, CatBoostEvalMetricSpearman, CatBoostEvalMetricUserDefined
  import catboost
  from catboost import CatBoost, CatBoostClassifier, CatBoostRegressor, Pool
label_desc: Use image node_id 1 for calling a global function with example usage: catboost_eval_metric(ml_task, eval_metric) and returns: metric_name_mapping, eval_metric