diff options
Diffstat (limited to 'python/intex_scenarios.py')
| -rw-r--r-- | python/intex_scenarios.py | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/python/intex_scenarios.py b/python/intex_scenarios.py index 70bf8226..89f8b5ba 100644 --- a/python/intex_scenarios.py +++ b/python/intex_scenarios.py @@ -2,24 +2,36 @@ import os import os.path
import datetime
from datetime import date
+from csv import reader
+import json
+import codecs
import pdb
-import csv
if os.name =='nt':
root = "//WDsentinel/share/CorpCDOs/Scenarios"
elif os.name == 'posix':
root = '/home/share/CorpCDOs/Scenarios'
input = os.path.join(root, "prometheus.sss")
-for dealname in ["stonln1", "babs072", "flags5", "cent11", "wasatl", "oceant2", "acacl071", "limes"]:
- output = os.path.join(root, dealname + ".sss")
- cdrscenarios = os.path.join(root, dealname + "-cdr.csv")
- recoveryscenarios = os.path.join(root, dealname + "-recovery.csv")
+
+for dealname in ["oceant2", "atr4cdo"]:
+ reinvprices = os.path.join(root, "Intex curves", "csv", dealname + "-reinvprices.csv")
+ with open(reinvprices, "r") as fhreinv:
+ reinvprices = [line.rstrip("\n") for line in fhreinv]
+ output = os.path.join(root, "Intex curves", "sss", dealname + ".sss")
+ cdrscenarios = os.path.join(root, "Intex curves", "csv", dealname + "-cdr.csv")
+ recoveryscenarios = os.path.join(root, "Intex curves", "csv", dealname + "-recovery.csv")
fh2 = open(output, "w")
fhcdr = open(cdrscenarios, "r")
fhrecovery = open(recoveryscenarios, "r")
- cdrline = "\t".join(fhcdr.readline().rstrip().split(",")) +"\n"
- recoveryline = "\t".join(fhrecovery.readline().rstrip().split(",")) + "\n"
-
+ csvcdr = reader(fhcdr)
+ csvrecovery = reader(fhrecovery)
+ cdrline = csvcdr.next()
+ try:
+ cdrline = "\t".join(["{0:.3f}".format(float(cdr)) for cdr in cdrline]) +"\n"
+ recoveryline = csvrecovery.next()
+ recoveryline = "\t".join(["{0:.3f}".format(float(recovery)) for recovery in recoveryline]) + "\n"
+ except ValueError:
+ pdb.set_trace()
i=1
with open(input) as fh:
for line in fh:
@@ -31,9 +43,18 @@ for dealname in ["stonln1", "babs072", "flags5", "cent11", "wasatl", "oceant2", newrecoveryline = "LOSS_SEVERITY[DEAL,{0}]=".format(i) + recoveryline
fh2.write(newrecoveryline)
i=i+1
- cdrline = "\t".join(fhcdr.readline().rstrip().split(",")) + "\n"
- recoveryline = "\t".join(fhrecovery.readline().rstrip().split(",")) + "\n"
- continue
+ if i<=100:
+ cdrline = csvcdr.next()
+ cdrline = "\t".join(["{0:.3f}".format(float(cdr)) for cdr in cdrline]) + "\n"
+ recoveryline = csvrecovery.next()
+ recoveryline = "\t".join(["{0:.3f}".format(float(recovery)) \
+ for recovery in recoveryline]) + "\n"
+ continue
+ if "REINV_GLOBAL" in line:
+ jsondict = line.split("=")[1]
+ reinvdict = json.loads(jsondict)
+ reinvdict['STANDARD_VAR[REINVEST_PRICE]']['value'] = ' '.join(reinvprices)
+ fh2.write("=".join("REINV_GLOBAL", json.dumps(reinvdict))
fh2.write(line)
fh2.close()
fhrecovery.close()
|
