class_docstr: Factory class for constructing concrete issue managers.
docstr: Constructs a concrete issue manager class from a string.
code: def from_str(cls, issue_type: str, task: str) -> Type[IssueManager]:
      """Constructs a concrete issue manager class from a string."""
      if isinstance(issue_type, list):
          raise ValueError(
              "issue_type must be a string, not a list. Try using from_list instead."
          )
  
      if task not in REGISTRY:
          raise ValueError(
              f"Invalid task type: {task}, must be in {list(REGISTRY.keys())}"
          )
      if issue_type not in REGISTRY[task]:
          raise ValueError(
              f"Invalid issue type: {issue_type} for task {task}"
          )
  
      return REGISTRY[task][issue_type]
  
file_path: cleanlab/cleanlab/datalab/internal/issue_manager_factory.py
imports: from __future__ import annotations
  from typing import Dict, List, Type
  from cleanlab.datalab.internal.issue_manager import ClassImbalanceIssueManager, DataValuationIssueManager, IssueManager, LabelIssueManager, NearDuplicateIssueManager, NonIIDIssueManager, ClassImbalanceIssueManager, UnderperformingGroupIssueManager, DataValuationIssueManager, OutlierIssueManager, NullIssueManager
  from cleanlab.datalab.internal.issue_manager.regression import RegressionLabelIssueManager
label_desc: Use image node_id 1 for calling the _IssueManagerFactory obj's underlying member method code with example usage: obj.from_str(cls, issue_type, task) and returns: REGISTRY