aboutsummaryrefslogtreecommitdiffstats
path: root/python/risk_insight/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/risk_insight/__init__.py')
-rw-r--r--python/risk_insight/__init__.py100
1 files changed, 2 insertions, 98 deletions
diff --git a/python/risk_insight/__init__.py b/python/risk_insight/__init__.py
index 114c1185..4dabc1c9 100644
--- a/python/risk_insight/__init__.py
+++ b/python/risk_insight/__init__.py
@@ -1,99 +1,3 @@
-from flask import Flask, render_template, jsonify, request, g
-import os, csv, yaml
-import datetime
-import psycopg2
-
+from flask import Flask
app = Flask(__name__)
-
-basedir = "/home/share/CorpCDOs"
-
-def get_attach_from_name(index_type, series):
- if index_type.lower() == "ig":
- if series == 9:
- attach = [0, 3, 7, 10, 15, 30, 100]
- else:
- attach = [0, 3, 7, 15, 100]
- elif index_type.lower() == "hy":
- attach = [0, 15, 25, 35, 100]
- elif index_type.lower() == "xo":
- attach = [0, 10, 20, 35, 100]
- elif index_type.lower() == "eu":
- if series == 9:
- attach = [0, 3, 6, 9, 12, 22, 100]
- else:
- attach = [0, 3, 6, 12, 100]
- return attach
-
-def get_db():
- db = getattr(g, '_database', None)
- if db is None:
- db = g._database = psycopg2.connect(database="serenitasdb",
- user="serenitas_user",
- host="debian")
- return db
-
-@app.teardown_appcontext
-def close_connection(exception):
- db = getattr(g, '_database', None)
- if db is not None:
- db.close()
-
-@app.route("/_data_tranches")
-def get_risk_numbers():
- index = request.args.get("i")
- series = request.args.get("s", 0, int)
- tenor = request.args.get("t")
- greek = request.args.get("g")
- data = []
- db = get_db()
- attach = get_attach_from_name(index, series)
- sqlstr = "SELECT to_char(date, 'YYYY/MM/DD'), \"{0}\" from risk_numbers " \
- "WHERE index=%s and series=%s and tenor=%s ORDER BY date".format(greek)
- with db.cursor() as c:
- c.execute(sqlstr, (index.upper(), series, tenor))
- data = [[val[0]]+val[1] for val in c]
- return jsonify(labels=["Date"] + ["{0}-{1} {2}".format(l, u, greek) for l, u in zip(attach[:-1], attach[1:])],
- data=data)
-
-@app.route("/_data_indices")
-def get_indices_quotes():
- index = request.args.get("i")
- series = request.args.get("s", 0, int)
- tenor = request.args.get("t")
- what = request.args.get("w")
- data = []
- db = get_db()
- sqlstr = "SELECT to_char(date, 'YYYY/MM/DD'), {0} " \
- "from index_quotes WHERE index=%s and series=%s " \
- "and tenor=%s ORDER BY date"
- query_columns = {'quotes': "closeprice, modelprice",
- 'adjquotes': "adjcloseprice, adjmodelprice",
- 'basis': "closeprice-modelprice",
- 'theta': "theta",
- 'duration': "duration"}
- labels = {'quotes': ["Date", "Close", "FV"],
- 'adjquotes': ["Date", "AdjClose", "AdjFV"],
- 'basis': ["Date", "Basis"],
- 'theta': ["Date", "Theta"],
- 'duration': ["Date", "Duration"]}
- sqlstr = sqlstr.format(query_columns[what])
- with db.cursor() as c:
- c.execute(sqlstr, (index.upper(), series, tenor))
- data = c.fetchall()
- return jsonify(labels = labels[what],
- data = data)
-
-@app.route("/tranches.html")
-def tranches():
- with open(os.path.join(basedir, "code", "etc", "runs.yml")) as fh:
- runs = yaml.load(fh)
- series_list = sorted(list(set([int(name[2:]) for name in runs['name']])))
- return render_template("tranches.html", series=series_list)
-
-@app.route("/indices.html")
-def indices():
- return render_template("indices.html", series=[9, 10, 11, 13] + list(range(16, 25)))
-
-@app.route("/")
-def main():
- return render_template("index.html")
+import risk_insight.views