class_docstr: This is the `Experiment` class for each experiment being run. The API is designed similar to mlflow.
  (The link: https://mlflow.org/docs/latest/python_api/mlflow.html)
class_docstr_tok: ["This","is","the","`","Experiment","`","class","for","each","experiment","being","run",".","The","API","is","designed","similar","to","mlflow",".","(","The","link",":","https",":","\/\/mlflow.org\/docs\/latest\/python_api\/mlflow.html",")"]
docstr: Get specific recorder by name or id. If it does not exist, raise ValueError
  
  Parameters
  ----------
  recorder_id :
      The id of recorder
  recorder_name :
      The name of recorder
  
  Returns
  -------
  Recorder:
      The searched recorder
  
  Raises
  ------
  ValueError
docstr_tok: ["Get","specific","recorder","by","name","or","id",".","If","it","does","not","exist",",","raise","ValueError","Parameters","--","--","--","--","--","recorder_id",":","The","id","of","recorder","recorder_name",":","The","name","of","recorder","Returns","--","--","--","-","Recorder",":","The","searched","recorder","Raises","--","--","--","ValueError"]
code: def _get_recorder(self, recorder_id=None, recorder_name=None):
      """
      Get specific recorder by name or id. If it does not exist, raise ValueError
  
      Parameters
      ----------
      recorder_id :
          The id of recorder
      recorder_name :
          The name of recorder
  
      Returns
      -------
      Recorder:
          The searched recorder
  
      Raises
      ------
      ValueError
      """
      raise NotImplementedError(
          f"Please implement the `_get_recorder` method"
      )
  
imports: from typing import Dict, List, Union
  from qlib.typehint import Literal
  import mlflow
  from mlflow.entities import ViewType
  from mlflow.exceptions import MlflowException
  from .recorder import Recorder, MLflowRecorder
  from ..log import get_module_logger
label_desc: Use image node_id 12 for calling the Experiment obj's underlying member method code with example usage: obj._get_recorder(recorder_id, recorder_name) without return types