code: def _unset_sub_backend_from_ivy(
      original: dict,
      target: ModuleType,
      sub_backend: ModuleType,
      sub_backend_str: str,
  ):
      backend_str = ivy.current_backend_str()
      for k, v in sub_backend.__dict__.items():
          if k in target.__dict__:
              if (
                  isinstance(v, FunctionType)
                  and sub_backend_str
                  in f"sub_backends.{sub_backend_str}"
                  in v.__module__
              ):
                  target.__dict__[k] = original[k]
              if (
                  isinstance(v, ModuleType)
                  and "ivy.functional." in v.__name__
                  and os.path.join("{}", "__init__.py").format(
                      backend_str
                  )
                  not in v.__file__
              ):
                  _unset_sub_backend_from_ivy(
                      original[k].__dict__,
                      target.__dict__[k],
                      sub_backend.__dict__[k],
                      sub_backend_str,
                  )
  
file_path: ivy/ivy/utils/backend/sub_backend_handler.py
imports: import os
  import re
  from types import ModuleType, FunctionType
  import logging
  import importlib
  import ivy
  from ivy.func_wrapper import _wrap_function
  from ivy.utils.exceptions import IvyException
label_desc: Use image node_id 7 for calling a global function with example usage: _unset_sub_backend_from_ivy(original, target, sub_backend, sub_backend_str) without return types