@@ -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