code: def _load(original_fn, f, *args, **kwargs):
      # see https://catboost.ai/en/docs/concepts/python-reference_catboost_load_model
      if not PatchCatBoostModelIO._current_task:
          return original_fn(f, *args, **kwargs)
  
      if isinstance(f, six.string_types):
          filename = f
      elif len(args) >= 1 and isinstance(args[0], six.string_types):
          filename = args[0]
      else:
          filename = None
  
      # register input model
      empty = _Empty()
      model = original_fn(f, *args, **kwargs)
      WeightsFileHandler.restore_weights_file(
          empty,
          filename,
          Framework.catboost,
          PatchCatBoostModelIO._current_task,
      )
      if empty.trains_in_model:
          # noinspection PyBroadException
          try:
              model.trains_in_model = empty.trains_in_model
          except Exception:
              pass
      return model
  
file_path: clearml/clearml/binding/frameworks/catboost_bind.py
imports: import sys
  from pathlib2 import Path
  import six
  from ..frameworks import WeightsFileHandler, _Empty, _patched_call
  from ..frameworks.base_bind import PatchBaseModelIO
  from ..import_bind import PostImportHookPatching
  from ...model import Framework
label_desc: Use image node_id 4 for calling the PatchCatBoostModelIO obj's underlying member method code with example usage: obj._load(original_fn, f) and returns: model, original_fn