@@ -2677,6 +2677,7 @@ def __init__(
26772677 sockfile ,
26782678 signal_server = None ,
26792679 owns_sockfile = True ,
2680+ colorize = False ,
26802681 ** kwargs ,
26812682 ):
26822683 self ._owns_sockfile = owns_sockfile
@@ -2687,7 +2688,10 @@ def __init__(
26872688 if signal_server :
26882689 # Only started by the top level _PdbServer, not recursive ones.
26892690 self ._start_signal_listener (signal_server )
2691+ # Override the `colorize` attribute set by the parent constructor,
2692+ # because it checks the server's stdout, rather than the client's.
26902693 super ().__init__ (colorize = False , ** kwargs )
2694+ self .colorize = colorize
26912695
26922696 @staticmethod
26932697 def protocol_version ():
@@ -2975,7 +2979,11 @@ def do_interact(self, arg):
29752979
29762980 @typing .override
29772981 def _create_recursive_debugger (self ):
2978- return _PdbServer (self ._sockfile , owns_sockfile = False )
2982+ return _PdbServer (
2983+ self ._sockfile ,
2984+ owns_sockfile = False ,
2985+ colorize = self .colorize ,
2986+ )
29792987
29802988 @typing .override
29812989 def _prompt_for_confirmation (self , prompt , default ):
@@ -3336,7 +3344,16 @@ def complete(self, text, state):
33363344 return None
33373345
33383346
3339- def _connect (* , host , port , frame , commands , version , signal_raising_thread ):
3347+ def _connect (
3348+ * ,
3349+ host ,
3350+ port ,
3351+ frame ,
3352+ commands ,
3353+ version ,
3354+ signal_raising_thread ,
3355+ colorize ,
3356+ ):
33403357 with closing (socket .create_connection ((host , port ))) as conn :
33413358 sockfile = conn .makefile ("rwb" )
33423359
@@ -3347,7 +3364,11 @@ def _connect(*, host, port, frame, commands, version, signal_raising_thread):
33473364 else :
33483365 signal_server = None
33493366
3350- remote_pdb = _PdbServer (sockfile , signal_server = signal_server )
3367+ remote_pdb = _PdbServer (
3368+ sockfile ,
3369+ signal_server = signal_server ,
3370+ colorize = colorize ,
3371+ )
33513372 weakref .finalize (remote_pdb , sockfile .close )
33523373
33533374 if Pdb ._last_pdb_instance is not None :
@@ -3379,6 +3400,7 @@ def attach(pid, commands=()):
33793400 )
33803401
33813402 use_signal_thread = sys .platform == "win32"
3403+ colorize = _colorize .can_colorize ()
33823404
33833405 connect_script .write (
33843406 textwrap .dedent (
@@ -3391,6 +3413,7 @@ def attach(pid, commands=()):
33913413 commands={ json .dumps ("\n " .join (commands ))} ,
33923414 version={ _PdbServer .protocol_version ()} ,
33933415 signal_raising_thread={ use_signal_thread !r} ,
3416+ colorize={ colorize !r} ,
33943417 )
33953418 """
33963419 )
0 commit comments