aboutsummaryrefslogtreecommitdiffstats
path: root/python/report_ops/sma.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/report_ops/sma.py')
-rw-r--r--python/report_ops/sma.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/python/report_ops/sma.py b/python/report_ops/sma.py
index e592797e..ae542279 100644
--- a/python/report_ops/sma.py
+++ b/python/report_ops/sma.py
@@ -146,6 +146,7 @@ class PositionReport(Deal, deal_type=None, table_name=None):
c.execute(cls._query, params)
for row in c:
position = cls.from_query(row._asdict(), cob, fund)
+ print(position)
position.serialize("position")
def from_query(d, cob, fund):
@@ -208,11 +209,31 @@ class TranchePosition(PositionReport, asset_class="tranche"):
return cls.from_dict(**d)
-class IRSwaptionPosition(PositionReport, asset_class="ir_swaption"):
+class SwaptionPosition:
+ @classmethod
+ def from_query(cls, d: dict, cob, fund):
+ d = super().from_query(d, cob, fund)
+ rename_keys(
+ d,
+ {
+ "active_notional": "notional",
+ "trade_date": "start_date",
+ "effectivedate": "effective_date",
+ "nav": "MTM Valuation",
+ "expiration_date": "Underlying Maturity",
+ "security_id": "identifier",
+ "security_desc": "description",
+ },
+ )
+ d["primebroker"] = "Bilateral"
+ return cls.from_dict(**d)
+
+
+class IRSwaptionPosition(SwaptionPosition, PositionReport, asset_class="ir_swaption"):
pass
-class CDXSwaptionPosition(PositionReport, asset_class="cdx_swaption"):
+class CDXSwaptionPosition(SwaptionPosition, PositionReport, asset_class="cdx_swaption"):
pass