code: def get_injectable_func_source_data(name):
      
      if injectable_type(name) != 'function':
          raise ValueError('injectable {!r} is not a function'.format(name))
  
      inj = get_raw_injectable(name)
  
      if isinstance(inj, _InjectableFuncWrapper):
          return utils.func_source_data(inj._func)
      elif hasattr(inj, '__wrapped__'):
          return utils.func_source_data(inj.__wrapped__)
      else:
          return utils.func_source_data(inj)
docs: Return data about an injectable function's source, including file name,
      line number, and source code.
  
      Parameters
      ----------
      name : str
  
      Returns
      -------
      filename : str
      lineno : int
          The line number on which the function starts.
      source : str