code: def download_and_expand(self):
          
          top_dir_name = None
          if self.git_branch:
              # Download a source by git clone.
              top_dir_name = self._download_and_expand_by_git()
          else:
              # Download a source from the arcihve URL.
              # Downloading the compressed archive is better than "git clone",
              # because it is faster.
              # If download failed due to URL not found, try "git clone".
              try:
                  top_dir_name = self._download_and_expand_from_archive_url()
              except RemoteFileNotFoundError:
                  Log.info('Try to download by git clone.')
                  top_dir_name = self._download_and_expand_by_git()
          return top_dir_name
docs: Download and expand RPM Python binding.