code: def _download_and_untar(self, show_progress, output_dir):
      # Download bundle conditioned on whether the user would like progress
      # information to be displayed in the CLI.
      if show_progress:
          data = bundles.download_with_progress(
              self.tar_url,
              chunk_size=bundles.ONE_MEGABYTE,
              label="Downloading {name} bundle".format(name=self.name),
          )
      else:
          data = bundles.download_without_progress(self.tar_url)
  
      # File transfer has completed, untar the bundle to the appropriate
      # data directory.
      with tarfile.open("r", fileobj=data) as tar:
          tar.extractall(output_dir)
  
imports: from itertools import count
  import tarfile
  from time import sleep
  from abc import abstractmethod, abstractproperty
  import logbook
  import pandas
  from .None import core
  from catalyst.utils.cli import item_show_count, maybe_show_progress
  from catalyst.utils.memoize import lazyval
  from catalyst.constants import LOG_LEVEL
label_desc: Use image node_id 20 for calling the BaseBundle obj's underlying member method code with example usage: obj._download_and_untar(show_progress, output_dir) without return types