code: def get(  # noqa: PLR0913
      cls,
      url: str,
      name: str,
      version: Optional[str] = None,
      stage: Optional[str] = None,
      config: Optional[Union[str, Dict[str, Any]]] = None,
      remote: Optional[str] = None,
      remote_config: Optional[Union[str, Dict[str, Any]]] = None,
      out: Optional[str] = None,
      force: bool = False,
      jobs: Optional[int] = None,
  ):
      from dvc.config import Config
      from dvc.repo import Repo
  
      if version and stage:
          raise InvalidArgumentError(
              "Artifact version and stage are mutually exclusive."
          )
  
      # NOTE: We try to download the artifact up to three times
      # 1. via studio with studio config loaded from environment
      # 2. via studio with studio config loaded from DVC repo 'studio'
      #    section + environment
      # 3. via DVC remote
  
      name = _reformat_name(name)
      saved_exc: Optional[Exception] = None
      try:
          logger.trace("Trying studio-only config")
          return cls._download_studio(
              url,
              name,
              version=version,
              stage=stage,
              out=out,
              force=force,
              jobs=jobs,
          )
      except FileExistsLocallyError:
          raise
      except Exception as exc:  # noqa: BLE001
          saved_exc = exc
  
      if config and not isinstance(config, dict):
          config = Config.load_file(config)
      with Repo.open(
          url=url,
          subrepos=True,
          uninitialized=True,
          config=config,
          remote=remote,
          remote_config=remote_config,
      ) as repo:
          logger.trace("Trying repo [studio] config")
          dvc_studio_config = dict(repo.config.get("studio"))
          try:
              return cls._download_studio(
                  url,
                  name,
                  version=version,
                  stage=stage,
                  out=out,
                  force=force,
                  jobs=jobs,
                  dvc_studio_config=dvc_studio_config,
              )
          except FileExistsLocallyError:
              raise
          except Exception as exc:  # noqa: BLE001
              saved_exc = exc
  
          try:
              return repo.artifacts.download(
                  name,
                  version=version,
                  stage=stage,
                  out=out,
                  force=force,
                  jobs=jobs,
              )
          except FileExistsLocallyError:
              raise
          except Exception as exc:  # noqa: BLE001
              if saved_exc:
                  logger.exception(
                      str(saved_exc), exc_info=saved_exc.__cause__
                  )
              raise DvcException(
                  f"Failed to download artifact '{name}' via DVC remote"
              ) from exc
  
imports: import os
  import posixpath
  from pathlib import Path
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
  from dvc.annotations import Artifact
  from dvc.dvcfile import PROJECT_FILE
  from dvc.exceptions import ArtifactNotFoundError, DvcException, FileExistsLocallyError, InvalidArgumentError
  from dvc.log import logger
  from dvc.utils import relpath, resolve_output
  from dvc.utils.objects import cached_property
  from dvc.utils.serialize import modify_yaml
label_desc: Use image node_id 9 for calling the Artifacts obj's underlying member method code with example usage: obj.get(cls, url, name, version, stage, config, remote, remote_config, out, force, jobs) and returns: cls, cls, repo