code: def list_column_families(self):
          
          table_client = self._instance._client.table_admin_client
          table_pb = table_client.get_table(self.name)
  
          result = {}
          for column_family_id, value_pb in table_pb.column_families.items():
              gc_rule = _gc_rule_from_pb(value_pb.gc_rule)
              column_family = self.column_family(column_family_id, gc_rule=gc_rule)
              result[column_family_id] = column_family
          return result
docs: List the column families owned by this table.
  
          For example:
  
          .. literalinclude:: snippets_table.py
              :start-after: [START bigtable_list_column_families]
              :end-before: [END bigtable_list_column_families]
  
          :rtype: dict
          :returns: Dictionary of column families attached to this table. Keys
                    are strings (column family names) and values are
                    :class:`.ColumnFamily` instances.
          :raises: :class:`ValueError <exceptions.ValueError>` if the column
                   family name from the response does not agree with the computed
                   name from the column family ID.