def test_conversion_from_pyql_to_datetime(self): date1 = Date(1, Jan, 2010) pydate1 = pydate_from_qldate(date1) expected_result = datetime.date(2010, 1, 1) self.assertEquals(expected_result, pydate1)
def test_conversion_from_pyql_to_datetime(self): date1 = Date(1, Jan, 2010) pydate1 = pydate_from_qldate(date1) expected_result = datetime.date(2010, 1, 1) self.assertEqual(expected_result, pydate1)
def next_imm_date(reference_date, tenor): """ Third Wednesday of contract month """ dt = qldate_from_pydate(reference_date) for k in range(tenor): tmp = imm.next_date(dt) dt = pydate_to_qldate(tmp) return pydate_from_qldate(dt)
def advance(cls, date, n, timeunit=None, calendar=None, convention=None): """ Advance pydate according the specified calendar and convention :pydate: e.g. 19600809, date(1964, 9, 29), '5-23-1993' :n: integer :timeunit: e.g., enums.TimeUnits.Days usage ----- Note 9/6/1980 is a weekend >>> Calendars.advance(19800906, 1) datetime.date(1980, 9, 8) """ if not calendar: calendar = cls.TARGET() elif not hasattr(calendar, "advance"): return None if not convention: convention = BusinessDayConventions.Following if not timeunit: timeunit = TimeUnits.Days qldate = qldate_from_pydate(pydate(date)) try: return pydate_from_qldate(calendar.advance(qldate, n, timeunit)) except: try: return pydate_from_qldate( calendar().advance(qldate, n, timeunit) ) except: print("failure {}".format(qldate)) return None
def adjust(cls, date, calendar=None, convention=None): if not calendar: calendar = cls.TARGET() elif not hasattr(calendar, "adjust"): return None if not convention: convention = BusinessDayConventions.Following qldate = qldate_from_pydate(pydate(date)) try: return pydate_from_qldate(calendar.adjust(qldate, convention)) except: try: return pydate_from_qldate(calendar().adjust(qldate, convention)) except: return None