diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/risk/indices.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/python/risk/indices.py b/python/risk/indices.py index 8ffe20b2..db6ca0c2 100644 --- a/python/risk/indices.py +++ b/python/risk/indices.py @@ -19,10 +19,15 @@ def get_index_portfolio( by_strat: bool = True, **kwargs, ): - sql_str = ( - "SELECT security_id AS redcode, security_desc, sum(notional) AS notional, maturity " - "FROM list_cds_positions_by_strat(%s, %s) " - ) + select_cols = [ + "security_id AS redcode", + "security_desc", + "sum(notional) AS notional", + "maturity", + ] + if by_strat: + select_cols += ["folder"] + sql_str = f"SELECT {','.join(select_cols)} FROM list_cds_positions_by_strat(%s, %s)" params = (d, fund) folder_filter = [] if strategies is not None: @@ -38,10 +43,9 @@ def get_index_portfolio( folder_filter.append("folder::text NOT LIKE %s") params += (exclude_strategies,) if folder_filter: - sql_str += "WHERE " + " AND ".join(folder_filter) - sql_str += "GROUP BY security_id, security_desc, maturity" + sql_str += " WHERE " + " AND ".join(folder_filter) + sql_str += " GROUP BY security_id, security_desc, maturity" if by_strat: - sql_str = sql_str.replace("redcode,", "redcode, folder,") sql_str += ", folder" with conn.cursor() as c: c.execute(sql_str, params) |
