code: def get_properties(self):
          
  
          names = inspect.getmembers(self, predicate=lambda x: not inspect.ismethod(x))
          return [x[0] for x in names if not x[0].startswith("_") and x[0] not in self._ignored_properties]
docs: Get a list of all of the public data properties of this class.
  
          Returns:
              list of str: A list of all of the public properties in this class.