code: def list_attributes(self):
          
  
          def _row_gen(attributes):
              for attr in attributes.values():
                  yield (attr.name, attr.display_name, attr.description)
  
          return pd.DataFrame.from_records(
              _row_gen(self.attributes),
              columns=['name', 'display_name', 'description'])
docs: Lists available attributes in a readable DataFrame format.
  
          Returns:
              pd.DataFrame: Frame listing available attributes.