diff options
Diffstat (limited to 'python/headers.py')
| -rw-r--r-- | python/headers.py | 59 |
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 |
