code: def get(
      self, id: int = None, name: str = None, deleted: bool = False
  ) -> Project:
      if id is not None and name is not None:
          raise ValueError("Both 'id' and 'name' is None")
  
      q = db.Project.query.filter_by(company_id=ctx.company_id)
  
      if id is not None:
          q = q.filter_by(id=id)
      elif name is not None:
          q = q.filter(
              (sa.func.lower(db.Project.name) == sa.func.lower(name))
          )
  
      if deleted is True:
          q = q.filter((db.Project.deleted_at != sa.null()))
      else:
          q = q.filter_by(deleted_at=sa.null())
  
      record = q.first()
  
      if record is None:
          raise ValueError(f"Project is not found: {name}/{id}")
      return Project.from_record(record)
  
imports: import datetime
  from typing import List
  from collections import OrderedDict
  import sqlalchemy
  import numpy
  from mindsdb_sql.parser.ast.base import ASTNode
  from mindsdb_sql import parse_sql
  from mindsdb.interfaces.storage import db
  from mindsdb.utilities.config import Config
  from mindsdb.interfaces.model.model_controller import ModelController
  from mindsdb.interfaces.database.views import ViewController
  from mindsdb.utilities.context import context
  from mindsdb.utilities.exception import EntityExistsError
  import mindsdb.utilities.profiler
label_desc: Use image node_id 3 for calling the ProjectController obj's underlying member method code with example usage: obj.get(id, name, deleted) and returns: Project