Skip to content

Commit 6d7ba05

Browse files
topper-123gfyoung
authored andcommitted
CLN;: remove compat.lzip (#26311)
xref gh-25725
1 parent 7bd7fab commit 6d7ba05

31 files changed

+81
-116
lines changed

pandas/compat/__init__.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Cross-compatible functions for different versions of Python.
66
77
Key items to import for compatible code:
8-
* lists: lrange(), lmap(), lzip()
8+
* lists: lrange(), lmap()
99
1010
Other items:
1111
* platform checker
@@ -24,10 +24,6 @@ def lrange(*args, **kwargs):
2424
return list(range(*args, **kwargs))
2525

2626

27-
def lzip(*args, **kwargs):
28-
return list(zip(*args, **kwargs))
29-
30-
3127
def lmap(*args, **kwargs):
3228
return list(map(*args, **kwargs))
3329

pandas/core/arrays/categorical.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from pandas._config import get_option
88

99
from pandas._libs import algos as libalgos, lib
10-
from pandas.compat import lzip
1110
from pandas.compat.numpy import function as nv
1211
from pandas.util._decorators import (
1312
Appender, Substitution, cache_readonly, deprecate_kwarg)
@@ -2706,4 +2705,4 @@ def _factorize_from_iterables(iterables):
27062705
if len(iterables) == 0:
27072706
# For consistency, it should return a list of 2 lists.
27082707
return [[], []]
2709-
return map(list, lzip(*[_factorize_from_iterable(it) for it in iterables]))
2708+
return map(list, zip(*(_factorize_from_iterable(it) for it in iterables)))

pandas/core/frame.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
from pandas.util._validators import (validate_bool_kwarg,
3232
validate_axis_style_args)
3333

34-
from pandas.compat import PY36, lmap, lzip, raise_with_traceback
34+
from pandas.compat import PY36, lmap, raise_with_traceback
3535
from pandas.compat.numpy import function as nv
3636
from pandas.core.dtypes.cast import (
3737
maybe_upcast,
@@ -1752,7 +1752,7 @@ def from_items(cls, items, columns=None, orient='columns'):
17521752
"preserve the key order.",
17531753
FutureWarning, stacklevel=2)
17541754

1755-
keys, values = lzip(*items)
1755+
keys, values = zip(*items)
17561756

17571757
if orient == 'columns':
17581758
if columns is not None:
@@ -4433,7 +4433,7 @@ def _maybe_casted_values(index, labels=None):
44334433
if isinstance(self.index, MultiIndex):
44344434
names = [n if n is not None else ('level_%d' % i)
44354435
for (i, n) in enumerate(self.index.names)]
4436-
to_insert = lzip(self.index.levels, self.index.codes)
4436+
to_insert = zip(self.index.levels, self.index.codes)
44374437
else:
44384438
default = 'index' if 'index' not in self else 'level_0'
44394439
names = ([default] if self.index.name is None

pandas/core/generic.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from pandas._config import config
1616

1717
from pandas._libs import Timestamp, iNaT, properties
18-
from pandas.compat import lzip, set_function_name, to_str
18+
from pandas.compat import set_function_name, to_str
1919
from pandas.compat.numpy import function as nv
2020
from pandas.errors import AbstractMethodError
2121
from pandas.util._decorators import (
@@ -6546,7 +6546,7 @@ def replace(self, to_replace=None, value=None, inplace=False, limit=None,
65466546
regex = True
65476547

65486548
items = list(to_replace.items())
6549-
keys, values = lzip(*items) or ([], [])
6549+
keys, values = zip(*items) if items else ([], [])
65506550

65516551
are_mappings = [is_dict_like(v) for v in values]
65526552

@@ -6560,7 +6560,7 @@ def replace(self, to_replace=None, value=None, inplace=False, limit=None,
65606560
value_dict = {}
65616561

65626562
for k, v in items:
6563-
keys, values = lzip(*v.items()) or ([], [])
6563+
keys, values = list(zip(*v.items())) or ([], [])
65646564
if set(keys) & set(values):
65656565
raise ValueError("Replacement not allowed with "
65666566
"overlapping keys and values")

pandas/core/groupby/generic.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import numpy as np
1616

1717
from pandas._libs import Timestamp, lib
18-
from pandas.compat import lzip
1918
from pandas.errors import AbstractMethodError
2019
from pandas.util._decorators import Appender, Substitution
2120

@@ -781,13 +780,13 @@ def _aggregate_multiple_funcs(self, arg, _level):
781780
FutureWarning, stacklevel=3)
782781

783782
columns = list(arg.keys())
784-
arg = list(arg.items())
783+
arg = arg.items()
785784
elif any(isinstance(x, (tuple, list)) for x in arg):
786785
arg = [(x, x) if not isinstance(x, (tuple, list)) else x
787786
for x in arg]
788787

789788
# indicated column order
790-
columns = lzip(*arg)[0]
789+
columns = next(zip(*arg))
791790
else:
792791
# list of functions / function names
793792
columns = []
@@ -797,7 +796,7 @@ def _aggregate_multiple_funcs(self, arg, _level):
797796
else:
798797
# protect against callables without names
799798
columns.append(com.get_callable_name(f))
800-
arg = lzip(columns, arg)
799+
arg = zip(columns, arg)
801800

802801
results = OrderedDict()
803802
for name, func in arg:

pandas/core/groupby/ops.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
from pandas._libs import NaT, iNaT, lib
1414
import pandas._libs.groupby as libgroupby
1515
import pandas._libs.reduction as reduction
16-
from pandas.compat import lzip
1716
from pandas.errors import AbstractMethodError
1817
from pandas.util._decorators import cache_readonly
1918

@@ -259,7 +258,7 @@ def groups(self):
259258
if len(self.groupings) == 1:
260259
return self.groupings[0].groups
261260
else:
262-
to_groupby = lzip(*(ping.grouper for ping in self.groupings))
261+
to_groupby = zip(*(ping.grouper for ping in self.groupings))
263262
to_groupby = Index(to_groupby)
264263
return self.axis.groupby(to_groupby)
265264

pandas/core/indexes/multi.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
from pandas._libs import (
1111
Timestamp, algos as libalgos, index as libindex, lib, tslibs)
12-
from pandas.compat import lzip
1312
from pandas.compat.numpy import function as nv
1413
from pandas.errors import PerformanceWarning, UnsortedIndexError
1514
from pandas.util._decorators import Appender, cache_readonly, deprecate_kwarg
@@ -402,7 +401,7 @@ def from_tuples(cls, tuples, sortorder=None, names=None):
402401
elif isinstance(tuples, list):
403402
arrays = list(lib.to_object_array_tuples(tuples).T)
404403
else:
405-
arrays = lzip(*tuples)
404+
arrays = zip(*tuples)
406405

407406
return MultiIndex.from_arrays(arrays, sortorder=sortorder, names=names)
408407

@@ -511,7 +510,7 @@ def from_frame(cls, df, sortorder=None, names=None):
511510
if not isinstance(df, ABCDataFrame):
512511
raise TypeError("Input must be a DataFrame")
513512

514-
column_names, columns = lzip(*df.iteritems())
513+
column_names, columns = zip(*df.iteritems())
515514
names = column_names if names is None else names
516515
return cls.from_arrays(columns, sortorder=sortorder, names=names)
517516

@@ -2941,7 +2940,7 @@ def union(self, other, sort=None):
29412940
other._ndarray_values],
29422941
sort=sort)
29432942

2944-
return MultiIndex.from_arrays(lzip(*uniq_tuples), sortorder=0,
2943+
return MultiIndex.from_arrays(zip(*uniq_tuples), sortorder=0,
29452944
names=result_names)
29462945

29472946
def intersection(self, other, sort=False):
@@ -2984,7 +2983,7 @@ def intersection(self, other, sort=False):
29842983
codes=[[]] * self.nlevels,
29852984
names=result_names, verify_integrity=False)
29862985
else:
2987-
return MultiIndex.from_arrays(lzip(*uniq_tuples), sortorder=0,
2986+
return MultiIndex.from_arrays(zip(*uniq_tuples), sortorder=0,
29882987
names=result_names)
29892988

29902989
def difference(self, other, sort=None):
@@ -3152,7 +3151,7 @@ def isin(self, values, level=None):
31523151

31533152

31543153
def _sparsify(label_list, start=0, sentinel=''):
3155-
pivoted = lzip(*label_list)
3154+
pivoted = list(zip(*label_list))
31563155
k = len(label_list)
31573156

31583157
result = pivoted[:start + 1]
@@ -3176,7 +3175,7 @@ def _sparsify(label_list, start=0, sentinel=''):
31763175

31773176
prev = cur
31783177

3179-
return lzip(*result)
3178+
return list(zip(*result))
31803179

31813180

31823181
def _get_na_rep(dtype):

pandas/core/reshape/concat.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import pandas.core.dtypes.concat as _concat
88

9-
from pandas import DataFrame, Index, MultiIndex, Series, compat
9+
from pandas import DataFrame, Index, MultiIndex, Series
1010
from pandas.core import common as com
1111
from pandas.core.arrays.categorical import (
1212
_factorize_from_iterable, _factorize_from_iterables)
@@ -536,7 +536,7 @@ def _make_concat_multiindex(indexes, keys, levels=None, names=None):
536536

537537
if ((levels is None and isinstance(keys[0], tuple)) or
538538
(levels is not None and len(levels) > 1)):
539-
zipped = compat.lzip(*keys)
539+
zipped = list(zip(*keys))
540540
if names is None:
541541
names = [None] * len(zipped)
542542

pandas/core/reshape/merge.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import numpy as np
1010

1111
from pandas._libs import hashtable as libhashtable, join as libjoin, lib
12-
from pandas.compat import lzip
1312
from pandas.errors import MergeError
1413
from pandas.util._decorators import Appender, Substitution
1514

@@ -1512,7 +1511,7 @@ def flip(xs):
15121511
labels = list(string.ascii_lowercase[:len(xs)])
15131512
dtypes = [x.dtype for x in xs]
15141513
labeled_dtypes = list(zip(labels, dtypes))
1515-
return np.array(lzip(*xs), labeled_dtypes)
1514+
return np.array(list(zip(*xs)), labeled_dtypes)
15161515

15171516
# values to compare
15181517
left_values = (self.left.index.values if self.left_index else

pandas/io/formats/format.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
from pandas._libs import lib
1616
from pandas._libs.tslib import format_array_from_datetime
1717
from pandas._libs.tslibs import NaT, Timedelta, Timestamp, iNaT
18-
from pandas.compat import lzip
1918

2019
from pandas.core.dtypes.common import (
2120
is_categorical_dtype, is_complex_dtype, is_datetime64_dtype,
@@ -753,7 +752,7 @@ def _get_formatted_column_labels(self, frame):
753752

754753
if isinstance(columns, ABCMultiIndex):
755754
fmt_columns = columns.format(sparsify=False, adjoin=False)
756-
fmt_columns = lzip(*fmt_columns)
755+
fmt_columns = list(zip(*fmt_columns))
757756
dtypes = self.frame.dtypes._values
758757

759758
# if we have a Float level, they don't use leading space at all

0 commit comments

Comments
 (0)