code: def fetch_archive(savedir, url, fname, checksum, force=False):
      
      dest = pjoin(savedir, fname)
      scheme, digest_ref = checksum.split(':')
  
      if os.path.exists(dest) and not force:
          info("already have %s" % dest)
          digest = checksum_file(scheme, fname)
          if digest == digest_ref:
              return dest
          else:
              warn("but checksum %s != %s, redownloading." % (digest, digest_ref))
              os.remove(fname)
      
      info("fetching %s into %s" % (url, savedir))
      if not os.path.exists(savedir):
          os.makedirs(savedir)
      req = urlopen(url)
      with open(dest, 'wb') as f:
          f.write(req.read())
      digest = checksum_file(scheme, dest)
      if digest != digest_ref:
          fatal("%s %s mismatch:\nExpected: %s\nActual  : %s" % (
              dest, scheme, digest_ref, digest))
      return dest
docs: download an archive to a specific location