sockfile,
signal_server=None,
owns_sockfile=True,
+ colorize=False,
**kwargs,
):
self._owns_sockfile = owns_sockfile
if signal_server:
# Only started by the top level _PdbServer, not recursive ones.
self._start_signal_listener(signal_server)
+ # Override the `colorize` attribute set by the parent constructor,
+ # because it checks the server's stdout, rather than the client's.
super().__init__(colorize=False, **kwargs)
+ self.colorize = colorize
@staticmethod
def protocol_version():
@typing.override
def _create_recursive_debugger(self):
- return _PdbServer(self._sockfile, owns_sockfile=False)
+ return _PdbServer(
+ self._sockfile,
+ owns_sockfile=False,
+ colorize=self.colorize,
+ )
@typing.override
def _prompt_for_confirmation(self, prompt, default):
return None
-def _connect(*, host, port, frame, commands, version, signal_raising_thread):
+def _connect(
+ *,
+ host,
+ port,
+ frame,
+ commands,
+ version,
+ signal_raising_thread,
+ colorize,
+):
with closing(socket.create_connection((host, port))) as conn:
sockfile = conn.makefile("rwb")
else:
signal_server = None
- remote_pdb = _PdbServer(sockfile, signal_server=signal_server)
+ remote_pdb = _PdbServer(
+ sockfile,
+ signal_server=signal_server,
+ colorize=colorize,
+ )
weakref.finalize(remote_pdb, sockfile.close)
if Pdb._last_pdb_instance is not None:
)
use_signal_thread = sys.platform == "win32"
+ colorize = _colorize.can_colorize()
connect_script.write(
textwrap.dedent(
commands={json.dumps("\n".join(commands))},
version={_PdbServer.protocol_version()},
signal_raising_thread={use_signal_thread!r},
+ colorize={colorize!r},
)
"""
)
commands="",
version=pdb._PdbServer.protocol_version(),
signal_raising_thread=False,
+ colorize=False,
)
return x # This line won't be reached in debugging
commands="",
version=pdb._PdbServer.protocol_version(),
signal_raising_thread=True,
+ colorize=False,
)
print("Connected to debugger")
iterations = 50
commands="",
version=fake_version,
signal_raising_thread=False,
+ colorize=False,
)
# This should print if the debugger detaches correctly