code: def update_default_project(
      project_name: str,
      url: str,
      token: str,
      default: bool,
      no_default: bool,
  ):
      config_manager = ConfigManager()
      default_project = config_manager.get_project_config()
      config_dir = str(config_manager.config_filepath).replace(
          os.path.expanduser("~"), "~", 1
      )
      if (
          default_project is None
          or default_project.name != project_name
          or default_project.url != url
          or default_project.token != token
      ):
          set_it_as_default = (
              (
                  default_project is None
                  or default
                  or confirm_ask(
                      f"Update the default project in [{colors['code']}]{config_dir}[/{colors['code']}]?"
                  )
              )
              if not no_default
              else False
          )
          if set_it_as_default:
              config_manager.configure_project(
                  name=project_name,
                  url=url,
                  token=token,
                  default=set_it_as_default,
              )
              config_manager.save()
              print(
                  f"Configuration updated at [{colors['code']}]{config_dir}[/{colors['code']}]."
              )
  
imports: import json
  import os.path
  from pathlib import Path
  from typing import Optional
  import filelock
  import yaml
  from pydantic import ValidationError
  from rich import print
  from rich.prompt import Confirm
  from dstack._internal.cli.utils.common import colors, confirm_ask
  from dstack._internal.core.models.config import GlobalConfig, ProjectConfig, RepoConfig
  from dstack._internal.core.models.repos.base import RepoType
  from dstack._internal.utils.common import get_dstack_dir
  from dstack._internal.utils.path import PathLike
label_desc: Use image node_id 1 for calling a global function with example usage: update_default_project(project_name, url, token, default, no_default) without return types