code: def delete_project(args: Namespace) -> None:
      sess = cli.setup_session(args)
      (w, p) = project_by_name(
          sess, args.workspace_name, args.project_name
      )
      if args.yes or render.yes_or_no(
          'Deleting project "'
          + args.project_name
          + '" will result in the \n'
          "unrecoverable deletion of this project and all of its experiments and notes.\n"
          "For a recoverable alternative, see the 'archive' command. Do you still \n"
          "wish to proceed?"
      ):
          resp = bindings.delete_DeleteProject(sess, id=p.id)
          if resp.completed:
              print(
                  f"Successfully deleted project {args.project_name}."
              )
          else:
              print(
                  f"Started deletion of project {args.project_name}..."
              )
              while True:
                  sleep(2)
                  try:
                      p = bindings.get_GetProject(sess, id=p.id).project
                      if (
                          p.state
                          == bindings.v1WorkspaceState.DELETE_FAILED
                      ):
                          raise errors.DeleteFailedException(
                              p.errorMessage
                          )
                      elif (
                          p.state == bindings.v1WorkspaceState.DELETING
                      ):
                          print(
                              f"Remaining experiment count: {p.numExperiments}"
                          )
                  except errors.NotFoundException:
                      print("Project deleted successfully.")
                      break
      else:
          print("Aborting project deletion.")
  
file_path: determined/harness/determined/cli/project.py
imports: from argparse import Namespace
  from time import sleep
  from typing import Any, Dict, List, Sequence, Tuple
  import determined.cli.render
  from determined import cli
  from determined.cli import render
  from determined.common import api
  from determined.common.api import authentication, bindings, errors
  from determined.common.declarative_argparse import Arg, Cmd
  from .workspace import list_workspace_projects, pagination_args
label_desc: Use image node_id 7 for calling a global function with example usage: delete_project(args) without return types