@@ -50,7 +50,13 @@ def _new_DatetimeIndex(cls, d):
50
50
# so need to localize
51
51
tz = d .pop ('tz' , None )
52
52
53
- result = cls .__new__ (cls , verify_integrity = False , ** d )
53
+ with warnings .catch_warnings ():
54
+ # we ignore warnings from passing verify_integrity=False
55
+ # TODO: If we knew what was going in to **d, we might be able to
56
+ # go through _simple_new instead
57
+ warnings .simplefilter ("ignore" )
58
+ result = cls .__new__ (cls , verify_integrity = False , ** d )
59
+
54
60
if tz is not None :
55
61
result = result .tz_localize ('UTC' ).tz_convert (tz )
56
62
return result
@@ -220,10 +226,20 @@ def __new__(cls, data=None,
220
226
freq = None , start = None , end = None , periods = None , tz = None ,
221
227
normalize = False , closed = None , ambiguous = 'raise' ,
222
228
dayfirst = False , yearfirst = False , dtype = None ,
223
- copy = False , name = None , verify_integrity = True ):
229
+ copy = False , name = None , verify_integrity = None ):
230
+
231
+ if verify_integrity is not None :
232
+ warnings .warn ("The 'verify_integrity' argument is deprecated, "
233
+ "will be removed in a future version." ,
234
+ FutureWarning , stacklevel = 2 )
235
+ else :
236
+ verify_integrity = True
224
237
225
238
if data is None :
226
- # TODO: Remove this block and associated kwargs; GH#20535
239
+ warnings .warn ("Creating a DatetimeIndex by passing range "
240
+ "endpoints is deprecated. Use "
241
+ "`pandas.date_range` instead." ,
242
+ FutureWarning , stacklevel = 2 )
227
243
result = cls ._generate_range (start , end , periods ,
228
244
freq = freq , tz = tz , normalize = normalize ,
229
245
closed = closed , ambiguous = ambiguous )
@@ -756,8 +772,8 @@ def snap(self, freq='S'):
756
772
snapped [i ] = s
757
773
758
774
# we know it conforms; skip check
759
- return DatetimeIndex (snapped , freq = freq , verify_integrity = False )
760
- # TODO: what about self.name? if so, use shallow_copy?
775
+ return DatetimeIndex . _simple_new (snapped , freq = freq )
776
+ # TODO: what about self.name? tz? if so, use shallow_copy?
761
777
762
778
def unique (self , level = None ):
763
779
if level is not None :
@@ -1135,6 +1151,11 @@ def slice_indexer(self, start=None, end=None, step=None, kind=None):
1135
1151
# --------------------------------------------------------------------
1136
1152
# Wrapping DatetimeArray
1137
1153
1154
+ # Compat for frequency inference, see GH#23789
1155
+ _is_monotonic_increasing = Index .is_monotonic_increasing
1156
+ _is_monotonic_decreasing = Index .is_monotonic_decreasing
1157
+ _is_unique = Index .is_unique
1158
+
1138
1159
_timezone = cache_readonly (DatetimeArray ._timezone .fget )
1139
1160
is_normalized = cache_readonly (DatetimeArray .is_normalized .fget )
1140
1161
_resolution = cache_readonly (DatetimeArray ._resolution .fget )
@@ -1514,9 +1535,13 @@ def date_range(start=None, end=None, periods=None, freq=None, tz=None,
1514
1535
if freq is None and com ._any_none (periods , start , end ):
1515
1536
freq = 'D'
1516
1537
1517
- return DatetimeIndex (start = start , end = end , periods = periods ,
1518
- freq = freq , tz = tz , normalize = normalize , name = name ,
1519
- closed = closed , ** kwargs )
1538
+ result = DatetimeIndex ._generate_range (
1539
+ start = start , end = end , periods = periods ,
1540
+ freq = freq , tz = tz , normalize = normalize ,
1541
+ closed = closed , ** kwargs )
1542
+
1543
+ result .name = name
1544
+ return result
1520
1545
1521
1546
1522
1547
def bdate_range (start = None , end = None , periods = None , freq = 'B' , tz = None ,
@@ -1602,9 +1627,9 @@ def bdate_range(start=None, end=None, periods=None, freq='B', tz=None,
1602
1627
'weekmask are passed, got frequency {freq}' ).format (freq = freq )
1603
1628
raise ValueError (msg )
1604
1629
1605
- return DatetimeIndex (start = start , end = end , periods = periods ,
1606
- freq = freq , tz = tz , normalize = normalize , name = name ,
1607
- closed = closed , ** kwargs )
1630
+ return date_range (start = start , end = end , periods = periods ,
1631
+ freq = freq , tz = tz , normalize = normalize , name = name ,
1632
+ closed = closed , ** kwargs )
1608
1633
1609
1634
1610
1635
def cdate_range (start = None , end = None , periods = None , freq = 'C' , tz = None ,
@@ -1661,9 +1686,10 @@ def cdate_range(start=None, end=None, periods=None, freq='C', tz=None,
1661
1686
holidays = kwargs .pop ('holidays' , [])
1662
1687
weekmask = kwargs .pop ('weekmask' , 'Mon Tue Wed Thu Fri' )
1663
1688
freq = CDay (holidays = holidays , weekmask = weekmask )
1664
- return DatetimeIndex (start = start , end = end , periods = periods , freq = freq ,
1665
- tz = tz , normalize = normalize , name = name ,
1666
- closed = closed , ** kwargs )
1689
+
1690
+ return date_range (start = start , end = end , periods = periods , freq = freq ,
1691
+ tz = tz , normalize = normalize , name = name ,
1692
+ closed = closed , ** kwargs )
1667
1693
1668
1694
1669
1695
def _time_to_micros (time ):
0 commit comments