From 34368d0b4a8ec83335d41237eae84ae83e749070 Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Tue, 5 Jul 2016 16:16:00 -0400 Subject: add method to inspect content of curve --- curve.pyx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'curve.pyx') diff --git a/curve.pyx b/curve.pyx index 7aa620a..c956295 100644 --- a/curve.pyx +++ b/curve.pyx @@ -3,6 +3,7 @@ from curve cimport JpmcdsBuildIRZeroCurve, JpmcdsZeroPrice from date cimport (JpmcdsStringToDateInterval, pydate_to_TDate, dcc, JpmcdsDateIntervalToFreq, JpmcdsDateFwdThenAdjust, TDate_to_pydate, JpmcdsDateFromBusDaysOffset) +from date import dcc_tostring from cdsone cimport JpmcdsStringToStubMethod, TStubMethod cdef int SUCCESS = 0 @@ -18,7 +19,17 @@ cdef class Curve: JpmcdsFreeTCurve(self._thisptr) def inspect(self): - return {'base_date': TDate_to_pydate(self._thiptr.fBaseDate)} + return {'base_date': TDate_to_pydate(self._thisptr.fBaseDate), + 'basis': self._thisptr.fBasis, + 'day_count_convention': dcc_tostring(self._thisptr.fDayCountConv), + 'data': fArray_to_list(self._thisptr.fArray, self._thisptr.fNumItems)} + +cdef fArray_to_list(TRatePt* fArray, int fNumItems): + cdef size_t i + cdef list l = [] + for i in range(fNumItems): + l.append((TDate_to_pydate(fArray[i].fDate), fArray[i].fRate)) + return l cdef class ZeroCurve(Curve): @@ -49,7 +60,7 @@ cdef class ZeroCurve(Curve): period_bytes = p.encode('utf-8') if JpmcdsStringToDateInterval(period_bytes, routine, &tmp) != SUCCESS: raise ValueError - if JpmcdsDateFwdThenAdjust(settle_date, &tmp, NONE, + if JpmcdsDateFwdThenAdjust(settle_date, &tmp, MODIFIED, "None", &self._dates[i]) != SUCCESS: raise ValueError('Invalid interval') -- cgit v1.2.3-70-g09d2