code: def get_params_for_handler(self, class_scope, pyfunc):
          
          try:
              cls, signal = self.handlers[class_scope][pyfunc.get_name()]
          except KeyError:
              return {}
  
          attrs = {}
  
          idx = 0
          names = pyfunc.get_param_names(False)
          if pyfunc.get_kind() in ('method', 'classmethod'):
              names = names[1:]
              idx += 1
  
          if names:
              attrs[idx] = self.get_type(self.get_pygtk_class_name(cls)).get_object()
              names = names[1:]
              idx += 1
  
          if names:
              for t in gobject.signal_query(signal, str(cls))[-1]:
                  try:
                      tname = self.get_type(self.get_pygtk_class_name(t.name))
                      if tname:
                          attrs[idx] = tname.get_object()
                  except ModuleNotFoundError:
                      pass
  
                  idx += 1
  
          return attrs
docs: :type pyfunc: rope.base.pyobjectsdef.PyFunction