code: def __get_source_with_decorators(
      func, original_module=None, sanitize_function=None
  ):
      if original_module is None:
          original_module = inspect.getmodule(func)
      func_members = CreateFromFunction.__get_func_members(
          original_module
      )
      try:
          func_members_dict = dict(
              inspect.getmembers(original_module, inspect.isfunction)
          )
      except Exception as e:
          name = getattr(original_module, "__name__", original_module)
          getLogger().warning(
              "Could not fetch functions from {}: {}".format(name, e)
          )
          func_members_dict = {}
      decorated_func = CreateFromFunction._deep_extract_wrapped(func)
      decorated_func_source = CreateFromFunction.__sanitize(
          inspect.getsource(decorated_func),
          sanitize_function=sanitize_function,
      )
      try:
          import ast
  
          parsed_decorated = ast.parse(decorated_func_source)
          for body_elem in parsed_decorated.body:
              if not isinstance(body_elem, ast.FunctionDef):
                  continue
              for decorator in body_elem.decorator_list:
                  name = None
                  if isinstance(decorator, ast.Name):
                      name = decorator.id
                  elif isinstance(decorator, ast.Call):
                      name = decorator.func.id
                  if not name:
                      continue
                  decorator_func = func_members_dict.get(name)
                  if name not in func_members or not decorator_func:
                      continue
                  decorated_func_source = (
                      CreateFromFunction.__get_source_with_decorators(
                          decorator_func,
                          original_module=original_module,
                          sanitize_function=sanitize_function,
                      )
                      + "\n\n"
                      + decorated_func_source
                  )
              break
      except Exception as e:
          getLogger().warning(
              "Could not fetch full definition of function {}: {}".format(
                  func.__name__, e
              )
          )
      return decorated_func_source
  
imports: import inspect
  import json
  import os
  import re
  import tempfile
  from sys import platform
  from functools import reduce
  from logging import getLogger
  from typing import Optional, Sequence, Union, Tuple, List, Callable, Dict, Any
  from pathlib2 import Path
  from six.moves.urllib.parse import urlparse
  from .args import _Arguments
  from .repo import ScriptInfo
  from ...task import Task
label_desc: Use image node_id 8 for calling the CreateFromFunction obj's underlying member method code with example usage: obj.__get_source_with_decorators(func, original_module, sanitize_function) and returns: decorated_func_source