code: def __init__(
      self,
      config: Optional[Dict] = None,
      cache: Optional[ArtifactFileCache] = None,
      api: Optional[InternalApi] = None,
  ) -> None:
      self._cache = cache or get_artifact_file_cache()
      self._config = config or {}
      self._session = requests.Session()
      adapter = requests.adapters.HTTPAdapter(
          max_retries=_REQUEST_RETRY_STRATEGY,
          pool_connections=_REQUEST_POOL_CONNECTIONS,
          pool_maxsize=_REQUEST_POOL_MAXSIZE,
      )
      self._session.mount("http://", adapter)
      self._session.mount("https://", adapter)
  
      s3 = S3Handler()
      gcs = GCSHandler()
      azure = AzureHandler()
      http = HTTPHandler(self._session)
      https = HTTPHandler(self._session, scheme="https")
      artifact = WBArtifactHandler()
      local_artifact = WBLocalArtifactHandler()
      file_handler = LocalFileHandler()
  
      self._api = api or InternalApi()
      self._handler = MultiHandler(
          handlers=[
              s3,
              gcs,
              azure,
              http,
              https,
              artifact,
              local_artifact,
              file_handler,
          ],
          default_handler=TrackingHandler(),
      )
  
imports: import hashlib
  import math
  import shutil
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, Sequence, Union
  from urllib.parse import quote
  import requests
  import urllib3
  from wandb.apis import InternalApi
  from wandb.errors.term import termwarn
  from wandb.sdk.artifacts.artifact_file_cache import ArtifactFileCache, get_artifact_file_cache
  from wandb.sdk.artifacts.storage_handlers.azure_handler import AzureHandler
  from wandb.sdk.artifacts.storage_handlers.gcs_handler import GCSHandler
  from wandb.sdk.artifacts.storage_handlers.http_handler import HTTPHandler
  from wandb.sdk.artifacts.storage_handlers.local_file_handler import LocalFileHandler
  from wandb.sdk.artifacts.storage_handlers.multi_handler import MultiHandler
  from wandb.sdk.artifacts.storage_handlers.s3_handler import S3Handler
  from wandb.sdk.artifacts.storage_handlers.tracking_handler import TrackingHandler
  from wandb.sdk.artifacts.storage_handlers.wb_artifact_handler import WBArtifactHandler
  from wandb.sdk.artifacts.storage_handlers.wb_local_artifact_handler import WBLocalArtifactHandler
  from wandb.sdk.artifacts.storage_layout import StorageLayout
  from wandb.sdk.artifacts.storage_policies.register import WANDB_STORAGE_POLICY
  from wandb.sdk.artifacts.storage_policy import StoragePolicy
  from wandb.sdk.internal.thread_local_settings import _thread_local_api_settings
  from wandb.sdk.lib.hashutil import B64MD5, b64_to_hex_id, hex_to_b64_id
  from wandb.sdk.lib.paths import FilePathStr, URIStr
label_desc: Use image node_id 3 to create a new WandbStoragePolicy object from inherited base classes: StoragePolicy with example: obj = WandbStoragePolicy(config, cache, api)