Skip to content

Commit e762e41

Browse files
jsexauerjeffreystarr
authored andcommitted
DEPR: Deprecate DateRange [fix pandas-dev#6816]
1 parent 0781fe5 commit e762e41

23 files changed

+25
-115
lines changed

bench/bench_dense_to_sparse.py

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

33
K = 100
44
N = 100000
5-
rng = DateRange('1/1/2000', periods=N, offset=datetools.Minute())
5+
rng = DatetimeIndex('1/1/2000', periods=N, offset=datetools.Minute())
66

77
rng2 = np.asarray(rng).astype('M8[us]').astype('i8')
88

bench/io_roundtrip.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import la
77
import pandas
88
from pandas.compat import range
9-
from pandas import datetools, DateRange
9+
from pandas import datetools, DatetimeIndex
1010

1111

1212
def timeit(f, iterations):
@@ -23,7 +23,7 @@ def rountrip_archive(N, K=50, iterations=10):
2323
arr = np.random.randn(N, K)
2424
# lar = la.larry(arr)
2525
dma = pandas.DataFrame(arr,
26-
DateRange('1/1/2000', periods=N,
26+
DatetimeIndex('1/1/2000', periods=N,
2727
offset=datetools.Minute()))
2828
dma[201] = 'bar'
2929

doc/source/release.rst

+2
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,8 @@ Deprecations
198198
Prior Version Deprecations/Changes
199199
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
200200

201+
- Remove :class:`DateRange` in favor of :class:`DatetimeIndex` (:issue:`6816`)
202+
201203
- Remove ``column`` keyword from ``DataFrame.sort`` (:issue:`4370`)
202204

203205
Experimental Features

doc/source/v0.14.0.txt

+2
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,8 @@ Prior Version Deprecations/Changes
349349

350350
There are prior version deprecations that are taking effect as of 0.14.0.
351351

352+
- Remove :class:`DateRange` in favor of :class:`DatetimeIndex` (:issue:`6816`)
353+
352354
- Remove ``column`` keyword from ``DataFrame.sort`` (:issue:`4370`)
353355

354356
.. _whatsnew_0140.deprecations:

examples/regressions.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33

44
import numpy as np
55

6-
from pandas.core.api import Series, DataFrame, DateRange
6+
from pandas.core.api import Series, DataFrame, DatetimeIndex
77
from pandas.stats.api import ols
88

99
N = 100
1010

1111
start = datetime(2009, 9, 2)
12-
dateRange = DateRange(start, periods=N)
12+
dateRange = DatetimeIndex(start, periods=N)
1313

1414

1515
def makeDataFrame():

pandas/core/api.py

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
from pandas.tseries.period import Period, PeriodIndex
2929

3030
# legacy
31-
from pandas.core.daterange import DateRange # deprecated
3231
from pandas.core.common import save, load # deprecated, remove in 0.13
3332
import pandas.core.datetools as datetools
3433

pandas/core/daterange.py

-48
This file was deleted.

pandas/core/index.py

-20
Original file line numberDiff line numberDiff line change
@@ -3876,26 +3876,6 @@ def _sanitize_and_check(indexes):
38763876
return indexes, 'array'
38773877

38783878

3879-
def _handle_legacy_indexes(indexes):
3880-
from pandas.core.daterange import DateRange
3881-
from pandas.tseries.index import DatetimeIndex
3882-
3883-
converted = []
3884-
for index in indexes:
3885-
if isinstance(index, DateRange):
3886-
if len(index) == 0:
3887-
kwds = dict(data=[], freq=index.offset, tz=index.tzinfo)
3888-
else:
3889-
kwds = dict(start=index[0], end=index[-1],
3890-
freq=index.offset, tz=index.tzinfo)
3891-
3892-
index = DatetimeIndex(**kwds)
3893-
3894-
converted.append(index)
3895-
3896-
return converted
3897-
3898-
38993879
def _get_consensus_names(indexes):
39003880

39013881
# find the non-none names, need to tupleify to make

pandas/core/internals.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
_NS_DTYPE, _TD_DTYPE, ABCSeries, is_list_like,
1313
ABCSparseSeries, _infer_dtype_from_scalar,
1414
_values_from_object, _is_null_datelike_scalar)
15-
from pandas.core.index import (Index, MultiIndex, _ensure_index,
16-
_handle_legacy_indexes)
15+
from pandas.core.index import Index, MultiIndex, _ensure_index
1716
from pandas.core.indexing import (_maybe_convert_indices, _length_of_indexer)
1817
import pandas.core.common as com
1918
from pandas.sparse.array import _maybe_to_sparse, SparseArray
@@ -2369,7 +2368,6 @@ def __setstate__(self, state):
23692368
ax_arrays, bvalues, bitems = state[:3]
23702369

23712370
self.axes = [_ensure_index(ax) for ax in ax_arrays]
2372-
self.axes = _handle_legacy_indexes(self.axes)
23732371

23742372
blocks = []
23752373
for values, items in zip(bvalues, bitems):

pandas/core/series.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
_ensure_object, SettingWithCopyError)
2727

2828
from pandas.core.index import (Index, MultiIndex, InvalidIndexError,
29-
_ensure_index, _handle_legacy_indexes)
29+
_ensure_index)
3030
from pandas.core.indexing import (
3131
_check_bool_indexer,
3232
_is_index_slice, _maybe_convert_indices)
@@ -426,7 +426,6 @@ def _unpickle_series_compat(self, state):
426426
index, name = own_state[0], None
427427
if len(own_state) > 1:
428428
name = own_state[1]
429-
index = _handle_legacy_indexes([index])[0]
430429

431430
# recreate
432431
self._data = SingleBlockManager(data, index, fastpath=True)

pandas/tseries/tests/test_timeseries.py

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
isnull, date_range, Timestamp, Period, DatetimeIndex,
1616
Int64Index, to_datetime, bdate_range, Float64Index)
1717

18-
from pandas.core.daterange import DateRange
1918
import pandas.core.datetools as datetools
2019
import pandas.tseries.offsets as offsets
2120
import pandas.tseries.tools as tools

pandas/tseries/tests/test_timeseries_legacy.py

-20
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
isnull, date_range, Timestamp, DatetimeIndex,
1414
Int64Index, to_datetime, bdate_range)
1515

16-
from pandas.core.daterange import DateRange
1716
import pandas.core.datetools as datetools
1817
import pandas.tseries.offsets as offsets
1918
import pandas.tseries.frequencies as fmod
@@ -255,25 +254,6 @@ def test_rule_aliases(self):
255254
rule = datetools.to_offset('10us')
256255
self.assertEqual(rule, datetools.Micro(10))
257256

258-
259-
class TestLegacyCompat(unittest.TestCase):
260-
261-
def setUp(self):
262-
# suppress deprecation warnings
263-
sys.stderr = StringIO()
264-
265-
def test_time_rule(self):
266-
result = DateRange('1/1/2000', '1/30/2000', time_rule='WEEKDAY')
267-
result2 = DateRange('1/1/2000', '1/30/2000', timeRule='WEEKDAY')
268-
expected = date_range('1/1/2000', '1/30/2000', freq='B')
269-
270-
self.assert_(result.equals(expected))
271-
self.assert_(result2.equals(expected))
272-
273-
def tearDown(self):
274-
sys.stderr = sys.__stderr__
275-
276-
277257
if __name__ == '__main__':
278258
nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],
279259
exit=False)

pandas/tseries/tests/test_timezones.py

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
from pandas import DatetimeIndex, Int64Index, to_datetime, NaT
1414

15-
from pandas.core.daterange import DateRange
1615
import pandas.core.datetools as datetools
1716
import pandas.tseries.offsets as offsets
1817
from pandas.tseries.index import bdate_range, date_range

scripts/bench_join.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
a = np.arange(n, dtype=np.int64)
1313
b = np.arange(n * pct_overlap, n * (1 + pct_overlap), dtype=np.int64)
1414

15-
dr1 = DateRange('1/1/2000', periods=n, offset=datetools.Minute())
16-
dr2 = DateRange(
15+
dr1 = DatetimeIndex('1/1/2000', periods=n, offset=datetools.Minute())
16+
dr2 = DatetimeIndex(
1717
dr1[int(pct_overlap * n)], periods=n, offset=datetools.Minute(2))
1818

1919
aobj = a.astype(object)

scripts/groupby_speed.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
from __future__ import print_function
22
from pandas import *
33

4-
rng = DateRange('1/3/2011', '11/30/2011', offset=datetools.Minute())
4+
rng = DatetimeIndex('1/3/2011', '11/30/2011', offset=datetools.Minute())
55

66
df = DataFrame(np.random.randn(len(rng), 5), index=rng,
77
columns=list('OHLCV'))
88

9-
rng5 = DateRange('1/3/2011', '11/30/2011', offset=datetools.Minute(5))
9+
rng5 = DatetimeIndex('1/3/2011', '11/30/2011', offset=datetools.Minute(5))
1010
gp = rng5.asof
1111
grouped = df.groupby(gp)
1212

scripts/hdfstore_panel_perf.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
panel = Panel(np.random.randn(i, j, k),
88
items=[rands(10) for _ in range(i)],
9-
major_axis=DateRange('1/1/2000', periods=j,
9+
major_axis=DatetimeIndex('1/1/2000', periods=j,
1010
offset=datetools.Minute()),
1111
minor_axis=[rands(10) for _ in range(k)])
1212

scripts/preepoch_test.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ def panda_test():
77
# generate some data
88
data = np.random.rand(50, 5)
99
# generate some dates
10-
dates = DateRange('1/1/1969', periods=50)
10+
dates = DatetimeIndex('1/1/1969', periods=50)
1111
# generate column headings
1212
cols = ['A', 'B', 'C', 'D', 'E']
1313

vb_suite/index_object.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
# intersection, union
1212

1313
setup = common_setup + """
14-
rng = DateRange('1/1/2000', periods=10000, offset=datetools.Minute())
14+
rng = DatetimeIndex('1/1/2000', periods=10000, offset=datetools.Minute())
1515
if rng.dtype == object:
1616
rng = rng.view(Index)
1717
else:

vb_suite/panel_ctor.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
setup_same_index = common_setup + """
1313
# create 100 dataframes with the same index
14-
dr = np.asarray(DateRange(datetime(1990,1,1), datetime(2012,1,1)))
14+
dr = np.asarray(DatetimeIndex(datetime(1990,1,1), datetime(2012,1,1)))
1515
data_frames = {}
1616
for x in xrange(100):
1717
df = DataFrame({"a": [0]*len(dr), "b": [1]*len(dr),
@@ -27,7 +27,7 @@
2727
setup_equiv_indexes = common_setup + """
2828
data_frames = {}
2929
for x in xrange(100):
30-
dr = np.asarray(DateRange(datetime(1990,1,1), datetime(2012,1,1)))
30+
dr = np.asarray(DatetimeIndex(datetime(1990,1,1), datetime(2012,1,1)))
3131
df = DataFrame({"a": [0]*len(dr), "b": [1]*len(dr),
3232
"c": [2]*len(dr)}, index=dr)
3333
data_frames[x] = df

vb_suite/plotting.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from pandas import date_range
88
except ImportError:
99
def date_range(start=None, end=None, periods=None, freq=None):
10-
return DateRange(start, end, periods=periods, offset=freq)
10+
return DatetimeIndex(start, end, periods=periods, offset=freq)
1111
1212
"""
1313

vb_suite/reindex.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
#----------------------------------------------------------------------
1919

2020
setup = common_setup + """
21-
rng = DateRange('1/1/1970', periods=10000, offset=datetools.Minute())
21+
rng = DatetimeIndex('1/1/1970', periods=10000, offset=datetools.Minute())
2222
df = DataFrame(np.random.rand(10000, 10), index=rng,
2323
columns=range(10))
2424
df['foo'] = 'bar'

vb_suite/replace.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
try:
1010
rng = date_range('1/1/2000', periods=N, freq='min')
1111
except NameError:
12-
rng = DateRange('1/1/2000', periods=N, offset=datetools.Minute())
12+
rng = DatetimeIndex('1/1/2000', periods=N, offset=datetools.Minute())
1313
date_range = DateRange
1414
1515
ts = Series(np.random.randn(N), index=rng)

vb_suite/timeseries.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
try:
99
rng = date_range('1/1/2000', periods=N, freq='min')
1010
except NameError:
11-
rng = DateRange('1/1/2000', periods=N, offset=datetools.Minute())
11+
rng = DatetimeIndex('1/1/2000', periods=N, offset=datetools.Minute())
1212
def date_range(start=None, end=None, periods=None, freq=None):
13-
return DateRange(start, end, periods=periods, offset=freq)
13+
return DatetimeIndex(start, end, periods=periods, offset=freq)
1414
1515
if hasattr(Series, 'convert'):
1616
Series.resample = Series.convert

0 commit comments

Comments
 (0)