code: def get_tables(self):
      tables = self.project.get_tables()
      table_types = {
          "table": "BASE TABLE",
          "model": "MODEL",
          "view": "VIEW",
      }
      tables = [
          {
              "TABLE_NAME": key,
              "TABLE_TYPE": table_types.get(val["type"]),
          }
          for key, val in tables.items()
      ]
      result = [TablesRow.from_dict(row) for row in tables]
      return result
  
file_path: mindsdb/mindsdb/api/executor/datahub/datanodes/project_datanode.py
imports: from copy import deepcopy
  import pandas
  from mindsdb_sql import parse_sql
  from mindsdb_sql.parser.ast import BinaryOperation, Identifier, Constant, Update, Select, Delete
  from mindsdb.utilities.exception import EntityNotExistsError
  from mindsdb.api.executor.datahub.datanodes.datanode import DataNode
  from mindsdb.api.executor.datahub.classes.tables_row import TablesRow
  from mindsdb.api.executor import SQLQuery
  from mindsdb.api.executor.utilities.sql import query_df
  from mindsdb.interfaces.query_context.context_controller import query_context_controller
label_desc: Use image node_id 3 for calling the ProjectDataNode obj's underlying member method code with example usage: obj.get_tables() and returns: result