Skip to content

Commit 116e44a

Browse files
committed
BUG: Tick isAnchored inconsistencies #2150
1 parent 3a8b0f8 commit 116e44a

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

pandas/tseries/offsets.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,6 +1053,8 @@ def apply(self, other):
10531053
def rule_code(self):
10541054
return self._rule_base
10551055

1056+
def isAnchored(self):
1057+
return False
10561058

10571059
def _delta_to_tick(delta):
10581060
if delta.microseconds == 0:
@@ -1088,35 +1090,25 @@ class Day(Tick, CacheableOffset):
10881090
_inc = timedelta(1)
10891091
_rule_base = 'D'
10901092

1091-
def isAnchored(self):
1092-
1093-
return False
1094-
1095-
10961093
class Hour(Tick):
10971094
_inc = timedelta(0, 3600)
10981095
_rule_base = 'H'
10991096

1100-
11011097
class Minute(Tick):
11021098
_inc = timedelta(0, 60)
11031099
_rule_base = 'T'
11041100

1105-
11061101
class Second(Tick):
11071102
_inc = timedelta(0, 1)
11081103
_rule_base = 'S'
11091104

1110-
11111105
class Milli(Tick):
11121106
_rule_base = 'L'
11131107

1114-
11151108
class Micro(Tick):
11161109
_inc = timedelta(microseconds=1)
11171110
_rule_base = 'U'
11181111

1119-
11201112
class Nano(Tick):
11211113
_inc = 1
11221114
_rule_base = 'N'

pandas/tseries/tests/test_offsets.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
from pandas.core.datetools import (
66
bday, BDay, BQuarterEnd, BMonthEnd, BYearEnd, MonthEnd, MonthBegin,
77
BYearBegin, QuarterBegin, BQuarterBegin, BMonthBegin,
8-
DateOffset, Week, YearBegin, YearEnd, Hour, Minute, Second,
8+
DateOffset, Week, YearBegin, YearEnd, Hour, Minute, Second, Day, Micro,
9+
Milli, Nano,
910
WeekOfMonth, format, ole2datetime, QuarterEnd, to_datetime, normalize_date,
1011
get_offset, get_offset_name, inferTimeRule, hasOffsetName,
1112
get_standard_freq)
@@ -1303,6 +1304,8 @@ def test_Hour():
13031304

13041305
assert(Hour(4) != Hour(1))
13051306

1307+
assert not Hour().isAnchored()
1308+
13061309
def test_Minute():
13071310
assertEq(Minute(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 1))
13081311
assertEq(Minute(-1), datetime(2010, 1, 1, 0, 1), datetime(2010, 1, 1))
@@ -1313,6 +1316,8 @@ def test_Minute():
13131316
assert (Minute(3) - Minute(2)) == Minute()
13141317
assert(Minute(5) != Minute())
13151318

1319+
assert not Minute().isAnchored()
1320+
13161321
def test_Second():
13171322
assertEq(Second(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 1))
13181323
assertEq(Second(-1), datetime(2010, 1, 1, 0, 0, 1), datetime(2010, 1, 1))
@@ -1322,6 +1327,14 @@ def test_Second():
13221327
assert (Second(3) + Second(2)) == Second(5)
13231328
assert (Second(3) - Second(2)) == Second()
13241329

1330+
assert not Second().isAnchored()
1331+
1332+
def test_tick_offset():
1333+
assert not Day().isAnchored()
1334+
assert not Milli().isAnchored()
1335+
assert not Micro().isAnchored()
1336+
assert not Nano().isAnchored()
1337+
13251338
def test_hasOffsetName():
13261339
assert hasOffsetName(BDay())
13271340
assert not hasOffsetName(BDay(2))

0 commit comments

Comments
 (0)