From 4b1bf4b39edaa1b813846b8d96bf0756052f19fc Mon Sep 17 00:00:00 2001 From: tp Date: Wed, 13 Nov 2019 21:49:27 +0000 Subject: [PATCH 1/2] CLN: remove **kwargs from Index._simple_new --- pandas/core/indexes/base.py | 7 +++---- pandas/core/indexes/datetimes.py | 5 +++++ pandas/core/indexes/range.py | 7 ++----- pandas/core/indexes/timedeltas.py | 5 +++++ 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index 68736935ed36d..20ca176f4a456 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -506,7 +506,7 @@ def asi8(self): return None @classmethod - def _simple_new(cls, values, name=None, dtype=None, **kwargs): + def _simple_new(cls, values, name=None, dtype=None): """ We require that we have a dtype compat for the values. If we are passed a non-dtype compat, then coerce using the constructor. @@ -528,8 +528,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 kwargs.items(): - setattr(result, k, v) + return result._reset_identity() @cache_readonly @@ -2673,7 +2672,7 @@ def difference(self, other, sort=None): except TypeError: pass - return this._shallow_copy(the_diff, name=result_name, freq=None) + return this._shallow_copy(the_diff, name=result_name) def symmetric_difference(self, other, result_name=None, sort=None): """ diff --git a/pandas/core/indexes/datetimes.py b/pandas/core/indexes/datetimes.py index 4a3ee57084a8a..ddd25106e682b 100644 --- a/pandas/core/indexes/datetimes.py +++ b/pandas/core/indexes/datetimes.py @@ -464,6 +464,11 @@ def _convert_for_op(self, value): return _to_M8(value) raise ValueError("Passed item and index have different timezone") + def difference(self, other, sort=None): + new_idx = super().difference(other, sort=sort) + new_idx.freq = None + return new_idx + # -------------------------------------------------------------------- # Rendering Methods diff --git a/pandas/core/indexes/range.py b/pandas/core/indexes/range.py index 962ba8cc00557..0fe0fe5a426ae 100644 --- a/pandas/core/indexes/range.py +++ b/pandas/core/indexes/range.py @@ -146,7 +146,7 @@ def from_range(cls, data, name=None, dtype=None): return cls._simple_new(data, dtype=dtype, name=name) @classmethod - def _simple_new(cls, values, name=None, dtype=None, **kwargs): + def _simple_new(cls, values, name=None, dtype=None): result = object.__new__(cls) # handle passed None, non-integers @@ -154,13 +154,10 @@ def _simple_new(cls, values, name=None, dtype=None, **kwargs): # empty values = range(0, 0, 1) elif not isinstance(values, range): - return Index(values, dtype=dtype, name=name, **kwargs) + return Index(values, dtype=dtype, name=name) result._range = values - result.name = name - for k, v in kwargs.items(): - setattr(result, k, v) result._reset_identity() return result diff --git a/pandas/core/indexes/timedeltas.py b/pandas/core/indexes/timedeltas.py index 8114b4a772f28..318a712e0c2c8 100644 --- a/pandas/core/indexes/timedeltas.py +++ b/pandas/core/indexes/timedeltas.py @@ -406,6 +406,11 @@ def intersection(self, other, sort=False): """ return super().intersection(other, sort=sort) + def difference(self, other, sort=None): + new_idx = super().difference(other, sort=sort) + new_idx.freq = None + return new_idx + def _wrap_joined_index(self, joined, other): name = get_op_result_name(self, other) if ( From 2109eae0b085deb923a15696cc4c483c543152e1 Mon Sep 17 00:00:00 2001 From: tp Date: Thu, 14 Nov 2019 14:38:31 +0000 Subject: [PATCH 2/2] added doc strings --- pandas/core/indexes/datetimes.py | 1 + pandas/core/indexes/timedeltas.py | 1 + 2 files changed, 2 insertions(+) diff --git a/pandas/core/indexes/datetimes.py b/pandas/core/indexes/datetimes.py index ddd25106e682b..e19ebf17a1b98 100644 --- a/pandas/core/indexes/datetimes.py +++ b/pandas/core/indexes/datetimes.py @@ -464,6 +464,7 @@ def _convert_for_op(self, value): return _to_M8(value) raise ValueError("Passed item and index have different timezone") + @Appender(Index.difference.__doc__) def difference(self, other, sort=None): new_idx = super().difference(other, sort=sort) new_idx.freq = None diff --git a/pandas/core/indexes/timedeltas.py b/pandas/core/indexes/timedeltas.py index 318a712e0c2c8..6caac43af163b 100644 --- a/pandas/core/indexes/timedeltas.py +++ b/pandas/core/indexes/timedeltas.py @@ -406,6 +406,7 @@ def intersection(self, other, sort=False): """ return super().intersection(other, sort=sort) + @Appender(Index.difference.__doc__) def difference(self, other, sort=None): new_idx = super().difference(other, sort=sort) new_idx.freq = None