aboutsummaryrefslogtreecommitdiffstats
path: root/python/headers.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/headers.py')
-rw-r--r--python/headers.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/python/headers.py b/python/headers.py
index 2853eb56..e2a5b719 100644
--- a/python/headers.py
+++ b/python/headers.py
@@ -1,3 +1,5 @@
+from typing import Literal
+
HEADERS_PRE = [
"Deal Type",
"Deal Id",
@@ -274,3 +276,60 @@ def get_headers(trade_type, fund):
return headers
else:
return headers
+
+
+def get_termination_headers(trade_type: str, term_type: Literal["A", "T"]):
+ headers = [
+ "DealType",
+ "DealId",
+ "Action",
+ "Client",
+ "SubAction",
+ "PartialTermination",
+ "TerminationAmount",
+ "TerminationDate",
+ "FeesPaid",
+ "FeesReceived",
+ "DealFunction",
+ "Reserved",
+ "ClientReference",
+ ]
+ if trade_type == "cds":
+ headers += ["TradeDate", "EffectiveDate", "FirstCouponDate"]
+ else:
+ headers += ["Reserved"] * 3
+ headers += ["FeePaymentDate", "SpecialInstructions"]
+
+ if term_type == "A":
+ headers += ["AssignedCounterparty"]
+ else:
+ headers += ["Reserved"]
+ if trade_type == "cds" and term_type == "A":
+ headers += [
+ "AssignmentFee",
+ "AssignedFeeTradeDate",
+ "AssignedFeeValueDate",
+ "AssignedCustodian",
+ "AssignedCashAccount",
+ "Reserved",
+ "FeeCurrency",
+ ]
+ else:
+ headers += ["Reserved"] * 7
+ headers += ["GoTradeId"]
+ if trade_type == "cds":
+ headers += ["FeeComments", "ZeroOutInterestCashFlows"]
+ else:
+ headers += ["Reserved"] * 2
+ headers += ["Reserved"] * 4
+ if trade_type == "swaption":
+ headers += ["Reserved"] * 2 + ["InMoney", "FeeCurrency"]
+ elif trade_type == "cds":
+ if term_type == "A":
+ headers += ["Reserved"] * 3
+ else:
+ headers += ["AssignedDealFunction"] + ["Reserved"] * 2
+ headers += ["InitialMargin", "InitialMarginCurrency"]
+ if term_type == "T":
+ headers += ["Reserved"] * 4 + ["CreditEventOccured"]
+ return headers