Skip to content

CLN: remove compat.iteritems #26079

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 15, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions pandas/compat/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

Key items to import for compatible code:
* lists: lrange(), lmap(), lzip(), lfilter()
* iterable method compatibility: iteritems, iterkeys, itervalues
* iterable method compatibility: iterkeys, itervalues
* Uses the original method if available, otherwise uses items, keys, values.
* add_metaclass(metaclass) - class decorator that recreates class with with the
given metaclass instead (and avoids intermediary class creation)
Expand Down Expand Up @@ -45,10 +45,6 @@ def lfilter(*args, **kwargs):
return list(filter(*args, **kwargs))


def iteritems(obj, **kw):
return iter(obj.items(**kw))


def iterkeys(obj, **kw):
return iter(obj.keys(**kw))

Expand Down
3 changes: 1 addition & 2 deletions pandas/core/arrays/categorical.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
from pandas._config import get_option

from pandas._libs import algos as libalgos, lib
import pandas.compat as compat
from pandas.compat import lzip
from pandas.compat.numpy import function as nv
from pandas.util._decorators import (
Expand Down Expand Up @@ -1317,7 +1316,7 @@ def __setstate__(self, state):
state['_dtype'] = CategoricalDtype(state['_categories'],
state['_ordered'])

for k, v in compat.iteritems(state):
for k, v in state.items():
setattr(self, k, v)

@property
Expand Down
4 changes: 2 additions & 2 deletions pandas/core/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ def nested_renaming_depr(level=4):
# be list-likes
if any(is_aggregator(x) for x in compat.itervalues(arg)):
new_arg = OrderedDict()
for k, v in compat.iteritems(arg):
for k, v in arg.items():
if not isinstance(v, (tuple, list, dict)):
new_arg[k] = [v]
else:
Expand Down Expand Up @@ -432,7 +432,7 @@ def _agg(arg, func):
return an OrderedDict
"""
result = OrderedDict()
for fname, agg_how in compat.iteritems(arg):
for fname, agg_how in arg.items():
result[fname] = func(fname, agg_how)
return result

Expand Down
4 changes: 2 additions & 2 deletions pandas/core/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import numpy as np

from pandas._libs import lib, tslibs
from pandas.compat import PY36, iteritems
from pandas.compat import PY36

from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike
from pandas.core.dtypes.common import (
Expand Down Expand Up @@ -362,7 +362,7 @@ def dict_compat(d):
dict

"""
return {maybe_box_datetimelike(key): value for key, value in iteritems(d)}
return {maybe_box_datetimelike(key): value for key, value in d.items()}


def standardize_mapping(into):
Expand Down
5 changes: 2 additions & 3 deletions pandas/core/computation/align.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
from pandas.errors import PerformanceWarning

import pandas as pd
from pandas import compat
import pandas.core.common as com
from pandas.core.computation.common import _result_type_many

Expand All @@ -30,7 +29,7 @@ def _align_core_single_unary_op(term):

def _zip_axes_from_type(typ, new_axes):
axes = {ax_name: new_axes[ax_ind]
for ax_ind, ax_name in compat.iteritems(typ._AXIS_NAMES)}
for ax_ind, ax_name in typ._AXIS_NAMES.items()}
return axes


Expand Down Expand Up @@ -84,7 +83,7 @@ def _align_core(terms):
if not axes[ax].is_(itm):
axes[ax] = axes[ax].join(itm, how='outer')

for i, ndim in compat.iteritems(ndims):
for i, ndim in ndims.items():
for axis, items in zip(range(ndim), axes):
ti = terms[i].value

Expand Down
4 changes: 2 additions & 2 deletions pandas/core/computation/expr.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

import numpy as np

from pandas.compat import iteritems, lmap
from pandas.compat import lmap

import pandas as pd
from pandas.core import common as com
Expand Down Expand Up @@ -300,7 +300,7 @@ def f(self, node, *args, **kwargs):
def add_ops(op_classes):
"""Decorator to add default implementation of ops."""
def f(cls):
for op_attr_name, op_class in iteritems(op_classes):
for op_attr_name, op_class in op_classes.items():
ops = getattr(cls, '{name}_ops'.format(name=op_attr_name))
ops_map = getattr(cls, '{name}_op_nodes_map'.format(
name=op_attr_name))
Expand Down
17 changes: 8 additions & 9 deletions pandas/core/frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
from pandas.util._validators import (validate_bool_kwarg,
validate_axis_style_args)

from pandas import compat
from pandas.compat import PY36, lmap, lzip, raise_with_traceback
from pandas.compat.numpy import function as nv
from pandas.core.dtypes.cast import (
Expand Down Expand Up @@ -1275,9 +1274,9 @@ def to_dict(self, orient='dict', into=dict):
into_c = com.standardize_mapping(into)
if orient.lower().startswith('d'):
return into_c(
(k, v.to_dict(into)) for k, v in compat.iteritems(self))
(k, v.to_dict(into)) for k, v in self.items())
elif orient.lower().startswith('l'):
return into_c((k, v.tolist()) for k, v in compat.iteritems(self))
return into_c((k, v.tolist()) for k, v in self.items())
elif orient.lower().startswith('sp'):
return into_c((('index', self.index.tolist()),
('columns', self.columns.tolist()),
Expand All @@ -1287,14 +1286,14 @@ def to_dict(self, orient='dict', into=dict):
])))
elif orient.lower().startswith('s'):
return into_c((k, com.maybe_box_datetimelike(v))
for k, v in compat.iteritems(self))
for k, v in self.items())
elif orient.lower().startswith('r'):
columns = self.columns.tolist()
rows = (dict(zip(columns, row))
for row in self.itertuples(index=False, name=None))
return [
into_c((k, com.maybe_box_datetimelike(v))
for k, v in compat.iteritems(row))
for k, v in row.items())
for row in rows]
elif orient.lower().startswith('i'):
if not self.index.is_unique:
Expand Down Expand Up @@ -1480,7 +1479,7 @@ def from_records(cls, data, index=None, exclude=None, columns=None,
else:
arrays = []
arr_columns = []
for k, v in compat.iteritems(data):
for k, v in data.items():
if k in columns:
arr_columns.append(k)
arrays.append(v)
Expand Down Expand Up @@ -2430,7 +2429,7 @@ def _sizeof_fmt(num, size_qualifier):

counts = self.get_dtype_counts()
dtypes = ['{k}({kk:d})'.format(k=k[0], kk=k[1]) for k
in sorted(compat.iteritems(counts))]
in sorted(counts.items())]
lines.append('dtypes: {types}'.format(types=', '.join(dtypes)))

if memory_usage is None:
Expand Down Expand Up @@ -8051,8 +8050,8 @@ def isin(self, values):
def _from_nested_dict(data):
# TODO: this should be seriously cythonized
new_data = OrderedDict()
for index, s in compat.iteritems(data):
for col, v in compat.iteritems(s):
for index, s in data.items():
for col, v in s.items():
new_data[col] = new_data.get(col, OrderedDict())
new_data[col][index] = v
return new_data
Expand Down
11 changes: 5 additions & 6 deletions pandas/core/generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
from pandas._config import config

from pandas._libs import Timestamp, iNaT, properties
import pandas.compat as compat
from pandas.compat import lrange, lzip, set_function_name, to_str
from pandas.compat.numpy import function as nv
from pandas.errors import AbstractMethodError
Expand Down Expand Up @@ -6154,7 +6153,7 @@ def fillna(self, value=None, method=None, axis=None, inplace=False,
'by column')

result = self if inplace else self.copy()
for k, v in compat.iteritems(value):
for k, v in value.items():
if k not in result:
continue
obj = result[k]
Expand Down Expand Up @@ -6512,7 +6511,7 @@ def replace(self, to_replace=None, value=None, inplace=False, limit=None,
to_replace = regex
regex = True

items = list(compat.iteritems(to_replace))
items = list(to_replace.items())
keys, values = lzip(*items) or ([], [])

are_mappings = [is_dict_like(v) for v in values]
Expand Down Expand Up @@ -6551,7 +6550,7 @@ def replace(self, to_replace=None, value=None, inplace=False, limit=None,
if is_dict_like(to_replace):
if is_dict_like(value): # {'A' : NA} -> {'A' : 0}
res = self if inplace else self.copy()
for c, src in compat.iteritems(to_replace):
for c, src in to_replace.items():
if c in value and c in self:
# object conversion is handled in
# series.replace which is called recursivelly
Expand All @@ -6563,7 +6562,7 @@ def replace(self, to_replace=None, value=None, inplace=False, limit=None,

# {'A': NA} -> 0
elif not is_list_like(value):
keys = [(k, src) for k, src in compat.iteritems(to_replace)
keys = [(k, src) for k, src in to_replace.items()
if k in self]
keys_len = len(keys) - 1
for i, (k, src) in enumerate(keys):
Expand Down Expand Up @@ -6610,7 +6609,7 @@ def replace(self, to_replace=None, value=None, inplace=False, limit=None,
if is_dict_like(value): # NA -> {'A' : 0, 'B' : -1}
new_data = self._data

for k, v in compat.iteritems(value):
for k, v in value.items():
if k in self:
new_data = new_data.replace(to_replace=to_replace,
value=v, filter=[k],
Expand Down
3 changes: 1 addition & 2 deletions pandas/core/groupby/groupby.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ class providing the base-class of operations.
from pandas._config.config import option_context

from pandas._libs import Timestamp, groupby as libgroupby
import pandas.compat as compat
from pandas.compat import set_function_name
from pandas.compat.numpy import function as nv
from pandas.errors import AbstractMethodError
Expand Down Expand Up @@ -876,7 +875,7 @@ def _python_agg_general(self, func, *args, **kwargs):
if self.grouper._filter_empty_groups:

mask = counts.ravel() > 0
for name, result in compat.iteritems(output):
for name, result in output.items():

# since we are masking, make sure that we have a float object
values = result
Expand Down
7 changes: 3 additions & 4 deletions pandas/core/indexes/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
from pandas._libs.lib import is_datetime_array
from pandas._libs.tslibs import OutOfBoundsDatetime, Timedelta, Timestamp
from pandas._libs.tslibs.timezones import tz_compare
import pandas.compat as compat
from pandas.compat import set_function_name
from pandas.compat.numpy import function as nv
from pandas.util._decorators import Appender, Substitution, cache_readonly
Expand Down Expand Up @@ -535,7 +534,7 @@ def _simple_new(cls, values, name=None, dtype=None, **kwargs):
# we actually set this value too.
result._index_data = values
result.name = name
for k, v in compat.iteritems(kwargs):
for k, v in kwargs.items():
setattr(result, k, v)
return result._reset_identity()

Expand Down Expand Up @@ -1754,7 +1753,7 @@ def __setstate__(self, state):

if isinstance(state, dict):
self._data = state.pop('data')
for k, v in compat.iteritems(state):
for k, v in state.items():
setattr(self, k, v)

elif isinstance(state, tuple):
Expand Down Expand Up @@ -4486,7 +4485,7 @@ def groupby(self, values):
result = values._reverse_indexer()

# map to the label
result = {k: self.take(v) for k, v in compat.iteritems(result)}
result = {k: self.take(v) for k, v in result.items()}

return result

Expand Down
2 changes: 1 addition & 1 deletion pandas/core/indexes/category.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ def _simple_new(cls, values, name=None, dtype=None, **kwargs):
values = cls._create_categorical(values, dtype=dtype)
result._data = values
result.name = name
for k, v in compat.iteritems(kwargs):
for k, v in kwargs.items():
setattr(result, k, v)

result._reset_identity()
Expand Down
2 changes: 1 addition & 1 deletion pandas/core/indexes/range.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ def _simple_new(cls, start, stop=None, step=None, name=None,
result._stop = stop or 0
result._step = step or 1
result.name = name
for k, v in compat.iteritems(kwargs):
for k, v in kwargs.items():
setattr(result, k, v)

result._reset_identity()
Expand Down
2 changes: 1 addition & 1 deletion pandas/core/nanops.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def __call__(self, alt):
@functools.wraps(alt)
def f(values, axis=None, skipna=True, **kwds):
if len(self.kwargs) > 0:
for k, v in compat.iteritems(self.kwargs):
for k, v in self.kwargs.items():
if k not in kwds:
kwds[k] = v
try:
Expand Down
12 changes: 6 additions & 6 deletions pandas/core/panel.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,13 +200,13 @@ def _init_dict(self, data, axes, dtype=None):
if haxis is not None:
haxis = ensure_index(haxis)
data = OrderedDict((k, v)
for k, v in compat.iteritems(data)
for k, v in data.items()
if k in haxis)
else:
keys = com.dict_keys_to_ordered_list(data)
haxis = Index(keys)

for k, v in compat.iteritems(data):
for k, v in data.items():
if isinstance(v, dict):
data[k] = self._constructor_sliced(v)

Expand Down Expand Up @@ -266,8 +266,8 @@ def from_dict(cls, data, intersect=False, orient='items', dtype=None):
orient = orient.lower()
if orient == 'minor':
new_data = defaultdict(OrderedDict)
for col, df in compat.iteritems(data):
for item, s in compat.iteritems(df):
for col, df in data.items():
for item, s in df.items():
new_data[item][col] = s
data = new_data
elif orient != 'items': # pragma: no cover
Expand Down Expand Up @@ -1500,7 +1500,7 @@ def _homogenize_dict(self, frames, intersect=True, dtype=None):
result = OrderedDict()

adj_frames = OrderedDict()
for k, v in compat.iteritems(frames):
for k, v in frames.items():
if isinstance(v, dict):
adj_frames[k] = self._constructor_sliced(v)
else:
Expand All @@ -1512,7 +1512,7 @@ def _homogenize_dict(self, frames, intersect=True, dtype=None):

reindex_dict = {self._AXIS_SLICEMAP[a]: axes_dict[a] for a in axes}
reindex_dict['copy'] = False
for key, frame in compat.iteritems(adj_frames):
for key, frame in adj_frames.items():
if frame is not None:
result[key] = frame.reindex(**reindex_dict)
else:
Expand Down
3 changes: 1 addition & 2 deletions pandas/core/reshape/melt.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
from pandas.core.dtypes.generic import ABCMultiIndex
from pandas.core.dtypes.missing import notna

from pandas import compat
from pandas.core.arrays import Categorical
from pandas.core.frame import _shared_docs
from pandas.core.indexes.base import Index
Expand Down Expand Up @@ -173,7 +172,7 @@ def lreshape(data, groups, dropna=True, label=None):
for c in pivot_cols:
mask &= notna(mdata[c])
if not mask.all():
mdata = {k: v[mask] for k, v in compat.iteritems(mdata)}
mdata = {k: v[mask] for k, v in mdata.items()}

return data._constructor(mdata, columns=id_cols + pivot_cols)

Expand Down
Loading