git_command: read1 needs a size in py3.6

Not setting size causes "TypeError: read1() takes exactly one argument
(0 given)" in Python 3.6.
In Python 3.7 onwards size defaults to -1, which means an arbitrary
number of bytes will be returned.

Compare https://docs.python.org/3.6/library/io.html#io.BufferedReader.read1
and https://docs.python.org/3.7/library/io.html#io.BufferedIOBase.read1
for more details.

Change-Id: Ia4aaf8140ead9493ec650fac167c641569e6a9d8
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/388718
Reviewed-by: Mike Frysinger <vapier@google.com>
Tested-by: Daniel Kutik <daniel.kutik@lavawerk.com>
Commit-Queue: Daniel Kutik <daniel.kutik@lavawerk.com>
This commit is contained in:
Daniel Kutik 2023-10-09 13:21:25 +02:00 committed by LUCI
parent 23d063bdcd
commit 6a7f73bb9a

View File

@ -503,7 +503,8 @@ class GitCommand(object):
A str containing everything read from the in_stream. A str containing everything read from the in_stream.
""" """
buffer = "" buffer = ""
chunk = in_stream.read1() read_size = 1024 if sys.version_info < (3, 7) else -1
chunk = in_stream.read1(read_size)
while chunk: while chunk:
# Convert to str. # Convert to str.
if not hasattr(chunk, "encode"): if not hasattr(chunk, "encode"):
@ -513,7 +514,7 @@ class GitCommand(object):
out_stream.write(chunk) out_stream.write(chunk)
out_stream.flush() out_stream.flush()
chunk = in_stream.read1() chunk = in_stream.read1(read_size)
return buffer return buffer