code: def get_model_framework(obj):
      framework = Framework.scikitlearn
      object_orig_module = None
      # noinspection PyBroadException
      try:
          object_orig_module = (
              obj.__module__
              if hasattr(obj, "__module__")
              else obj.__package__
          )
          model = object_orig_module.partition(".")[0]
          if model == "sklearn":
              framework = Framework.scikitlearn
          elif model == "xgboost":
              framework = Framework.xgboost
          else:
              framework = Framework.scikitlearn
      except Exception:
          LoggerRoot.get_base_logger().debug(
              "Can't get model framework {}, model framework will be: {} ".format(
                  object_orig_module, framework
              )
          )
      finally:
          return framework
  
imports: import sys
  import warnings
  from functools import partial
  import six
  from pathlib2 import Path
  from .import_bind import PostImportHookPatching
  from ..binding.frameworks import _patched_call, _Empty, WeightsFileHandler
  from ..config import running_remotely
  from ..debugging.log import LoggerRoot
  from ..model import Framework
  from ..utilities.lowlevel.file_access import get_filename_from_file_object, buffer_writer_close_cb
label_desc: Use image node_id 9 for calling the PatchedJoblib obj's underlying member method code with example usage: obj.get_model_framework(obj) and returns: framework