Skip to content

Commit 83d8baa

Browse files
TomAugspurgerPingviinituutti
authored andcommitted
Rename DatetimeArray and TimedelaArray (pandas-dev#24601)
Rename DatetimeArray and TimedeltaArray
1 parent 070a664 commit 83d8baa

30 files changed

+67
-76
lines changed

pandas/arrays/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
from pandas.core.arrays import (
77
IntervalArray, PeriodArray, Categorical, SparseArray, IntegerArray,
88
PandasArray,
9-
DatetimeArrayMixin as DatetimeArray,
10-
TimedeltaArrayMixin as TimedeltaArray,
9+
DatetimeArray,
10+
TimedeltaArray,
1111
)
1212

1313

pandas/core/arrays/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
ExtensionOpsMixin,
44
ExtensionScalarOpsMixin)
55
from .categorical import Categorical # noqa
6-
from .datetimes import DatetimeArrayMixin # noqa
6+
from .datetimes import DatetimeArray # noqa
77
from .interval import IntervalArray # noqa
88
from .period import PeriodArray, period_array # noqa
9-
from .timedeltas import TimedeltaArrayMixin # noqa
9+
from .timedeltas import TimedeltaArray # noqa
1010
from .integer import ( # noqa
1111
IntegerArray, integer_array)
1212
from .sparse import SparseArray # noqa

pandas/core/arrays/array_.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,8 @@ def array(data, # type: Sequence[object]
184184
"""
185185
from pandas.core.arrays import (
186186
period_array, ExtensionArray, IntervalArray, PandasArray,
187-
DatetimeArrayMixin,
188-
TimedeltaArrayMixin,
187+
DatetimeArray,
188+
TimedeltaArray,
189189
)
190190
from pandas.core.internals.arrays import extract_array
191191

@@ -228,14 +228,14 @@ def array(data, # type: Sequence[object]
228228
elif inferred_dtype.startswith('datetime'):
229229
# datetime, datetime64
230230
try:
231-
return DatetimeArrayMixin._from_sequence(data, copy=copy)
231+
return DatetimeArray._from_sequence(data, copy=copy)
232232
except ValueError:
233233
# Mixture of timezones, fall back to PandasArray
234234
pass
235235

236236
elif inferred_dtype.startswith('timedelta'):
237237
# timedelta, timedelta64
238-
return TimedeltaArrayMixin._from_sequence(data, copy=copy)
238+
return TimedeltaArray._from_sequence(data, copy=copy)
239239

240240
# TODO(BooleanArray): handle this type
241241

pandas/core/arrays/datetimelike.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1228,9 +1228,9 @@ def __add__(self, other):
12281228
return NotImplemented
12291229

12301230
if is_timedelta64_dtype(result) and isinstance(result, np.ndarray):
1231-
from pandas.core.arrays import TimedeltaArrayMixin
1231+
from pandas.core.arrays import TimedeltaArray
12321232
# TODO: infer freq?
1233-
return TimedeltaArrayMixin(result)
1233+
return TimedeltaArray(result)
12341234
return result
12351235

12361236
def __radd__(self, other):
@@ -1295,9 +1295,9 @@ def __sub__(self, other):
12951295
return NotImplemented
12961296

12971297
if is_timedelta64_dtype(result) and isinstance(result, np.ndarray):
1298-
from pandas.core.arrays import TimedeltaArrayMixin
1298+
from pandas.core.arrays import TimedeltaArray
12991299
# TODO: infer freq?
1300-
return TimedeltaArrayMixin(result)
1300+
return TimedeltaArray(result)
13011301
return result
13021302

13031303
def __rsub__(self, other):
@@ -1306,8 +1306,8 @@ def __rsub__(self, other):
13061306
# we need to wrap in DatetimeArray/Index and flip the operation
13071307
if not isinstance(other, DatetimeLikeArrayMixin):
13081308
# Avoid down-casting DatetimeIndex
1309-
from pandas.core.arrays import DatetimeArrayMixin
1310-
other = DatetimeArrayMixin(other)
1309+
from pandas.core.arrays import DatetimeArray
1310+
other = DatetimeArray(other)
13111311
return other - self
13121312
elif (is_datetime64_any_dtype(self) and hasattr(other, 'dtype') and
13131313
not is_datetime64_any_dtype(other)):

pandas/core/arrays/datetimes.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def wrapper(self, other):
127127
except ValueError:
128128
other = np.array(other, dtype=np.object_)
129129
elif not isinstance(other, (np.ndarray, ABCIndexClass, ABCSeries,
130-
DatetimeArrayMixin)):
130+
DatetimeArray)):
131131
# Following Timestamp convention, __eq__ is all-False
132132
# and __ne__ is all True, others raise TypeError.
133133
return ops.invalid_comparison(self, other, op)
@@ -176,9 +176,9 @@ def wrapper(self, other):
176176
return compat.set_function_name(wrapper, opname, cls)
177177

178178

179-
class DatetimeArrayMixin(dtl.DatetimeLikeArrayMixin,
180-
dtl.TimelikeOps,
181-
dtl.DatelikeOps):
179+
class DatetimeArray(dtl.DatetimeLikeArrayMixin,
180+
dtl.TimelikeOps,
181+
dtl.DatelikeOps):
182182
"""
183183
Pandas ExtensionArray for tz-naive or tz-aware datetime data.
184184
@@ -718,7 +718,7 @@ def _add_delta(self, delta):
718718
-------
719719
result : DatetimeArray
720720
"""
721-
new_values = super(DatetimeArrayMixin, self)._add_delta(delta)
721+
new_values = super(DatetimeArray, self)._add_delta(delta)
722722
return type(self)._from_sequence(new_values, tz=self.tz, freq='infer')
723723

724724
# -----------------------------------------------------------------
@@ -1135,10 +1135,10 @@ def to_perioddelta(self, freq):
11351135
TimedeltaArray/Index
11361136
"""
11371137
# TODO: consider privatizing (discussion in GH#23113)
1138-
from pandas.core.arrays.timedeltas import TimedeltaArrayMixin
1138+
from pandas.core.arrays.timedeltas import TimedeltaArray
11391139
i8delta = self.asi8 - self.to_period(freq).to_timestamp().asi8
11401140
m8delta = i8delta.view('m8[ns]')
1141-
return TimedeltaArrayMixin(m8delta)
1141+
return TimedeltaArray(m8delta)
11421142

11431143
# -----------------------------------------------------------------
11441144
# Properties - Vectorized Timestamp Properties/Methods
@@ -1610,7 +1610,7 @@ def to_julian_date(self):
16101610
) / 24.0)
16111611

16121612

1613-
DatetimeArrayMixin._add_comparison_ops()
1613+
DatetimeArray._add_comparison_ops()
16141614

16151615

16161616
# -------------------------------------------------------------------

pandas/core/arrays/period.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ def to_timestamp(self, freq=None, how='start'):
327327
-------
328328
DatetimeArray/Index
329329
"""
330-
from pandas.core.arrays import DatetimeArrayMixin
330+
from pandas.core.arrays import DatetimeArray
331331

332332
how = libperiod._validate_end_alias(how)
333333

@@ -351,7 +351,7 @@ def to_timestamp(self, freq=None, how='start'):
351351
new_data = self.asfreq(freq, how=how)
352352

353353
new_data = libperiod.periodarr_to_dt64arr(new_data.asi8, base)
354-
return DatetimeArrayMixin._from_sequence(new_data, freq='infer')
354+
return DatetimeArray._from_sequence(new_data, freq='infer')
355355

356356
# --------------------------------------------------------------------
357357
# Array-like / EA-Interface Methods

pandas/core/arrays/timedeltas.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def wrapper(self, other):
102102
return compat.set_function_name(wrapper, opname, cls)
103103

104104

105-
class TimedeltaArrayMixin(dtl.DatetimeLikeArrayMixin, dtl.TimelikeOps):
105+
class TimedeltaArray(dtl.DatetimeLikeArrayMixin, dtl.TimelikeOps):
106106
_typ = "timedeltaarray"
107107
_scalar_type = Timedelta
108108
__array_priority__ = 1000
@@ -348,7 +348,7 @@ def _add_delta(self, delta):
348348
-------
349349
result : TimedeltaArray
350350
"""
351-
new_values = super(TimedeltaArrayMixin, self)._add_delta(delta)
351+
new_values = super(TimedeltaArray, self)._add_delta(delta)
352352
return type(self)._from_sequence(new_values, freq='infer')
353353

354354
def _add_datetime_arraylike(self, other):
@@ -357,38 +357,38 @@ def _add_datetime_arraylike(self, other):
357357
"""
358358
if isinstance(other, np.ndarray):
359359
# At this point we have already checked that dtype is datetime64
360-
from pandas.core.arrays import DatetimeArrayMixin
361-
other = DatetimeArrayMixin(other)
360+
from pandas.core.arrays import DatetimeArray
361+
other = DatetimeArray(other)
362362

363363
# defer to implementation in DatetimeArray
364364
return other + self
365365

366366
def _add_datetimelike_scalar(self, other):
367367
# adding a timedeltaindex to a datetimelike
368-
from pandas.core.arrays import DatetimeArrayMixin
368+
from pandas.core.arrays import DatetimeArray
369369

370370
assert other is not NaT
371371
other = Timestamp(other)
372372
if other is NaT:
373373
# In this case we specifically interpret NaT as a datetime, not
374374
# the timedelta interpretation we would get by returning self + NaT
375375
result = self.asi8.view('m8[ms]') + NaT.to_datetime64()
376-
return DatetimeArrayMixin(result)
376+
return DatetimeArray(result)
377377

378378
i8 = self.asi8
379379
result = checked_add_with_arr(i8, other.value,
380380
arr_mask=self._isnan)
381381
result = self._maybe_mask_results(result)
382382
dtype = DatetimeTZDtype(tz=other.tz) if other.tz else _NS_DTYPE
383-
return DatetimeArrayMixin(result, dtype=dtype, freq=self.freq)
383+
return DatetimeArray(result, dtype=dtype, freq=self.freq)
384384

385385
def _addsub_offset_array(self, other, op):
386386
# Add or subtract Array-like of DateOffset objects
387387
try:
388388
# TimedeltaIndex can only operate with a subset of DateOffset
389389
# subclasses. Incompatible classes will raise AttributeError,
390390
# which we re-raise as TypeError
391-
return super(TimedeltaArrayMixin, self)._addsub_offset_array(
391+
return super(TimedeltaArray, self)._addsub_offset_array(
392392
other, op
393393
)
394394
except AttributeError:
@@ -813,7 +813,7 @@ def f(x):
813813
return result
814814

815815

816-
TimedeltaArrayMixin._add_comparison_ops()
816+
TimedeltaArray._add_comparison_ops()
817817

818818

819819
# ---------------------------------------------------------------------
@@ -860,7 +860,7 @@ def sequence_to_td64ns(data, copy=False, unit="ns", errors="raise"):
860860
data = np.array(data, copy=False)
861861
elif isinstance(data, ABCSeries):
862862
data = data._values
863-
elif isinstance(data, (ABCTimedeltaIndex, TimedeltaArrayMixin)):
863+
elif isinstance(data, (ABCTimedeltaIndex, TimedeltaArray)):
864864
inferred_freq = data.freq
865865
data = data._data
866866

pandas/core/dtypes/dtypes.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -572,8 +572,8 @@ def construct_array_type(cls):
572572
-------
573573
type
574574
"""
575-
from pandas.core.arrays import DatetimeArrayMixin
576-
return DatetimeArrayMixin
575+
from pandas.core.arrays import DatetimeArray
576+
return DatetimeArray
577577

578578
@classmethod
579579
def construct_from_string(cls, string):

pandas/core/indexes/accessors.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@
1111

1212
from pandas.core.accessor import PandasDelegate, delegate_names
1313
from pandas.core.algorithms import take_1d
14-
from pandas.core.arrays import (
15-
DatetimeArrayMixin as DatetimeArray, PeriodArray,
16-
TimedeltaArrayMixin as TimedeltaArray)
14+
from pandas.core.arrays import DatetimeArray, PeriodArray, TimedeltaArray
1715
from pandas.core.base import NoNewAttributesMixin, PandasObject
1816
from pandas.core.indexes.datetimes import DatetimeIndex
1917
from pandas.core.indexes.timedeltas import TimedeltaIndex

pandas/core/indexes/datetimes.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
from pandas.core.accessor import delegate_names
2424
from pandas.core.arrays.datetimes import (
25-
DatetimeArrayMixin as DatetimeArray, _to_M8, validate_tz_from_dtype)
25+
DatetimeArray, _to_M8, validate_tz_from_dtype)
2626
from pandas.core.base import _shared_docs
2727
import pandas.core.common as com
2828
from pandas.core.indexes.base import Index

pandas/core/indexes/timedeltas.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717

1818
from pandas.core.accessor import delegate_names
1919
from pandas.core.arrays import datetimelike as dtl
20-
from pandas.core.arrays.timedeltas import (
21-
TimedeltaArrayMixin as TimedeltaArray, _is_convertible_to_td)
20+
from pandas.core.arrays.timedeltas import TimedeltaArray, _is_convertible_to_td
2221
from pandas.core.base import _shared_docs
2322
import pandas.core.common as com
2423
from pandas.core.indexes.base import Index, _index_shared_docs

pandas/core/internals/blocks.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@
3535

3636
import pandas.core.algorithms as algos
3737
from pandas.core.arrays import (
38-
Categorical, DatetimeArrayMixin as DatetimeArray, ExtensionArray,
39-
TimedeltaArrayMixin as TimedeltaArray)
38+
Categorical, DatetimeArray, ExtensionArray, TimedeltaArray)
4039
from pandas.core.base import PandasObject
4140
import pandas.core.common as com
4241
from pandas.core.indexes.datetimes import DatetimeIndex

pandas/core/series.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1586,7 +1586,7 @@ def unique(self):
15861586
15871587
>>> pd.Series([pd.Timestamp('2016-01-01', tz='US/Eastern')
15881588
... for _ in range(3)]).unique()
1589-
<DatetimeArrayMixin>
1589+
<DatetimeArray>
15901590
['2016-01-01 00:00:00-05:00']
15911591
Length: 1, dtype: datetime64[ns, US/Eastern]
15921592

pandas/core/tools/datetimes.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ def _convert_listlike_datetimes(arg, box, format, name=None, tz=None,
171171
- ndarray of Timestamps if box=False
172172
"""
173173
from pandas import DatetimeIndex
174-
from pandas.core.arrays import DatetimeArrayMixin as DatetimeArray
174+
from pandas.core.arrays import DatetimeArray
175175
from pandas.core.arrays.datetimes import (
176176
maybe_convert_dtype, objects_to_datetime64ns)
177177

pandas/tests/arithmetic/test_datetime64.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1981,15 +1981,15 @@ def test_dti_sub_tdi(self, tz_naive_fixture):
19811981
result = dti - tdi
19821982
tm.assert_index_equal(result, expected)
19831983

1984-
msg = 'cannot subtract .*TimedeltaArrayMixin'
1984+
msg = 'cannot subtract .*TimedeltaArray'
19851985
with pytest.raises(TypeError, match=msg):
19861986
tdi - dti
19871987

19881988
# sub with timedelta64 array
19891989
result = dti - tdi.values
19901990
tm.assert_index_equal(result, expected)
19911991

1992-
msg = 'cannot subtract DatetimeArrayMixin from'
1992+
msg = 'cannot subtract DatetimeArray from'
19931993
with pytest.raises(TypeError, match=msg):
19941994
tdi.values - dti
19951995

@@ -2005,7 +2005,7 @@ def test_dti_isub_tdi(self, tz_naive_fixture):
20052005
result -= tdi
20062006
tm.assert_index_equal(result, expected)
20072007

2008-
msg = 'cannot subtract .* from a TimedeltaArrayMixin'
2008+
msg = 'cannot subtract .* from a TimedeltaArray'
20092009
with pytest.raises(TypeError, match=msg):
20102010
tdi -= dti
20112011

@@ -2016,7 +2016,7 @@ def test_dti_isub_tdi(self, tz_naive_fixture):
20162016

20172017
msg = '|'.join(['cannot perform __neg__ with this index type:',
20182018
'ufunc subtract cannot use operands with types',
2019-
'cannot subtract DatetimeArrayMixin from'])
2019+
'cannot subtract DatetimeArray from'])
20202020
with pytest.raises(TypeError, match=msg):
20212021
tdi.values -= dti
20222022

@@ -2036,9 +2036,9 @@ def test_dti_isub_tdi(self, tz_naive_fixture):
20362036
def test_add_datetimelike_and_dti(self, addend, tz):
20372037
# GH#9631
20382038
dti = DatetimeIndex(['2011-01-01', '2011-01-02']).tz_localize(tz)
2039-
msg = ('cannot add DatetimeArrayMixin and {0}'
2039+
msg = ('cannot add DatetimeArray and {0}'
20402040
.format(type(addend).__name__)).replace('DatetimeIndex',
2041-
'DatetimeArrayMixin')
2041+
'DatetimeArray')
20422042
with pytest.raises(TypeError, match=msg):
20432043
dti + addend
20442044
with pytest.raises(TypeError, match=msg):

pandas/tests/arrays/test_datetimelike.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
import pandas.compat as compat
66

77
import pandas as pd
8-
from pandas.core.arrays import (
9-
DatetimeArrayMixin as DatetimeArray, PeriodArray,
10-
TimedeltaArrayMixin as TimedeltaArray)
8+
from pandas.core.arrays import DatetimeArray, PeriodArray, TimedeltaArray
119
import pandas.util.testing as tm
1210

1311

pandas/tests/arrays/test_datetimes.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from pandas.core.dtypes.dtypes import DatetimeTZDtype
1111

1212
import pandas as pd
13-
from pandas.core.arrays import DatetimeArrayMixin as DatetimeArray
13+
from pandas.core.arrays import DatetimeArray
1414
from pandas.core.arrays.datetimes import sequence_to_dt64ns
1515
import pandas.util.testing as tm
1616

pandas/tests/arrays/test_timedeltas.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import pytest
55

66
import pandas as pd
7-
from pandas.core.arrays import TimedeltaArrayMixin as TimedeltaArray
7+
from pandas.core.arrays import TimedeltaArray
88
import pandas.util.testing as tm
99

1010

pandas/tests/dtypes/test_generic.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ class TestABCClasses(object):
2222
sparse_series = pd.Series([1, 2, 3]).to_sparse()
2323
sparse_array = pd.SparseArray(np.random.randn(10))
2424
sparse_frame = pd.SparseDataFrame({'a': [1, -1, None]})
25-
datetime_array = pd.core.arrays.DatetimeArrayMixin(datetime_index)
26-
timedelta_array = pd.core.arrays.TimedeltaArrayMixin(timedelta_index)
25+
datetime_array = pd.core.arrays.DatetimeArray(datetime_index)
26+
timedelta_array = pd.core.arrays.TimedeltaArray(timedelta_index)
2727

2828
def test_abc_types(self):
2929
assert isinstance(pd.Index(['a', 'b', 'c']), gt.ABCIndex)

0 commit comments

Comments
 (0)