code: def get_public_members(obj):
      
      return {attr: getattr(obj, attr) for attr in dir(obj)
              if not attr.startswith("_")
              and not hasattr(getattr(obj, attr), '__call__')}
docs: Retrieves a list of member-like objects (members or properties) that are
      publically exposed.
  
      :param obj: The object to probe.
      :return:    A list of strings.