summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Horel <guillaume.horel@gmail.com>2023-01-24 16:18:52 -0500
committerGuillaume Horel <guillaume.horel@gmail.com>2023-01-24 16:18:52 -0500
commitd21de8c509414f15e6878aee27e0450bfcf63418 (patch)
treed434e774388da92032df6a93975e9c52b2c5ba20
parent16dc01f3d6b74ae871848e0cff0e426b7a6f1476 (diff)
downloadpyisda-d21de8c509414f15e6878aee27e0450bfcf63418.tar.gz
default to version 1
-rw-r--r--pyisda/curve.pyx39
1 files changed, 10 insertions, 29 deletions
diff --git a/pyisda/curve.pyx b/pyisda/curve.pyx
index 97c642b..6e3b452 100644
--- a/pyisda/curve.pyx
+++ b/pyisda/curve.pyx
@@ -117,7 +117,7 @@ cdef class Curve(object):
self.buf.reset(curve, char_free)
@classmethod
- def from_bytes(cls, object state, bint compressed=True, int version=0):
+ def from_bytes(cls, object state, bint compressed=True):
cdef:
Curve instance = cls.__new__(cls)
Py_buffer* py_buf
@@ -155,11 +155,8 @@ cdef class Curve(object):
curve = <char*>malloc(size + sizeof(TRatePt*))
memcpy(curve + sizeof(TRatePt*), src, size)
state_size = size
- if version == 0:
- instance.buf_size = fixup(curve)
- elif version == 1:
- (<TCurve*>curve).fArray = <TRatePt*>(curve + sizeof(TCurve))
- instance.buf_size = state_size + sizeof(TRatePt*)
+ (<TCurve*>curve).fArray = <TRatePt*>(curve + sizeof(TCurve))
+ instance.buf_size = state_size + sizeof(TRatePt*)
instance.buf.reset(curve, char_free)
return instance
@@ -865,33 +862,17 @@ cdef class SpreadCurve(Curve):
curve.fArray[i].fRate = JPMCDS_MAX_RATE
@classmethod
- def from_bytes(cls, object state, const bint compressed=False, version=0):
+ def from_bytes(cls, object state, const bint compressed=False):
cdef:
- SpreadCurve instance = super().from_bytes(state, compressed, version)
+ SpreadCurve instance = super().from_bytes(state, compressed)
char* cursor = instance.buf.get()
TCurve* curve = <TCurve*>cursor
int n = curve.fNumItems
- int ticker_len
- if version == 1:
- instance.offset_recovery_rates = sizeof(TCurve) + n * sizeof(TRatePt)
- cursor += sizeof(TCurve) + n * (sizeof(TRatePt) + sizeof(double))
- instance.defaulted = deref(<TDate*>cursor)
- cursor += sizeof(TDate)
- instance.offset_name = cursor - instance.buf.get()
- elif version == 0:
- cursor += sizeof(TCurve) + n * sizeof(TRatePt)
- memmove(cursor, cursor + 4, n * sizeof(double))
- instance.offset_recovery_rates = sizeof(TCurve) + n * sizeof(TRatePt)
- cursor += n * sizeof(double)
- memmove(cursor, cursor + 4, sizeof(TDate))
- instance.defaulted = deref(<TDate*>cursor)
- cursor += sizeof(TDate)
- instance.offset_name = cursor - instance.buf.get()
- cursor[0] = deref(cursor + 4)
- cursor[1] = deref(cursor + 8)
- strcpy(cursor + 2, cursor + 12)
- ticker_len = strlen(cursor + 2)
- instance.buf_size = cursor - instance.buf.get() + 2 + ticker_len + 1
+ instance.offset_recovery_rates = sizeof(TCurve) + n * sizeof(TRatePt)
+ cursor += sizeof(TCurve) + n * (sizeof(TRatePt) + sizeof(double))
+ instance.defaulted = deref(<TDate*>cursor)
+ cursor += sizeof(TDate)
+ instance.offset_name = cursor - instance.buf.get()
return instance