diff options
| -rw-r--r-- | python/report_ops/sma.py | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/python/report_ops/sma.py b/python/report_ops/sma.py index 2f7e7ae5..e592797e 100644 --- a/python/report_ops/sma.py +++ b/python/report_ops/sma.py @@ -110,7 +110,7 @@ class PositionReport(Deal, deal_type=None, table_name=None): effective_date: datetime.date = field( default=None, metadata={"position": "Effective Date"} ) - maturity_date: datetime.date = field( + maturity: datetime.date = field( default=None, metadata={"position": "Maturity Date"} ) description: str = field(default=None, metadata={"position": "Underlying Desc"}) @@ -142,7 +142,8 @@ class PositionReport(Deal, deal_type=None, table_name=None): @classmethod def stage_positions(cls, cob, fund): with cls._conn.cursor() as c: - c.execute(cls._query, (cob, fund)) + params = (cob, fund) if cls not in (TranchePosition,) else (cob,) + c.execute(cls._query, params) for row in c: position = cls.from_query(row._asdict(), cob, fund) position.serialize("position") @@ -182,7 +183,6 @@ class FuturePosition(PositionReport, asset_class="future"): "bbg_ticker": "identifier", "cash_account": "account", "security_desc": "description", - "maturity": "maturity_date", "account_code": "primebroker", }, ) @@ -190,7 +190,22 @@ class FuturePosition(PositionReport, asset_class="future"): class TranchePosition(PositionReport, asset_class="tranche"): - pass + @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", + "security_desc": "description", + "mtm": "mtm_valuation", + "security_id": "identifier", + }, + ) + d["primebroker"] = "Bilateral" + d["buysell"] = d["protection"] == "Buyer" + return cls.from_dict(**d) class IRSwaptionPosition(PositionReport, asset_class="ir_swaption"): |
