diff options
Diffstat (limited to 'python/risk_insight/views.py')
| -rw-r--r-- | python/risk_insight/views.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/python/risk_insight/views.py b/python/risk_insight/views.py index 216da1eb..93c8906b 100644 --- a/python/risk_insight/views.py +++ b/python/risk_insight/views.py @@ -1,8 +1,12 @@ -from risk_insight import app -from flask import render_template, jsonify, request, g -import os, csv, yaml +import csv import datetime +import os import psycopg2 +import yaml + +from risk_insight import app +from flask import render_template, jsonify, request, g +from psycopg2 import sql def get_attach_from_name(index_type, series): if index_type.lower() == "ig": @@ -41,14 +45,16 @@ def get_risk_numbers(): 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) + sqlstr = (sql.SQL("SELECT to_char(date, 'YYYY/MM/DD'), array_agg({}) FROM " \ + "(SELECT date, {} FROM risk_numbers_new " \ + "WHERE index=%s AND series=%s AND tenor=%s ORDER BY attach) "\ + "AS a GROUP BY date ORDER BY date"). + format(sql.Identifier(greek), sql.Identifier(greek))) with db.cursor() as c: c.execute(sqlstr, (index.upper(), series, tenor)) - data = [[val[0]]+val[1] for val in c] + data = [[date] + arr for date, arr in c] return jsonify(labels=["Date"] + ["{0}-{1} {2}".format(l, u, greek) for l, u in zip(attach[:-1], attach[1:])], data=data) |
