@@ -726,7 +726,6 @@ def replace(
726726        value ,
727727        inplace : bool  =  False ,
728728        regex : bool  =  False ,
729-         convert : bool  =  True ,
730729    ) ->  List ["Block" ]:
731730        """ 
732731        replace the to_replace value with value, possible to create new 
@@ -755,9 +754,7 @@ def replace(
755754            if  len (to_replace ) ==  1 :
756755                # _can_hold_element checks have reduced this back to the 
757756                #  scalar case and we can avoid a costly object cast 
758-                 return  self .replace (
759-                     to_replace [0 ], value , inplace = inplace , regex = regex , convert = convert 
760-                 )
757+                 return  self .replace (to_replace [0 ], value , inplace = inplace , regex = regex )
761758
762759            # GH 22083, TypeError or ValueError occurred within error handling 
763760            # causes infinite loop. Cast and retry only if not objectblock. 
@@ -771,7 +768,6 @@ def replace(
771768                value = value ,
772769                inplace = inplace ,
773770                regex = regex ,
774-                 convert = convert ,
775771            )
776772
777773        values  =  self .values 
@@ -810,16 +806,21 @@ def replace(
810806                value = value ,
811807                inplace = inplace ,
812808                regex = regex ,
813-                 convert = convert ,
814-             )
815-         if  convert :
816-             blocks  =  extend_blocks (
817-                 [b .convert (numeric = False , copy = not  inplace ) for  b  in  blocks ]
818809            )
810+ 
811+         blocks  =  extend_blocks (
812+             [b .convert (numeric = False , copy = not  inplace ) for  b  in  blocks ]
813+         )
819814        return  blocks 
820815
821816    def  _replace_single (
822-         self , to_replace , value , inplace = False , regex = False , convert = True , mask = None 
817+         self ,
818+         to_replace ,
819+         value ,
820+         inplace : bool  =  False ,
821+         regex : bool  =  False ,
822+         convert : bool  =  True ,
823+         mask = None ,
823824    ) ->  List ["Block" ]:
824825        """ no-op on a non-ObjectBlock """ 
825826        return  [self ] if  inplace  else  [self .copy ()]
@@ -860,9 +861,9 @@ def comp(s: Scalar, mask: np.ndarray, regex: bool = False) -> np.ndarray:
860861                m  =  masks [i ]
861862                convert  =  i  ==  src_len   # only convert once at the end 
862863                result  =  blk ._replace_coerce (
863-                     mask = m ,
864864                    to_replace = src ,
865865                    value = dest ,
866+                     mask = m ,
866867                    inplace = inplace ,
867868                    regex = regex ,
868869                )
@@ -1567,9 +1568,9 @@ def _replace_coerce(
15671568        self ,
15681569        to_replace ,
15691570        value ,
1571+         mask : np .ndarray ,
15701572        inplace : bool  =  True ,
15711573        regex : bool  =  False ,
1572-         mask = None ,
15731574    ) ->  List ["Block" ]:
15741575        """ 
15751576        Replace value corresponding to the given boolean array with another 
@@ -1581,12 +1582,12 @@ def _replace_coerce(
15811582            Scalar to replace or regular expression to match. 
15821583        value : object 
15831584            Replacement object. 
1585+         mask : np.ndarray[bool] 
1586+             True indicate corresponding element is ignored. 
15841587        inplace : bool, default True 
15851588            Perform inplace modification. 
15861589        regex : bool, default False 
15871590            If true, perform regular expression substitution. 
1588-         mask : array-like of bool, optional 
1589-             True indicate corresponding element is ignored. 
15901591
15911592        Returns 
15921593        ------- 
@@ -2495,7 +2496,11 @@ def _can_hold_element(self, element: Any) -> bool:
24952496        return  True 
24962497
24972498    def  replace (
2498-         self , to_replace , value , inplace = False , regex = False , convert = True 
2499+         self ,
2500+         to_replace ,
2501+         value ,
2502+         inplace : bool  =  False ,
2503+         regex : bool  =  False ,
24992504    ) ->  List ["Block" ]:
25002505        to_rep_is_list  =  is_list_like (to_replace )
25012506        value_is_list  =  is_list_like (value )
@@ -2506,20 +2511,14 @@ def replace(
25062511        blocks : List ["Block" ] =  [self ]
25072512
25082513        if  not  either_list  and  is_re (to_replace ):
2509-             return  self ._replace_single (
2510-                 to_replace , value , inplace = inplace , regex = True , convert = convert 
2511-             )
2514+             return  self ._replace_single (to_replace , value , inplace = inplace , regex = True )
25122515        elif  not  (either_list  or  regex ):
2513-             return  super ().replace (
2514-                 to_replace , value , inplace = inplace , regex = regex , convert = convert 
2515-             )
2516+             return  super ().replace (to_replace , value , inplace = inplace , regex = regex )
25162517        elif  both_lists :
25172518            for  to_rep , v  in  zip (to_replace , value ):
25182519                result_blocks  =  []
25192520                for  b  in  blocks :
2520-                     result  =  b ._replace_single (
2521-                         to_rep , v , inplace = inplace , regex = regex , convert = convert 
2522-                     )
2521+                     result  =  b ._replace_single (to_rep , v , inplace = inplace , regex = regex )
25232522                    result_blocks .extend (result )
25242523                blocks  =  result_blocks 
25252524            return  result_blocks 
@@ -2529,18 +2528,22 @@ def replace(
25292528                result_blocks  =  []
25302529                for  b  in  blocks :
25312530                    result  =  b ._replace_single (
2532-                         to_rep , value , inplace = inplace , regex = regex ,  convert = convert 
2531+                         to_rep , value , inplace = inplace , regex = regex 
25332532                    )
25342533                    result_blocks .extend (result )
25352534                blocks  =  result_blocks 
25362535            return  result_blocks 
25372536
2538-         return  self ._replace_single (
2539-             to_replace , value , inplace = inplace , convert = convert , regex = regex 
2540-         )
2537+         return  self ._replace_single (to_replace , value , inplace = inplace , regex = regex )
25412538
25422539    def  _replace_single (
2543-         self , to_replace , value , inplace = False , regex = False , convert = True , mask = None 
2540+         self ,
2541+         to_replace ,
2542+         value ,
2543+         inplace : bool  =  False ,
2544+         regex : bool  =  False ,
2545+         convert : bool  =  True ,
2546+         mask = None ,
25442547    ) ->  List ["Block" ]:
25452548        """ 
25462549        Replace elements by the given value. 
@@ -2567,23 +2570,7 @@ def _replace_single(
25672570        inplace  =  validate_bool_kwarg (inplace , "inplace" )
25682571
25692572        # to_replace is regex compilable 
2570-         to_rep_re  =  regex  and  is_re_compilable (to_replace )
2571- 
2572-         # regex is regex compilable 
2573-         regex_re  =  is_re_compilable (regex )
2574- 
2575-         # only one will survive 
2576-         if  to_rep_re  and  regex_re :
2577-             raise  AssertionError (
2578-                 "only one of to_replace and regex can be regex compilable" 
2579-             )
2580- 
2581-         # if regex was passed as something that can be a regex (rather than a 
2582-         # boolean) 
2583-         if  regex_re :
2584-             to_replace  =  regex 
2585- 
2586-         regex  =  regex_re  or  to_rep_re 
2573+         regex  =  regex  and  is_re_compilable (to_replace )
25872574
25882575        # try to get the pattern attribute (compiled re) or it's a string 
25892576        if  is_re (to_replace ):
@@ -2646,7 +2633,6 @@ def replace(
26462633        value ,
26472634        inplace : bool  =  False ,
26482635        regex : bool  =  False ,
2649-         convert : bool  =  True ,
26502636    ) ->  List ["Block" ]:
26512637        inplace  =  validate_bool_kwarg (inplace , "inplace" )
26522638        result  =  self  if  inplace  else  self .copy ()
0 commit comments