code: def create_project_handler(args):
      """Creates a new project dir."""
      project_dir = get_project_dir(args.project_dir)
  
      if os.path.exists(project_dir):
          if args.force:
              shutil.rmtree(project_dir)
          else:
              raise TVMCException(
                  "The specified project dir already exists. "
                  "To force overwriting it use '-f' or '--force'."
              )
  
      template_dir = str(Path(args.template_dir).resolve())
      if not os.path.exists(template_dir):
          raise TVMCException(
              f"Template directory {template_dir} does not exist!"
          )
  
      mlf_path = str(Path(args.MLF).resolve())
      if not os.path.exists(mlf_path):
          raise TVMCException(f"MLF file {mlf_path} does not exist!")
  
      options = get_and_check_options(
          args.project_option, args.valid_options
      )
  
      try:
          project.generate_project_from_mlf(
              template_dir, project_dir, mlf_path, options
          )
      except ServerError as error:
          print(
              "The following error occurred on the Project API server side: \n",
              error,
          )
          sys.exit(1)
  
file_path: tvm/python/tvm/driver/tvmc/micro.py
imports: import argparse
  import os
  from pathlib import Path
  import shutil
  import sys
  from .None import TVMCException
  from .main import register_parser
  from .arguments import TVMCSuppressedArgumentParser
  from .project import get_project_options, get_and_check_options, get_project_dir
label_desc: Use image node_id 3 for calling a global function with example usage: create_project_handler(args) without return types