Skip to content

Commit 284142d

Browse files
authored
Show logging written to stderr in mypy daemon (#14775)
Previously stdout from mypy daemon was propagated to the client, but some verbose logging is written to stderr and it wasn't propagated. Now propagate stderr as well. Tested manually. This builds on top of #13769.
1 parent 54635de commit 284142d

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

mypy/dmypy/client.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -665,10 +665,15 @@ def request(
665665
return {"error": str(err)}
666666
# TODO: Other errors, e.g. ValueError, UnicodeError
667667
else:
668-
# Display debugging output written to stdout in the server process for convenience.
668+
# Display debugging output written to stdout/stderr in the server process for convenience.
669669
stdout = response.get("stdout")
670670
if stdout:
671671
sys.stdout.write(stdout)
672+
stderr = response.get("stderr")
673+
if stderr:
674+
print("-" * 79)
675+
print("stderr:")
676+
sys.stdout.write(stderr)
672677
return response
673678

674679

mypy/dmypy_server.py

+4
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,9 @@ def serve(self) -> None:
215215
with server:
216216
data = receive(server)
217217
debug_stdout = io.StringIO()
218+
debug_stderr = io.StringIO()
218219
sys.stdout = debug_stdout
220+
sys.stderr = debug_stderr
219221
resp: dict[str, Any] = {}
220222
if "command" not in data:
221223
resp = {"error": "No command found in request"}
@@ -233,9 +235,11 @@ def serve(self) -> None:
233235
resp = {"error": "Daemon crashed!\n" + "".join(tb)}
234236
resp.update(self._response_metadata())
235237
resp["stdout"] = debug_stdout.getvalue()
238+
resp["stderr"] = debug_stderr.getvalue()
236239
server.write(json.dumps(resp).encode("utf8"))
237240
raise
238241
resp["stdout"] = debug_stdout.getvalue()
242+
resp["stderr"] = debug_stderr.getvalue()
239243
try:
240244
resp.update(self._response_metadata())
241245
server.write(json.dumps(resp).encode("utf8"))

0 commit comments

Comments
 (0)