From 890717f953c79b26894a9e1f24d624b840742ac8 Mon Sep 17 00:00:00 2001 From: invain01 <3038026071@qq.com> Date: Thu, 6 Nov 2025 12:13:31 +0800 Subject: [PATCH 1/5] STY: Add strict=True in zip() in \core --- pandas/core/reshape/concat.py | 7 +++++-- pandas/core/reshape/encoding.py | 4 +++- pandas/core/reshape/melt.py | 2 +- pandas/core/reshape/pivot.py | 4 ++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/pandas/core/reshape/concat.py b/pandas/core/reshape/concat.py index 7d5d6bac9db41..8920d25cd5b8d 100644 --- a/pandas/core/reshape/concat.py +++ b/pandas/core/reshape/concat.py @@ -422,12 +422,15 @@ def concat( intersect or any(not isinstance(index, DatetimeIndex) for index in non_concat_axis) or all( - prev is curr for prev, curr in zip(non_concat_axis, non_concat_axis[1:]) + prev is curr + for prev, curr in zip(non_concat_axis, non_concat_axis[1:], strict=True) ) or ( all( prev[-1] <= curr[0] and prev.is_monotonic_increasing - for prev, curr in zip(non_concat_axis, non_concat_axis[1:]) + for prev, curr in zip( + non_concat_axis, non_concat_axis[1:], strict=True + ) if not prev.empty and not curr.empty ) and non_concat_axis[-1].is_monotonic_increasing diff --git a/pandas/core/reshape/encoding.py b/pandas/core/reshape/encoding.py index 0dfd721dee312..d8ca9336113e7 100644 --- a/pandas/core/reshape/encoding.py +++ b/pandas/core/reshape/encoding.py @@ -211,7 +211,9 @@ def check_len(item, name: str) -> None: # columns to prepend to result. with_dummies = [data.select_dtypes(exclude=dtypes_to_encode)] - for col, pre, sep in zip(data_to_encode.items(), prefix, prefix_sep): + for col, pre, sep in zip( + data_to_encode.items(), prefix, prefix_sep, strict=True + ): # col is (column_name, column), use just column data here dummy = _get_dummies_1d( col[1], diff --git a/pandas/core/reshape/melt.py b/pandas/core/reshape/melt.py index 5d4b15c9a0ca3..aeab833878583 100644 --- a/pandas/core/reshape/melt.py +++ b/pandas/core/reshape/melt.py @@ -199,7 +199,7 @@ def melt( missing = idx == -1 if missing.any(): missing_labels = [ - lab for lab, not_found in zip(labels, missing) if not_found + lab for lab, not_found in zip(labels, missing, strict=True) if not_found ] raise KeyError( "The following id_vars or value_vars are not present in " diff --git a/pandas/core/reshape/pivot.py b/pandas/core/reshape/pivot.py index 04c584c226aed..30b96c047aab8 100644 --- a/pandas/core/reshape/pivot.py +++ b/pandas/core/reshape/pivot.py @@ -1098,8 +1098,8 @@ def crosstab( from pandas import DataFrame data = { - **dict(zip(unique_rownames, index)), - **dict(zip(unique_colnames, columns)), + **dict(zip(unique_rownames, index, strict=True)), + **dict(zip(unique_colnames, columns, strict=True)), } df = DataFrame(data, index=common_idx) From 450345af32d4616e371c3565d012205a829b6a3a Mon Sep 17 00:00:00 2001 From: invain01 <3038026071@qq.com> Date: Thu, 6 Nov 2025 13:08:09 +0800 Subject: [PATCH 2/5] fix.wrongly edited --- pandas/core/reshape/concat.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pandas/core/reshape/concat.py b/pandas/core/reshape/concat.py index 8920d25cd5b8d..7d5d6bac9db41 100644 --- a/pandas/core/reshape/concat.py +++ b/pandas/core/reshape/concat.py @@ -422,15 +422,12 @@ def concat( intersect or any(not isinstance(index, DatetimeIndex) for index in non_concat_axis) or all( - prev is curr - for prev, curr in zip(non_concat_axis, non_concat_axis[1:], strict=True) + prev is curr for prev, curr in zip(non_concat_axis, non_concat_axis[1:]) ) or ( all( prev[-1] <= curr[0] and prev.is_monotonic_increasing - for prev, curr in zip( - non_concat_axis, non_concat_axis[1:], strict=True - ) + for prev, curr in zip(non_concat_axis, non_concat_axis[1:]) if not prev.empty and not curr.empty ) and non_concat_axis[-1].is_monotonic_increasing From adefd43e72abe2af8c835005962fc60db5d63b38 Mon Sep 17 00:00:00 2001 From: invain01 <3038026071@qq.com> Date: Thu, 6 Nov 2025 13:41:23 +0800 Subject: [PATCH 3/5] fix.encoding.py strict = True -> strict = False --- pandas/core/reshape/encoding.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/reshape/encoding.py b/pandas/core/reshape/encoding.py index d8ca9336113e7..7399d1409359e 100644 --- a/pandas/core/reshape/encoding.py +++ b/pandas/core/reshape/encoding.py @@ -212,7 +212,7 @@ def check_len(item, name: str) -> None: with_dummies = [data.select_dtypes(exclude=dtypes_to_encode)] for col, pre, sep in zip( - data_to_encode.items(), prefix, prefix_sep, strict=True + data_to_encode.items(), prefix, prefix_sep, strict=False ): # col is (column_name, column), use just column data here dummy = _get_dummies_1d( From 54300fb2a6d7d22c83bf3463cdbcde884b5f3576 Mon Sep 17 00:00:00 2001 From: invain01 <3038026071@qq.com> Date: Fri, 7 Nov 2025 00:16:37 +0800 Subject: [PATCH 4/5] fix.iterator setting fixed to pass the CI tests --- pandas/core/reshape/encoding.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pandas/core/reshape/encoding.py b/pandas/core/reshape/encoding.py index 7399d1409359e..91571f5fd4568 100644 --- a/pandas/core/reshape/encoding.py +++ b/pandas/core/reshape/encoding.py @@ -5,7 +5,6 @@ Hashable, Iterable, ) -import itertools from typing import TYPE_CHECKING import numpy as np @@ -185,7 +184,7 @@ def check_len(item, name: str) -> None: check_len(prefix_sep, "prefix_sep") if isinstance(prefix, str): - prefix = itertools.cycle([prefix]) + prefix = [prefix] * len(data_to_encode.columns) if isinstance(prefix, dict): prefix = [prefix[col] for col in data_to_encode.columns] @@ -194,7 +193,7 @@ def check_len(item, name: str) -> None: # validate separators if isinstance(prefix_sep, str): - prefix_sep = itertools.cycle([prefix_sep]) + prefix_sep = [prefix_sep] * len(data_to_encode.columns) elif isinstance(prefix_sep, dict): prefix_sep = [prefix_sep[col] for col in data_to_encode.columns] @@ -212,7 +211,7 @@ def check_len(item, name: str) -> None: with_dummies = [data.select_dtypes(exclude=dtypes_to_encode)] for col, pre, sep in zip( - data_to_encode.items(), prefix, prefix_sep, strict=False + data_to_encode.items(), prefix, prefix_sep, strict=True ): # col is (column_name, column), use just column data here dummy = _get_dummies_1d( From 1a9823e99708d9cc077e724808be8430adf539da Mon Sep 17 00:00:00 2001 From: invain01 <3038026071@qq.com> Date: Fri, 7 Nov 2025 00:44:55 +0800 Subject: [PATCH 5/5] fix.using itertools.repeat --- pandas/core/reshape/encoding.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas/core/reshape/encoding.py b/pandas/core/reshape/encoding.py index 91571f5fd4568..3c8eae36da99a 100644 --- a/pandas/core/reshape/encoding.py +++ b/pandas/core/reshape/encoding.py @@ -5,6 +5,7 @@ Hashable, Iterable, ) +import itertools from typing import TYPE_CHECKING import numpy as np @@ -184,7 +185,7 @@ def check_len(item, name: str) -> None: check_len(prefix_sep, "prefix_sep") if isinstance(prefix, str): - prefix = [prefix] * len(data_to_encode.columns) + prefix = itertools.repeat(prefix, len(data_to_encode.columns)) if isinstance(prefix, dict): prefix = [prefix[col] for col in data_to_encode.columns] @@ -193,7 +194,7 @@ def check_len(item, name: str) -> None: # validate separators if isinstance(prefix_sep, str): - prefix_sep = [prefix_sep] * len(data_to_encode.columns) + prefix_sep = itertools.repeat(prefix_sep, len(data_to_encode.columns)) elif isinstance(prefix_sep, dict): prefix_sep = [prefix_sep[col] for col in data_to_encode.columns]