code: def __init__(
      self,
      dataset_name: str,
      config: str,
      version: Union[Version, str],
      cache_dir: Optional[str] = None,
      use_local_dummy_data: bool = False,
      load_existing_dummy_data: bool = True,
      download_callbacks: Optional[List[Callable]] = None,
  ):
      self.downloaded_size = 0
      self.dataset_name = dataset_name
      self.cache_dir = cache_dir
      self.use_local_dummy_data = use_local_dummy_data
      self.config = config
      # download_callbacks take a single url as input
      self.download_callbacks: List[Callable] = download_callbacks or []
      # if False, it doesn't load existing files and it returns the paths of the dummy files relative
      # to the dummy_data zip file root
      self.load_existing_dummy_data = load_existing_dummy_data
  
      # TODO(PVP, QL) might need to make this more general
      self.version_name = str(version)
      # to be downloaded
      self._dummy_file = None
      self._bucket_url = None
  
imports: import os
  import re
  import urllib.parse
  from pathlib import Path
  from typing import Callable, List, Optional, Union
  from zipfile import ZipFile
  from ..utils.file_utils import cached_path, hf_github_url
  from ..utils.logging import get_logger
  from ..utils.version import Version
label_desc: Use image node_id 1 to create a new MockDownloadManager object  with example: obj = MockDownloadManager(dataset_name, config, version, cache_dir, use_local_dummy_data, load_existing_dummy_data, download_callbacks)