  
  def load_project_config(path: Path) -> Dict[str, Any]:
      config_path = path / CONFIG_FILE
      if not config_path.exists():
          msg.fail("Can't find project config", config_path, exits=1)
      config = srsly.read_yaml(config_path)
      errors = validate(ProjectConfigSchema, config)
      if errors:
 
</s> remove @project_cli.command("update-dvc")
def project_update_dvc_cli(
    # fmt: off
    project_dir: Path = Arg(..., help="Location of project directory", exists=True, file_okay=False),
    verbose: bool = Opt(False, "--verbose", "-V", help="Print more info"),
    force: bool = Opt(False, "--force", "-F", help="Force update DVC config"),
    # fmt: on
):
    config = load_project_config(project_dir)
    updated = update_dvc_config(project_dir, config, verbose=verbose, force=force)
    if updated:
        msg.good(f"Updated DVC config from {CONFIG_FILE}")
    else:
        msg.info(f"No changes found in {CONFIG_FILE}, no update needed")


app.add_typer(project_cli, name="project")
 </s> add ###########
# HELPERS #
########### </s> remove         updated = update_dvc_config(project_path, config, silent=True)
 </s> add         updated = update_dvc_config(project_dir, config, silent=True) </s> remove def setup_check_dvc(project_path: Path, config: Dict[str, Any]) -> None:
    if not (project_path / ".dvc").exists():
        msg.fail("Project not initialized as a DVC project", exits=1)
 </s> add def ensure_dvc() -> None:
    """Ensure that the "dvc" command is available and show an error if not."""
    try:
        subprocess.run(["dvc", "--version"], stdout=subprocess.DEVNULL)
    except Exception:
        msg.fail(
            "spaCy projects require DVC (Data Version Control) and the 'dvc' command",
            "You can install the Python package from pip (pip install dvc) or "
            "conda (conda install -c conda-forge dvc). For more details, see the "
            "documentation: https://dvc.org/doc/install",
            exits=1,
        )


def setup_check_dvc(project_dir: Path, config: Dict[str, Any]) -> None:
    """Check that the project is set up correctly with DVC and update its
    config if needed. Will raise an error if the project is not an initialized
    DVC project.

    project_dir (Path): The path to the project directory.
    config (Dict[str, Any]): The loaded project config.
    """
    if not project_dir.exists():
        msg.fail(f"Can't find project directory: {project_dir}")
    if not (project_dir / ".dvc").exists():
        msg.fail(
            "Project not initialized as a DVC project.",
            f"Make sure that the project template was cloned correctly. To "
            f"initialize the project directory manually, you can run: "
            f"{COMMAND} project init {project_dir}",
            exits=1,
        ) </s> remove         config = load_project_config(dest)
        setup_check_dvc(dest, config)
 </s> add         config = load_project_config(project_dir)
        setup_check_dvc(project_dir, config) </s> remove 
def project_assets(project_path: Path) -> None:
    project_path = ensure_path(project_path)
 </s> add     project_dir (Path): Path to project directory.
    """
    project_path = ensure_path(project_dir)
    """Load the project config file from a directory and validate it.

    path (Path): The path to the project directory.
    RETURNS (Dict[str, Any]): The loaded project config.
    """
  
  def load_project_config(path: Path) -> Dict[str, Any]:
    """Load the project config file from a directory and validate it.

    path (Path): The path to the project directory.
    RETURNS (Dict[str, Any]): The loaded project config.
    """
      config_path = path / CONFIG_FILE
      if not config_path.exists():
          msg.fail("Can't find project config", config_path, exits=1)
      config = srsly.read_yaml(config_path)
      errors = validate(ProjectConfigSchema, config)
      if errors:
keep add keep keep keep keep keep keep
 Tidy up, document and add custom clone logic 
spacy/cli/project.py