class_docstr: The IssueFinder class is responsible for managing the process of identifying
  issues in the dataset by handling the creation and execution of relevant
  IssueManagers. It serves as a coordinator or helper class for the Datalab class
  to encapsulate the specific behavior of the issue finding process.
  
  At a high level, the IssueFinder is responsible for:
  
  - Determining which types of issues to look for.
  - Instantiating the appropriate IssueManagers using a factory.
  - Running the IssueManagers' `find_issues` methods.
  - Collecting the results into a DataIssues instance.
  
  Parameters
  ----------
  datalab : Datalab
      The Datalab instance associated with this IssueFinder.
  
  task : str
      The type of machine learning task that the dataset is used for.
  
  verbosity : int
      Controls the verbosity of the output during the issue finding process.
  
  Note
  ----
  This class is not intended to be used directly. Instead, use the
  `Datalab.find_issues` method which internally utilizes an IssueFinder instance.
class_docstr_tok: ["The","IssueFinder","class","is","responsible","for","managing","the","process","of","identifying","issues","in","the","dataset","by","handling","the","creation","and","execution","of","relevant","IssueManagers",".","It","serves","as","a","coordinator","or","helper","class","for","the","Datalab","class","to","encapsulate","the","specific","behavior","of","the","issue","finding","process",".","At","a","high","level",",","the","IssueFinder","is","responsible","for",":","-","Determining","which","types","of","issues","to","look","for",".","-","Instantiating","the","appropriate","IssueManagers","using","a","factory",".","-","Running","the","IssueManagers","'","`","find_issues","`","methods",".","-","Collecting","the","results","into","a","DataIssues","instance",".","Parameters","--","--","--","--","--","datalab",":","Datalab","The","Datalab","instance","associated","with","this","IssueFinder",".","task",":","str","The","type","of","machine","learning","task","that","the","dataset","is","used","for",".","verbosity",":","int","Controls","the","verbosity","of","the","output","during","the","issue","finding","process",".","Note","--","--","This","class","is","not","intended","to","be","used","directly",".","Instead",",","use","the","`","Datalab.find_issues","`","method","which","internally","utilizes","an","IssueFinder","instance","."]
docstr: Set necessary configuration for each IssueManager in a dictionary.
  
  While each IssueManager defines default values for its arguments,
  the Datalab class needs to organize the calls to each IssueManager
  with different arguments, some of which may be user-provided.
  
  Parameters
  ----------
  issue_types :
      Dictionary of issue types and argument configuration for their respective IssueManagers.
      If None, then the `required_defaults_dict` is used.
  
  required_defaults_dict :
      Dictionary of default parameter configuration for each issue type.
  
  Returns
  -------
  issue_types_copy :
      Dictionary of issue types and their parameter configuration.
      The input `issue_types` is copied and updated with the necessary default values.
docstr_tok: ["Set","necessary","configuration","for","each","IssueManager","in","a","dictionary",".","While","each","IssueManager","defines","default","values","for","its","arguments",",","the","Datalab","class","needs","to","organize","the","calls","to","each","IssueManager","with","different","arguments",",","some","of","which","may","be","user-provided",".","Parameters","--","--","--","--","--","issue_types",":","Dictionary","of","issue","types","and","argument","configuration","for","their","respective","IssueManagers",".","If","None",",","then","the","`","required_defaults_dict","`","is","used",".","required_defaults_dict",":","Dictionary","of","default","parameter","configuration","for","each","issue","type",".","Returns","--","--","--","-","issue_types_copy",":","Dictionary","of","issue","types","and","their","parameter","configuration",".","The","input","`","issue_types","`","is","copied","and","updated","with","the","necessary","default","values","."]
code: def _set_issue_types(
      self,
      issue_types: Optional[Dict[str, Any]],
      required_defaults_dict: Dict[str, Any],
  ) -> Dict[str, Any]:
      """Set necessary configuration for each IssueManager in a dictionary.
  
      While each IssueManager defines default values for its arguments,
      the Datalab class needs to organize the calls to each IssueManager
      with different arguments, some of which may be user-provided.
  
      Parameters
      ----------
      issue_types :
          Dictionary of issue types and argument configuration for their respective IssueManagers.
          If None, then the `required_defaults_dict` is used.
  
      required_defaults_dict :
          Dictionary of default parameter configuration for each issue type.
  
      Returns
      -------
      issue_types_copy :
          Dictionary of issue types and their parameter configuration.
          The input `issue_types` is copied and updated with the necessary default values.
      """
      if issue_types is not None:
          issue_types_copy = issue_types.copy()
          self._check_missing_args(
              required_defaults_dict, issue_types_copy
          )
      else:
          issue_types_copy = required_defaults_dict.copy()
          # keep only default issue types
          issue_types_copy = {
              issue: issue_types_copy[issue]
              for issue in list_default_issue_types(self.task)
              if issue in issue_types_copy
          }
  
      # Check that all required arguments are provided.
      self._validate_issue_types_dict(
          issue_types_copy, required_defaults_dict
      )
  
      # Remove None values from argument list, rely on default values in IssueManager
      for key, value in issue_types_copy.items():
          issue_types_copy[key] = {
              k: v for k, v in value.items() if v is not None
          }
  
      return issue_types_copy
  
file_path: cleanlab/cleanlab/datalab/internal/issue_finder.py
imports: from __future__ import annotations
  import warnings
  from typing import TYPE_CHECKING, Any, Dict, Optional
  import numpy
  from scipy.sparse import csr_matrix
  from cleanlab.datalab.internal.issue_manager_factory import _IssueManagerFactory, list_default_issue_types
  from cleanlab.datalab.internal.model_outputs import MultiClassPredProbs, RegressionPredictions
label_desc: Use image node_id 3 for calling the IssueFinder obj's underlying member method code with example usage: obj._set_issue_types(issue_types, required_defaults_dict) and returns: issue_types_copy