From 30225befa9653bc519be8b71bbb305d5b674b9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dea=20Mar=C3=ADa=20L=C3=A9on?= Date: Wed, 26 Jul 2023 18:12:27 +0200 Subject: [PATCH 1/2] Example ExtensionArray._formatter --- ci/code_checks.sh | 1 - pandas/core/arrays/base.py | 10 ++++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ci/code_checks.sh b/ci/code_checks.sh index 0c9c0071d6292..477057906ad8d 100755 --- a/ci/code_checks.sh +++ b/ci/code_checks.sh @@ -85,7 +85,6 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then pandas.api.extensions.ExtensionArray \ pandas.arrays.NumpyExtensionArray \ pandas.api.extensions.ExtensionArray._concat_same_type \ - pandas.api.extensions.ExtensionArray._formatter \ pandas.api.extensions.ExtensionArray._from_factorized \ pandas.api.extensions.ExtensionArray._from_sequence \ pandas.api.extensions.ExtensionArray._from_sequence_of_strings \ diff --git a/pandas/core/arrays/base.py b/pandas/core/arrays/base.py index 265d8aa41f53f..2519477867db7 100644 --- a/pandas/core/arrays/base.py +++ b/pandas/core/arrays/base.py @@ -1527,6 +1527,16 @@ def _formatter(self, boxed: bool = False) -> Callable[[Any], str | None]: returns a string. By default, :func:`repr` is used when ``boxed=False`` and :func:`str` is used when ``boxed=True``. + + Examples + -------- + >>> class MyExtensionArray(pd.arrays.NumpyExtensionArray): + ... def _formatter(self, boxed=False): + ... return lambda x: '*' + str(x) + '*' + >>> MyExtensionArray(np.array([1, 2, 3, 4])) + + [*1*, *2*, *3*, *4*] + Length: 4, dtype: int64 """ if boxed: return str From 0814954e77bcdb5ca24c5179346f221782333327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dea=20Mar=C3=ADa=20L=C3=A9on?= Date: Wed, 26 Jul 2023 19:44:49 +0200 Subject: [PATCH 2/2] Added if boxed... --- pandas/core/arrays/base.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/core/arrays/base.py b/pandas/core/arrays/base.py index 2519477867db7..e12c5ff9eb63d 100644 --- a/pandas/core/arrays/base.py +++ b/pandas/core/arrays/base.py @@ -1532,10 +1532,10 @@ def _formatter(self, boxed: bool = False) -> Callable[[Any], str | None]: -------- >>> class MyExtensionArray(pd.arrays.NumpyExtensionArray): ... def _formatter(self, boxed=False): - ... return lambda x: '*' + str(x) + '*' + ... return lambda x: '*' + str(x) + '*' if boxed else repr(x) + '*' >>> MyExtensionArray(np.array([1, 2, 3, 4])) - [*1*, *2*, *3*, *4*] + [1*, 2*, 3*, 4*] Length: 4, dtype: int64 """ if boxed: