aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/report_ops/sma.py23
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"):