class_docstr: Handles CRUD operations at the database level for Skills
docstr: Gets all skills in a project.
  
  Parameters:
      project_name (str): The name of the containing project
  
  Returns:
      all_skills (List[db.Skills]): List of database skill object
  
  Raises:
      ValueError: If `project_name` does not exist
docstr_tok: ["Gets","all","skills","in","a","project",".","Parameters",":","project_name","(","str",")",":","The","name","of","the","containing","project","Returns",":","all_skills","(","List","[","db.Skills","]",")",":","List","of","database","skill","object","Raises",":","ValueError",":","If","`","project_name","`","does","not","exist"]
code: def get_skills(self, project_name: str) -> List[dict]:
      """
      Gets all skills in a project.
  
      Parameters:
          project_name (str): The name of the containing project
  
      Returns:
          all_skills (List[db.Skills]): List of database skill object
  
      Raises:
          ValueError: If `project_name` does not exist
      """
      if project_name is None:
          project_name = "mindsdb"
      project = self.project_controller.get(name=project_name)
      return db.Skills.query.filter(
          db.Skills.project_id == project.id
      ).all()
  
file_path: mindsdb/mindsdb/interfaces/skills/skills_controller.py
imports: from typing import Dict, List
  from mindsdb.interfaces.storage import db
  from mindsdb.interfaces.database.projects import ProjectController
  from sqlalchemy.orm.attributes import flag_modified
label_desc: Use image node_id 3 for calling the SkillsController obj's underlying member method code with example usage: obj.get_skills(project_name) and returns: db