From 88375062d52e94ec56057395ab8103907d4b8302 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 17 Dec 2025 11:16:08 +0100 Subject: [PATCH] Keep compatibility for subclasses overriding __finalize__ for concat/merge --- pandas/core/reshape/concat.py | 8 +++++--- pandas/core/reshape/merge.py | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/pandas/core/reshape/concat.py b/pandas/core/reshape/concat.py index c8a0a365dcc28..d5d7520366a2f 100644 --- a/pandas/core/reshape/concat.py +++ b/pandas/core/reshape/concat.py @@ -598,7 +598,7 @@ def _get_result( result = sample._constructor_from_mgr(mgr, axes=mgr.axes) result._name = name return result.__finalize__( - types.SimpleNamespace(input_objs=objs), method="concat" + types.SimpleNamespace(input_objs=objs, objs=objs), method="concat" ) # combine as columns in a frame @@ -620,7 +620,7 @@ def _get_result( df = cons(data, index=index, copy=False) df.columns = columns return df.__finalize__( - types.SimpleNamespace(input_objs=objs), method="concat" + types.SimpleNamespace(input_objs=objs, objs=objs), method="concat" ) # combine block managers @@ -660,7 +660,9 @@ def _get_result( ) out = sample._constructor_from_mgr(new_data, axes=new_data.axes) - return out.__finalize__(types.SimpleNamespace(input_objs=objs), method="concat") + return out.__finalize__( + types.SimpleNamespace(input_objs=objs, objs=objs), method="concat" + ) def new_axes( diff --git a/pandas/core/reshape/merge.py b/pandas/core/reshape/merge.py index 8f9eafded2831..f7fd4da2968a7 100644 --- a/pandas/core/reshape/merge.py +++ b/pandas/core/reshape/merge.py @@ -1150,7 +1150,10 @@ def get_result(self) -> DataFrame: self._maybe_restore_index_levels(result) return result.__finalize__( - types.SimpleNamespace(input_objs=[self.left, self.right]), method="merge" + types.SimpleNamespace( + input_objs=[self.left, self.right], left=self.left, right=self.right + ), + method="merge", ) @final