fix unclosed file warnings. (#710)

Co-authored-by: Jonas Winkler <jonas.winkler@jpwinkler.de>
This commit is contained in:
Jonas Winkler 2021-01-06 12:59:28 +01:00 committed by GitHub
parent 47ef1914d4
commit 62e5edc72b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -77,20 +77,19 @@ def run_polling_stderr(args, *, callback, check=False, env=None, **kwargs):
args, env, process_log, text = _fix_process_args(args, env, kwargs) args, env, process_log, text = _fix_process_args(args, env, kwargs)
assert text, "Must use text=True" assert text, "Must use text=True"
proc = Popen(args, env=env, **kwargs) with Popen(args, env=env, **kwargs) as proc:
lines = []
while proc.poll() is None:
for msg in iter(proc.stderr.readline, ''):
if process_log.isEnabledFor(logging.DEBUG):
process_log.debug(msg.strip())
callback(msg)
lines.append(msg)
stderr = ''.join(lines)
lines = [] if check and proc.returncode != 0:
while proc.poll() is None: raise CalledProcessError(proc.returncode, args, output=None, stderr=stderr)
for msg in iter(proc.stderr.readline, ''): return CompletedProcess(args, proc.returncode, None, stderr=stderr)
if process_log.isEnabledFor(logging.DEBUG):
process_log.debug(msg.strip())
callback(msg)
lines.append(msg)
stderr = ''.join(lines)
if check and proc.returncode != 0:
raise CalledProcessError(proc.returncode, args, output=None, stderr=stderr)
return CompletedProcess(args, proc.returncode, None, stderr=stderr)
def _fix_process_args(args, env, kwargs): def _fix_process_args(args, env, kwargs):