Bkprt py3 maven artifact (#37041)

* Python3 issues in maven_artifact (#37035)

Fixes #33761

(cherry picked from commit 1bc860fafd)

* Add a changelog for the python3 maven_artifact fix
This commit is contained in:
Toshio Kuratomi 2018-03-05 18:48:29 -08:00 committed by GitHub
parent 422e4aa310
commit 38a498bcfd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 6 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- Fix bytes/text handling in maven_artifact that was causing tracebacks on Python3

View file

@ -349,8 +349,7 @@ class MavenDownloader:
if not self.verify_md5(filename, url + ".md5"):
response = self._request(url, "Failed to download artifact " + str(artifact), lambda r: r)
if response:
f = open(filename, 'w')
# f.write(response.read())
f = open(filename, 'wb')
self._write_chunks(response, f, report_hook=self.chunk_report)
f.close()
else:
@ -366,19 +365,19 @@ class MavenDownloader:
if bytes_so_far >= total_size:
sys.stdout.write('\n')
def _write_chunks(self, response, file, chunk_size=8192, report_hook=None):
total_size = response.info().getheader('Content-Length').strip()
def _write_chunks(self, response, filehandle, chunk_size=8192, report_hook=None):
total_size = response.info().get('Content-Length').strip()
total_size = int(total_size)
bytes_so_far = 0
while 1:
while True:
chunk = response.read(chunk_size)
bytes_so_far += len(chunk)
if not chunk:
break
file.write(chunk)
filehandle.write(chunk)
if report_hook:
report_hook(bytes_so_far, chunk_size, total_size)