summaryrefslogtreecommitdiffstats
path: root/curve.pyx
diff options
context:
space:
mode:
Diffstat (limited to 'curve.pyx')
-rw-r--r--curve.pyx34
1 files changed, 18 insertions, 16 deletions
diff --git a/curve.pyx b/curve.pyx
index 88b1098..7aa620a 100644
--- a/curve.pyx
+++ b/curve.pyx
@@ -1,6 +1,5 @@
-from cpython cimport datetime
from libc.stdlib cimport malloc, free
-from curve cimport JpmcdsBuildIRZeroCurve, JpmcdsZeroPrice,
+from curve cimport JpmcdsBuildIRZeroCurve, JpmcdsZeroPrice
from date cimport (JpmcdsStringToDateInterval, pydate_to_TDate, dcc,
JpmcdsDateIntervalToFreq, JpmcdsDateFwdThenAdjust, TDate_to_pydate,
JpmcdsDateFromBusDaysOffset)
@@ -14,9 +13,12 @@ cpdef public enum BadDay:
MODIFIED = <long>'M'
cdef class Curve:
- def __dealloc__(self):
- if self._thisptr is not NULL:
- JpmcdsFreeTCurve(self._thisptr)
+ def __dealloc__(self):
+ if self._thisptr is not NULL:
+ JpmcdsFreeTCurve(self._thisptr)
+
+ def inspect(self):
+ return {'base_date': TDate_to_pydate(self._thiptr.fBaseDate)}
cdef class ZeroCurve(Curve):
@@ -87,20 +89,20 @@ cdef class ZeroCurve(Curve):
cdef class SpreadCurve(Curve):
- def __init__(self, today, ZeroCurve zc, start_date, step_in_date, cash_settle_date,
- list end_dates, double[:] coupon_rates, double recovery_rate,
- TBoolean pay_accrued_on_default):
+ def __init__(self, today, ZeroCurve zc, start_date, step_in_date,
+ cash_settle_date, list end_dates, double[:] coupon_rates,
+ double recovery_rate, int pay_accrued_on_default):
- cdef today_c = pydate_to_TDate(today)
- cdef step_in_date_c = pydate_to_TDate(step_in_date)
- cdef cash_settle_date_c = pydate_to_TDate(cash_settle_date)
- cdef start_date_c = pydate_to_TDate(start_date)
+ cdef TDate today_c = pydate_to_TDate(today)
+ cdef TDate step_in_date_c = pydate_to_TDate(step_in_date)
+ cdef TDate cash_settle_date_c = pydate_to_TDate(cash_settle_date)
+ cdef TDate start_date_c = pydate_to_TDate(start_date)
cdef TDate* end_dates_c = <TDate*>malloc(len(end_dates) * sizeof(TDate))
-
+ self._thisptr = NULL
cdef size_t i
for i, d in enumerate(end_dates):
- end_dates_c[i] = pydate_to_TDate(end_dates)
+ end_dates_c[i] = pydate_to_TDate(d)
cdef TStubMethod stub_type
if JpmcdsStringToStubMethod(b"f/s", &stub_type) != 0:
@@ -110,7 +112,7 @@ cdef class SpreadCurve(Curve):
zc._thisptr,
start_date_c,
step_in_date_c,
- cash_settle_date,
+ cash_settle_date_c,
len(end_dates),
end_dates_c,
&coupon_rates[0],
@@ -121,4 +123,4 @@ cdef class SpreadCurve(Curve):
dcc('ACT/360'),
&stub_type,
<long>'M',
- NULL)
+ b'NONE')