Skip to content

Commit 02158e6

Browse files
committed
CLN: clean up tslib.pyx a bit
1 parent d24bd9f commit 02158e6

File tree

2 files changed

+37
-39
lines changed

2 files changed

+37
-39
lines changed

pandas/tseries/tests/test_offsets.py

+22-24
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313
DateOffset, Week, YearBegin, YearEnd, Hour, Minute, Second, Day, Micro,
1414
Milli, Nano,
1515
WeekOfMonth, format, ole2datetime, QuarterEnd, to_datetime, normalize_date,
16-
get_offset, get_offset_name, inferTimeRule, hasOffsetName,
17-
get_standard_freq)
16+
get_offset, get_offset_name, hasOffsetName, get_standard_freq)
1817

1918
from pandas.tseries.frequencies import _offset_map
2019
from pandas.tseries.index import _to_m8, DatetimeIndex, _daterange_cache
@@ -532,7 +531,7 @@ def test_repr(self):
532531
self.assertEqual(repr(Week(weekday=0)), "<Week: weekday=0>")
533532
self.assertEqual(repr(Week(n=-1, weekday=0)), "<-1 * Week: weekday=0>")
534533
self.assertEqual(repr(Week(n=-2, weekday=0)), "<-2 * Weeks: weekday=0>")
535-
534+
536535
def test_corner(self):
537536
self.assertRaises(ValueError, Week, weekday=7)
538537
assertRaisesRegexp(ValueError, "Day must be", Week, weekday=-1)
@@ -905,7 +904,7 @@ def test_onOffset(self):
905904

906905

907906
class TestBQuarterBegin(unittest.TestCase):
908-
907+
909908
def test_repr(self):
910909
self.assertEqual(repr(BQuarterBegin()),"<BusinessQuarterBegin: startingMonth=3>")
911910
self.assertEqual(repr(BQuarterBegin(startingMonth=3)), "<BusinessQuarterBegin: startingMonth=3>")
@@ -1000,7 +999,7 @@ def test_repr(self):
1000999
self.assertEqual(repr(BQuarterEnd()),"<BusinessQuarterEnd: startingMonth=3>")
10011000
self.assertEqual(repr(BQuarterEnd(startingMonth=3)), "<BusinessQuarterEnd: startingMonth=3>")
10021001
self.assertEqual(repr(BQuarterEnd(startingMonth=1)), "<BusinessQuarterEnd: startingMonth=1>")
1003-
1002+
10041003
def test_isAnchored(self):
10051004
self.assert_(BQuarterEnd(startingMonth=1).isAnchored())
10061005
self.assert_(BQuarterEnd().isAnchored())
@@ -1107,7 +1106,7 @@ def test_repr(self):
11071106
self.assertEqual(repr(QuarterBegin()), "<QuarterBegin: startingMonth=3>")
11081107
self.assertEqual(repr(QuarterBegin(startingMonth=3)), "<QuarterBegin: startingMonth=3>")
11091108
self.assertEqual(repr(QuarterBegin(startingMonth=1)),"<QuarterBegin: startingMonth=1>")
1110-
1109+
11111110
def test_isAnchored(self):
11121111
self.assert_(QuarterBegin(startingMonth=1).isAnchored())
11131112
self.assert_(QuarterBegin().isAnchored())
@@ -1181,7 +1180,7 @@ def test_repr(self):
11811180
self.assertEqual(repr(QuarterEnd()), "<QuarterEnd: startingMonth=3>")
11821181
self.assertEqual(repr(QuarterEnd(startingMonth=3)), "<QuarterEnd: startingMonth=3>")
11831182
self.assertEqual(repr(QuarterEnd(startingMonth=1)), "<QuarterEnd: startingMonth=1>")
1184-
1183+
11851184
def test_isAnchored(self):
11861185
self.assert_(QuarterEnd(startingMonth=1).isAnchored())
11871186
self.assert_(QuarterEnd().isAnchored())
@@ -1631,6 +1630,7 @@ def assertEq(offset, base, expected):
16311630
"\nAt Date: %s" %
16321631
(expected, actual, offset, base))
16331632

1633+
16341634
def test_Hour():
16351635
assertEq(Hour(), datetime(2010, 1, 1), datetime(2010, 1, 1, 1))
16361636
assertEq(Hour(-1), datetime(2010, 1, 1, 1), datetime(2010, 1, 1))
@@ -1710,7 +1710,6 @@ def test_NanosecondGeneric():
17101710

17111711
def test_Nanosecond():
17121712
if _np_version_under1p7:
1713-
import nose
17141713
raise nose.SkipTest('numpy >= 1.7 required')
17151714

17161715
timestamp = Timestamp(datetime(2010, 1, 1))
@@ -1815,8 +1814,6 @@ def setUp(self):
18151814
pass
18161815

18171816
def test_alias_equality(self):
1818-
from pandas.tseries.frequencies import _offset_map
1819-
18201817
for k, v in compat.iteritems(_offset_map):
18211818
if v is None:
18221819
continue
@@ -1872,7 +1869,8 @@ def test_freq_offsets():
18721869

18731870
off = BDay(1, offset=timedelta(0, -1800))
18741871
assert(off.freqstr == 'B-30Min')
1875-
1872+
1873+
18761874
def get_all_subclasses(cls):
18771875
ret = set()
18781876
this_subclasses = cls.__subclasses__()
@@ -1881,40 +1879,41 @@ def get_all_subclasses(cls):
18811879
ret | get_all_subclasses(this_subclass)
18821880
return ret
18831881

1884-
class TestCaching(unittest.TestCase):
1882+
1883+
class TestCaching(unittest.TestCase):
18851884
def test_should_cache_month_end(self):
18861885
self.assertTrue(MonthEnd()._should_cache())
1887-
1886+
18881887
def test_should_cache_bmonth_end(self):
18891888
self.assertTrue(BusinessMonthEnd()._should_cache())
1890-
1889+
18911890
def test_should_cache_week_month(self):
18921891
self.assertTrue(WeekOfMonth(weekday=1, week=2)._should_cache())
1893-
1892+
18941893
def test_all_cacheableoffsets(self):
18951894
for subclass in get_all_subclasses(CacheableOffset):
18961895
if subclass in [WeekOfMonth]:
18971896
continue
18981897
self.run_X_index_creation(subclass)
1899-
1898+
19001899
def setUp(self):
19011900
_daterange_cache.clear()
1902-
1901+
19031902
def run_X_index_creation(self, cls):
19041903
inst1 = cls()
19051904
if not inst1.isAnchored():
19061905
self.assertFalse(inst1._should_cache(), cls)
19071906
return
1908-
1907+
19091908
self.assertTrue(inst1._should_cache(), cls)
1910-
1909+
19111910
DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,31), freq=inst1, normalize=True)
19121911
self.assertTrue(cls() in _daterange_cache, cls)
1913-
1912+
19141913
def test_month_end_index_creation(self):
19151914
DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,31), freq=MonthEnd(), normalize=True)
19161915
self.assertTrue(MonthEnd() in _daterange_cache)
1917-
1916+
19181917
def test_bmonth_end_index_creation(self):
19191918
DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,29), freq=BusinessMonthEnd(), normalize=True)
19201919
self.assertTrue(BusinessMonthEnd() in _daterange_cache)
@@ -1924,9 +1923,8 @@ def test_week_of_month_index_creation(self):
19241923
DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,29), freq=inst1, normalize=True)
19251924
inst2 = WeekOfMonth(weekday=1, week=2)
19261925
self.assertTrue(inst2 in _daterange_cache)
1927-
1928-
1926+
1927+
19291928
if __name__ == '__main__':
1930-
import nose
19311929
nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],
19321930
exit=False)

pandas/tslib.pyx

+15-15
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ class NaTType(_NaT):
336336

337337
def __hash__(self):
338338
return iNaT
339-
339+
340340
def weekday(self):
341341
return -1
342342

@@ -573,22 +573,22 @@ cdef class _Timestamp(datetime):
573573
dts.us, ts.tzinfo)
574574

575575
def __add__(self, other):
576+
cdef Py_ssize_t other_int
577+
576578
if is_timedelta64_object(other):
577-
return Timestamp(self.value + other.astype('timedelta64[ns]').item(), tz=self.tzinfo)
578-
579+
other_int = other.astype('timedelta64[ns]').astype(int)
580+
return Timestamp(self.value + other_int, tz=self.tzinfo)
581+
579582
if is_integer_object(other):
580583
if self.offset is None:
581-
return Timestamp(self.value + other, tz=self.tzinfo)
582-
msg = ("Cannot add integral value to Timestamp "
583-
"without offset.")
584-
raise ValueError(msg)
585-
else:
586-
return Timestamp((self.offset.__mul__(other)).apply(self))
587-
584+
raise ValueError("Cannot add integral value to Timestamp "
585+
"without offset.")
586+
return Timestamp(self.offset.__mul__(other).apply(self))
587+
588588
if isinstance(other, timedelta) or hasattr(other, 'delta'):
589589
nanos = _delta_to_nanoseconds(other)
590590
return Timestamp(self.value + nanos, tz=self.tzinfo)
591-
591+
592592
result = datetime.__add__(self, other)
593593
if isinstance(result, datetime):
594594
result = Timestamp(result)
@@ -597,9 +597,9 @@ cdef class _Timestamp(datetime):
597597

598598
def __sub__(self, other):
599599
if is_integer_object(other):
600-
return self.__add__(-other)
601-
else:
602-
return datetime.__sub__(self, other)
600+
neg_other = -other
601+
return self + neg_other
602+
return super(_Timestamp, self).__sub__(other)
603603

604604
cpdef _get_field(self, field):
605605
out = get_date_field(np.array([self.value], dtype=np.int64), field)
@@ -2329,7 +2329,7 @@ cpdef int64_t period_asfreq(int64_t period_ordinal, int freq1, int freq2,
23292329
"""
23302330
cdef:
23312331
int64_t retval
2332-
2332+
23332333
if end:
23342334
retval = asfreq(period_ordinal, freq1, freq2, END)
23352335
else:

0 commit comments

Comments
 (0)