class_docstr: Defines the top-level Model Analysis API.
  Use RAIInsights to analyze errors, explain the most important
  features, compute counterfactuals and run causal analysis in a
  single API.
class_docstr_tok: ["Defines","the","top-level","Model","Analysis","API",".","Use","RAIInsights","to","analyze","errors",",","explain","the","most","important","features",",","compute","counterfactuals","and","run","causal","analysis","in","a","single","API","."]
docstr: Get the model's method for the indicated purpose.
  
  :param purpose: the purpose to identify suitable model methods
  :type purpose: MethodPurpose
  :return: the model's first method with the corresponding purpose
      if any, otherwise None
  :rtype: Union[None, Any]
docstr_tok: ["Get","the","model","'s","method","for","the","indicated","purpose",".",":","param","purpose",":","the","purpose","to","identify","suitable","model","methods",":","type","purpose",":","MethodPurpose",":","return",":","the","model","'s","first","method","with","the","corresponding","purpose","if","any",",","otherwise","None",":","rtype",":","Union","[","None",",","Any","]"]
code: def _get_model_method(self, *, purpose: MethodPurpose):
      """Get the model's method for the indicated purpose.
  
      :param purpose: the purpose to identify suitable model methods
      :type purpose: MethodPurpose
      :return: the model's first method with the corresponding purpose
          if any, otherwise None
      :rtype: Union[None, Any]
      """
      methods = [
          m
          for m in MODEL_METHODS[self.task_type]
          if m.purpose == purpose
      ]
      if len(methods) == 0:
          return None
      # If a method is optional don't fail
      if methods[0].optional and not hasattr(
          self.model, methods[0].name
      ):
          return None
      return getattr(self.model, methods[0].name)
  
imports: import json
  import pickle
  import warnings
  from enum import Enum
  from pathlib import Path
  from typing import Any, List, Optional, Union
  import numpy
  import pandas
  from erroranalysis._internal.cohort_filter import FilterDataWithCohortFilters
  from erroranalysis._internal.process_categoricals import process_categoricals
  from raiutils.data_processing import convert_to_list
  from raiutils.exceptions import SystemErrorException, UserConfigValidationException
  from raiutils.models import Forecasting, ModelTask, SKLearn
  from responsibleai._interfaces import Dataset, RAIInsightsData, TabularDatasetMetadata
  from responsibleai._internal._forecasting_wrappers import _wrap_model
  from responsibleai._internal.constants import FileFormats, ManagerNames, Metadata, SerializationAttributes
  from responsibleai.feature_metadata import FeatureMetadata
  from responsibleai.managers.causal_manager import CausalManager
  from responsibleai.managers.counterfactual_manager import CounterfactualManager
  from responsibleai.managers.data_balance_manager import DataBalanceManager
  from responsibleai.managers.error_analysis_manager import ErrorAnalysisManager
  from responsibleai.managers.explainer_manager import ExplainerManager
  from responsibleai.rai_insights.rai_base_insights import RAIBaseInsights
label_desc: Use image node_id 28 for calling the RAIInsights obj's underlying member method code with example usage: obj._get_model_method() and returns: getattr, None, None