示例#1
0
 def _download_to(self, url, filename):
     self.info("Downloading %s", url)
     # Download the file
     fp = None
     try:
         checker = HashChecker.from_url(url)
         fp = self.open_url(url)
         if isinstance(fp, urllib.error.HTTPError):
             raise DistutilsError("Can't download %s: %s %s" %
                                  (url, fp.code, fp.msg))
         headers = fp.info()
         blocknum = 0
         bs = self.dl_blocksize
         size = -1
         if "content-length" in headers:
             # Some servers return multiple Content-Length headers :(
             sizes = get_all_headers(headers, "Content-Length")
             size = max(map(int, sizes))
             self.reporthook(url, filename, blocknum, bs, size)
         with open(filename, "wb") as tfp:
             while True:
                 block = fp.read(bs)
                 if block:
                     checker.feed(block)
                     tfp.write(block)
                     blocknum += 1
                     self.reporthook(url, filename, blocknum, bs, size)
                 else:
                     break
             self.check_hash(checker, filename, tfp)
         return headers
     finally:
         if fp:
             fp.close()
示例#2
0
 def _download_to(self, url, filename):
     self.info("Downloading %s", url)
     # Download the file
     fp = None
     try:
         checker = HashChecker.from_url(url)
         fp = self.open_url(url)
         if isinstance(fp, urllib.error.HTTPError):
             raise DistutilsError(
                 "Can't download %s: %s %s" % (url, fp.code, fp.msg)
             )
         headers = fp.info()
         blocknum = 0
         bs = self.dl_blocksize
         size = -1
         if "content-length" in headers:
             # Some servers return multiple Content-Length headers :(
             sizes = get_all_headers(headers, 'Content-Length')
             size = max(map(int, sizes))
             self.reporthook(url, filename, blocknum, bs, size)
         with open(filename, 'wb') as tfp:
             while True:
                 block = fp.read(bs)
                 if block:
                     checker.feed(block)
                     tfp.write(block)
                     blocknum += 1
                     self.reporthook(url, filename, blocknum, bs, size)
                 else:
                     break
             self.check_hash(checker, filename, tfp)
         return headers
     finally:
         if fp:
             fp.close()
 def _download_to(self, url, filename):
     self.info("Downloading %s", url)
     # Download the file
     fp, tfp, cs, info = None, None, None, None
     try:
         if '#' in url:
             url, info = url.split('#', 1)
             hmatch = _HASH_RE.search(info)
             hash_name = hmatch.group(1)
             hash_data = hmatch.group(2)
             cs = hashlib.new(hash_name)
         fp = self.open_url(url)
         if isinstance(fp, HTTPError):
             raise DistutilsError(
                 "Can't download %s: %s %s" % (url, fp.code,fp.msg)
             )
         headers = fp.info()
         blocknum = 0
         bs = self.dl_blocksize
         size = -1
         if "content-length" in headers:
             # Some servers return multiple Content-Length headers :(
             sizes = get_all_headers(headers, 'Content-Length')
             size = max(map(int, sizes))
             self.reporthook(url, filename, blocknum, bs, size)
         tfp = open(filename,'wb')
         while True:
             block = fp.read(bs)
             if block:
                 if cs is not None:
                     cs.update(block)
                 tfp.write(block)
                 blocknum += 1
                 self.reporthook(url, filename, blocknum, bs, size)
             else:
                 break
         if info: self.check_hash(cs, info, filename, tfp)
         return headers
     finally:
         if fp: fp.close()
         if tfp: tfp.close()
示例#4
0
 def _download_to(self, url, filename):
     self.info("Downloading %s", url)
     # Download the file
     fp, tfp, info = None, None, None
     try:
         if '#' in url:
             url, info = url.split('#', 1)
         fp = self.open_url(url)
         if isinstance(fp, HTTPError):
             raise DistutilsError(
                 "Can't download %s: %s %s" % (url, fp.code,fp.msg)
             )
         cs = md5()
         headers = fp.info()
         blocknum = 0
         bs = self.dl_blocksize
         size = -1
         if "content-length" in headers:
             # Some servers return multiple Content-Length headers :(
             sizes = get_all_headers(headers, 'Content-Length')
             size = max(map(int, sizes))
             self.reporthook(url, filename, blocknum, bs, size)
         tfp = open(filename,'wb')
         while True:
             block = fp.read(bs)
             if block:
                 cs.update(block)
                 tfp.write(block)
                 blocknum += 1
                 self.reporthook(url, filename, blocknum, bs, size)
             else:
                 break
         if info: self.check_md5(cs, info, filename, tfp)
         return headers
     finally:
         if fp: fp.close()
         if tfp: tfp.close()
示例#5
0
        fp, info = None, None
        try:
            checker = HashChecker.from_url(url)
            fp = self.open_url(strip_fragment(url))
            if isinstance(fp, urllib.error.HTTPError):
>>>>>>> 54eef0be98b1b67c8507db91f4cfa90b64991027
                raise DistutilsError(
                    "Can't download %s: %s %s" % (url, fp.code,fp.msg)
                )
            headers = fp.info()
            blocknum = 0
            bs = self.dl_blocksize
            size = -1
            if "content-length" in headers:
                # Some servers return multiple Content-Length headers :(
                sizes = get_all_headers(headers, 'Content-Length')
                size = max(map(int, sizes))
                self.reporthook(url, filename, blocknum, bs, size)
<<<<<<< HEAD
            tfp = open(filename,'wb')
            while True:
                block = fp.read(bs)
                if block:
                    checker.feed(block)
                    tfp.write(block)
                    blocknum += 1
                    self.reporthook(url, filename, blocknum, bs, size)
                else:
                    break
            self.check_hash(checker, filename, tfp)
            return headers
示例#6
0
        fp = None
        try:
            checker = HashChecker.from_url(url)
            fp = self.open_url(url)
            if isinstance(fp, urllib.error.HTTPError):
                raise DistutilsError(
                    "Can't download %s: %s %s" % (url, fp.code, fp.msg)
                )
            headers = fp.info()
            blocknum = 0
            bs = self.dl_blocksize
            size = -1
            if "content-length" in headers:
                # Some servers return multiple Content-Length headers :(
<<<<<<< HEAD
                sizes = get_all_headers(headers, 'Content-Length')
=======
                sizes = headers.get_all('Content-Length')
>>>>>>> 7e5c5fbd6c824de4d4c2b62da3f7cae87d462119
                size = max(map(int, sizes))
                self.reporthook(url, filename, blocknum, bs, size)
            with open(filename, 'wb') as tfp:
                while True:
                    block = fp.read(bs)
                    if block:
                        checker.feed(block)
                        tfp.write(block)
                        blocknum += 1
                        self.reporthook(url, filename, blocknum, bs, size)
                    else:
                        break