code: def get_param_info(self, obj, include_super=True):
          
  
          params = dict(obj.param.objects('existing'))
          if isinstance(obj,type):
              changed = []
              val_dict = dict((k,p.default) for (k,p) in params.items())
              self_class = obj
          else:
              changed = [name for (name,_) in obj.param.get_param_values(onlychanged=True)]
              val_dict = dict(obj.param.get_param_values())
              self_class = obj.__class__
  
          if not include_super:
              params = dict((k,v) for (k,v) in params.items()
                            if k in self_class.__dict__)
  
          params.pop('name') # Already displayed in the title.
          return (params, val_dict, changed)
docs: Get the parameter dictionary, the list of modifed parameters
          and the dictionary or parameter values. If include_super is
          True, parameters are also collected from the super classes.