docstr: Converts a function into a list of child parameter dicts
docstr_tok: ["Converts","a","function","into","a","list","of","child","parameter","dicts"]
code: def functionToParameterDict(self, function, **overrides):
      """
      Converts a function into a list of child parameter dicts
      """
      children = []
      name = function.__name__
      btnOpts = dict(
          **self._makePopulatedActionTemplate(name), visible=False
      )
      out = dict(
          name=name,
          type="_actiongroup",
          children=children,
          button=btnOpts,
      )
      if self.titleFormat is not None:
          out["title"] = self._nameToTitle(
              name, forwardStringTitle=True
          )
  
      funcParams = inspect.signature(function).parameters
      if function.__doc__:
          # Reasonable "tip" default is the brief docstring description if it exists
          synopsis, _ = pydoc.splitdoc(function.__doc__)
          if synopsis:
              out.setdefault("tip", synopsis)
              out["button"].setdefault("tip", synopsis)
  
      # Make pyqtgraph parameter dicts from each parameter
      # Use list instead of funcParams.items() so kwargs can add to the iterable
      checkNames = list(funcParams)
      parameterKinds = [p.kind for p in funcParams.values()]
      _positional = inspect.Parameter.VAR_POSITIONAL
      _keyword = inspect.Parameter.VAR_KEYWORD
      if _keyword in parameterKinds:
          # Function accepts kwargs, so any overrides not already present as a function
          # parameter should be accepted
          # Remove the keyword parameter since it can't be parsed properly
          # Kwargs must appear at the end of the parameter list
          del checkNames[-1]
          notInSignature = [n for n in overrides if n not in checkNames]
          checkNames.extend(notInSignature)
      if _positional in parameterKinds:
          # *args is also difficult to handle for key-value paradigm
          # and will mess with the logic for detecting whether any parameter
          # is left unfilled
          del checkNames[parameterKinds.index(_positional)]
  
      for name in checkNames:
          # May be none if this is an override name after function accepted kwargs
          param = funcParams.get(name)
          pgDict = self.createFunctionParameter(
              name, param, overrides.get(name, {})
          )
          children.append(pgDict)
      return out
  
imports: import contextlib
  import functools
  import inspect
  import pydoc
  from .None import Parameter
  from .parameterTypes import ActionGroupParameter
  from ..None import functions
label_desc: Use image node_id 13 for calling the Interactor obj's underlying member method code with example usage: obj.functionToParameterDict(function) and returns: out