class_docstr: Performs storage operations on artifacts in the access-controlled
  `dbfs:/databricks/mlflow-tracking` location.
  
  Signed access URIs for S3 / Azure Blob Storage are fetched from the MLflow service and used to
  read and write files from/to this location.
  
  The artifact_uri is expected to be of the form
  dbfs:/databricks/mlflow-tracking/<EXP_ID>/<RUN_ID>/
class_docstr_tok: ["Performs","storage","operations","on","artifacts","in","the","access-controlled","`","dbfs",":","\/databricks\/mlflow-tracking","`","location",".","Signed","access","URIs","for","S3","\/","Azure","Blob","Storage","are","fetched","from","the","MLflow","service","and","used","to","read","and","write","files","from\/to","this","location",".","The","artifact_uri","is","expected","to","be","of","the","form","dbfs",":","\/databricks\/mlflow-tracking\/","<","EXP_ID",">","\/","<","RUN_ID",">","\/"]
code: def __init__(self, artifact_uri):
      if not is_valid_dbfs_uri(artifact_uri):
          raise MlflowException(
              message="DBFS URI must be of the form dbfs:/<path> or "
              + "dbfs://profile@databricks/<path>",
              error_code=INVALID_PARAMETER_VALUE,
          )
      if not is_databricks_acled_artifacts_uri(artifact_uri):
          raise MlflowException(
              message=(
                  "Artifact URI incorrect. Expected path prefix to be"
                  " databricks/mlflow-tracking/path/to/artifact/.."
              ),
              error_code=INVALID_PARAMETER_VALUE,
          )
      # The dbfs:/ path ultimately used for artifact operations should not contain the
      # Databricks profile info, so strip it before setting ``artifact_uri``.
      super().__init__(
          remove_databricks_profile_info_from_artifact_uri(artifact_uri)
      )
  
      self.databricks_profile_uri = (
          get_databricks_profile_uri_from_artifact_uri(artifact_uri)
          or mlflow.tracking.get_tracking_uri()
      )
      self.run_id = self._extract_run_id(self.artifact_uri)
      # Fetch the artifact root for the MLflow Run associated with `artifact_uri` and compute
      # the path of `artifact_uri` relative to the MLflow Run's artifact root
      # (the `run_relative_artifact_repo_root_path`). All operations performed on this artifact
      # repository will be performed relative to this computed location
      artifact_repo_root_path = extract_and_normalize_path(artifact_uri)
      run_artifact_root_uri = self._get_run_artifact_root(self.run_id)
      run_artifact_root_path = extract_and_normalize_path(
          run_artifact_root_uri
      )
      run_relative_root_path = posixpath.relpath(
          path=artifact_repo_root_path, start=run_artifact_root_path
      )
      # If the paths are equal, then use empty string over "./" for ListArtifact compatibility.
      self.run_relative_artifact_repo_root_path = (
          ""
          if run_artifact_root_path == artifact_repo_root_path
          else run_relative_root_path
      )
  
imports: import base64
  import logging
  import os
  import posixpath
  import uuid
  import requests
  import mlflow.tracking
  from mlflow.azure.client import patch_adls_file_upload, patch_adls_flush, put_adls_file_creation, put_block, put_block_list
  from mlflow.entities import FileInfo
  from mlflow.environment_variables import MLFLOW_MULTIPART_DOWNLOAD_CHUNK_SIZE, MLFLOW_MULTIPART_UPLOAD_CHUNK_SIZE
  from mlflow.exceptions import MlflowException
  from mlflow.protos.databricks_artifacts_pb2 import ArtifactCredentialType, CompleteMultipartUpload, CreateMultipartUpload, DatabricksMlflowArtifactsService, GetCredentialsForRead, GetCredentialsForWrite, GetPresignedUploadPartUrl, PartEtag
  from mlflow.protos.databricks_pb2 import INTERNAL_ERROR, INVALID_PARAMETER_VALUE
  from mlflow.protos.service_pb2 import GetRun, ListArtifacts, MlflowService
  from mlflow.store.artifact.cloud_artifact_repo import CloudArtifactRepository, _complete_futures, _compute_num_chunks
  from mlflow.utils import chunk_list
  from mlflow.utils.databricks_utils import get_databricks_host_creds
  from mlflow.utils.file_utils import download_file_using_http_uri, read_chunk
  from mlflow.utils.proto_json_utils import message_to_json
  from mlflow.utils.request_utils import cloud_storage_http_request
  from mlflow.utils.rest_utils import _REST_API_PATH_PREFIX, augmented_raise_for_status, call_endpoint, extract_api_info_for_service
  from mlflow.utils.uri import extract_and_normalize_path, get_databricks_profile_uri_from_artifact_uri, is_databricks_acled_artifacts_uri, is_valid_dbfs_uri, remove_databricks_profile_info_from_artifact_uri
label_desc: Use image node_id 1 to create a new DatabricksArtifactRepository object from inherited base classes: CloudArtifactRepository with example: obj = DatabricksArtifactRepository(artifact_uri)