class_docstr: Stores artifacts on Azure Blob Storage.
  
  This repository is used with URIs of the form
  ``wasbs://<container-name>@<ystorage-account-name>.blob.core.windows.net/<path>``,
  following the same URI scheme as Hadoop on Azure blob storage. It requires either that:
  - Azure storage connection string is in the env var ``AZURE_STORAGE_CONNECTION_STRING``
  - Azure storage access key is in the env var ``AZURE_STORAGE_ACCESS_KEY``
  - DefaultAzureCredential is configured
class_docstr_tok: ["Stores","artifacts","on","Azure","Blob","Storage",".","This","repository","is","used","with","URIs","of","the","form","``","wasbs",":","\/\/","<","container-name",">","@","<","ystorage-account-name",">",".blob.core.windows.net\/","<","path",">","``",",","following","the","same","URI","scheme","as","Hadoop","on","Azure","blob","storage",".","It","requires","either","that",":","-","Azure","storage","connection","string","is","in","the","env","var","``","AZURE_STORAGE_CONNECTION_STRING","``","-","Azure","storage","access","key","is","in","the","env","var","``","AZURE_STORAGE_ACCESS_KEY","``","-","DefaultAzureCredential","is","configured"]
code: def __init__(self, artifact_uri, client=None):
      super().__init__(artifact_uri)
  
      _DEFAULT_TIMEOUT = 600  # 10 minutes
      self.write_timeout = (
          MLFLOW_ARTIFACT_UPLOAD_DOWNLOAD_TIMEOUT.get()
          or _DEFAULT_TIMEOUT
      )
  
      # Allow override for testing
      if client:
          self.client = client
          return
  
      from azure.storage.blob import BlobServiceClient
  
      (
          _,
          account,
          _,
          api_uri_suffix,
      ) = AzureBlobArtifactRepository.parse_wasbs_uri(artifact_uri)
      if "AZURE_STORAGE_CONNECTION_STRING" in os.environ:
          self.client = BlobServiceClient.from_connection_string(
              conn_str=os.environ.get(
                  "AZURE_STORAGE_CONNECTION_STRING"
              ),
              connection_verify=_get_default_host_creds(
                  artifact_uri
              ).verify,
          )
      elif "AZURE_STORAGE_ACCESS_KEY" in os.environ:
          account_url = f"https://{account}.{api_uri_suffix}"
          self.client = BlobServiceClient(
              account_url=account_url,
              credential=os.environ.get("AZURE_STORAGE_ACCESS_KEY"),
              connection_verify=_get_default_host_creds(
                  artifact_uri
              ).verify,
          )
      else:
          try:
              from azure.identity import DefaultAzureCredential
          except ImportError as exc:
              raise ImportError(
                  "Using DefaultAzureCredential requires the azure-identity package. "
                  "Please install it via: pip install azure-identity"
              ) from exc
  
          account_url = f"https://{account}.{api_uri_suffix}"
          self.client = BlobServiceClient(
              account_url=account_url,
              credential=DefaultAzureCredential(),
              connection_verify=_get_default_host_creds(
                  artifact_uri
              ).verify,
          )
  
imports: import base64
  import datetime
  import os
  import posixpath
  import re
  import urllib.parse
  from typing import Union
  from mlflow.entities import FileInfo
  from mlflow.entities.multipart_upload import CreateMultipartUploadResponse, MultipartUploadCredential
  from mlflow.environment_variables import MLFLOW_ARTIFACT_UPLOAD_DOWNLOAD_TIMEOUT
  from mlflow.exceptions import MlflowException
  from mlflow.store.artifact.artifact_repo import ArtifactRepository, MultipartUploadMixin
  from mlflow.tracking._tracking_service.utils import _get_default_host_creds
label_desc: Use image node_id 1 to create a new AzureBlobArtifactRepository object from inherited base classes: ArtifactRepository, MultipartUploadMixin with example: obj = AzureBlobArtifactRepository(artifact_uri, client)