aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/Dawn/utils.py16
-rw-r--r--python/dawn_utils.py89
2 files changed, 52 insertions, 53 deletions
diff --git a/python/Dawn/utils.py b/python/Dawn/utils.py
index 8fa45e93..9a2cf37f 100644
--- a/python/Dawn/utils.py
+++ b/python/Dawn/utils.py
@@ -1,19 +1,19 @@
-import pandas as pd
-import os
import re
from pickle import dumps
+
def bump_rev(filename):
- pattern = "([^r]*)(\srev(\d)|).pdf"
- begin, _, rev_number = re.match(pattern, filename).groups()
+ pattern = r"([^r]*)(\srev(\d)|).pdf"
+ begin, _, rev_number = re.match(pattern, filename).groups()
rev_number = int(rev_number) + 1 if rev_number else 1
- return "{0} rev{1}.pdf".format(begin, rev_number)
+ return f"{begin} rev{rev_number}.pdf"
+
def simple_serialize(obj):
- d = {c.name: getattr(obj, c.name) for c in obj.__table__.columns}
+ d = {c.name: getattr(obj, c.name) for c in obj.__table__.columns}
# add data from foreign relationship
if obj.__table__.name == 'wires':
d.update({'Counterparty': obj.account.counterparty,
- 'cashaccount': obj.account.cash_account,
- 'custodian': obj.account.custodian})
+ 'cashaccount': obj.account.cash_account,
+ 'custodian': obj.account.custodian})
return dumps(d)
diff --git a/python/dawn_utils.py b/python/dawn_utils.py
index 0268b4cc..1ce4007d 100644
--- a/python/dawn_utils.py
+++ b/python/dawn_utils.py
@@ -1,5 +1,3 @@
-from sqlalchemy.sql import text
-from sqlalchemy import create_engine
import os
import pandas as pd
@@ -17,20 +15,21 @@ def create_trigger_function(db):
stub := 'SC_';
sqlstr := format(sqlstr, 'dealid = $1||upper(left(asset_class::text,3))||id,
identifier = COALESCE(identifier, cusip, isin)', NEW.id);
- ELSIF (TG_TABLE_NAME = 'cds') THEN
- stub := 'SCCDS';
- sqlstr := format(sqlstr, 'dealid = $1||id', NEW.id);
- ELSIF (TG_TABLE_NAME = 'repo') THEN
- stub := 'SC_REP';
- sqlstr := format(sqlstr, 'dealid = $1||id', NEW.id);
- ELSIF (TG_TABLE_NAME = 'swaptions') THEN
- stub := 'SWPTN';
- sqlstr := format(sqlstr, 'dealid = $1||id', NEW.id);
- ELSIF (TG_TABLE_NAME = 'futures') THEN
- stub := 'SCFUT';
- sqlstr := format(sqlstr, 'dealid = $1||id', NEW.id);
- ELSIF (TG_TABLE_NAME = 'wires') THEN
- stub := 'SCCSH';
+ ELSE
+ CASE TG_TABLE_NAME
+ WHEN 'cds' THEN
+ stub := 'SCCDS';
+ WHEN 'repo' THEN
+ stub := 'SC_REP';
+ WHEN 'swaptions' THEN
+ stub := 'SWPTN';
+ WHEN 'futures' THEN
+ stub := 'SCFUT';
+ WHEN 'wires' THEN
+ stub := 'SCCSH';
+ WHEN 'capfloors' THEN
+ stub := 'CAP';
+ END CASE;
sqlstr := format(sqlstr, 'dealid = $1||id', NEW.id);
END IF;
EXECUTE sqlstr USING stub;
@@ -52,19 +51,19 @@ def load_counterparties(engine):
counterparties = pd.read_excel("/home/share/Daily/blotter.xlsm", 'Counterparties')
counterparties[['city', 'state']] = counterparties.Location.str.split(", ", expand=True)
counterparties.drop(['Location', 'Valuation Contact4', 'Valuation Contact4 Email'], axis=1, inplace=True)
- counterparties.rename(columns ={'CODE': 'code',
- 'DTC Number': 'dtc_number',
- 'Email1': 'sales_email',
- 'FIRM': 'name',
- 'Phone': 'sales_phone',
- 'Sales Contact': 'sales_contact',
- 'Valuation Contact1': 'valuation_contact1',
- 'Valuation Contact1 Email': 'valuation_email1',
- 'Valuation Contact2': 'valuation_contact2',
- 'Valuation Contact2 Email': 'valuation_email2',
- 'Valuation Contact3': 'valuation_contact3',
- 'Valuation Contact3 Email': 'valuation_email3',
- 'Valuation Note': 'notes'}, inplace=True)
+ counterparties.rename(columns={'CODE': 'code',
+ 'DTC Number': 'dtc_number',
+ 'Email1': 'sales_email',
+ 'FIRM': 'name',
+ 'Phone': 'sales_phone',
+ 'Sales Contact': 'sales_contact',
+ 'Valuation Contact1': 'valuation_contact1',
+ 'Valuation Contact1 Email': 'valuation_email1',
+ 'Valuation Contact2': 'valuation_contact2',
+ 'Valuation Contact2 Email': 'valuation_email2',
+ 'Valuation Contact3': 'valuation_contact3',
+ 'Valuation Contact3 Email': 'valuation_email3',
+ 'Valuation Note': 'notes'}, inplace=True)
counterparties.to_sql('counterparties', engine, if_exists='append', index=False)
def load_trades(engine, schema=None):
@@ -74,21 +73,21 @@ def load_trades(engine, schema=None):
blotter = blotter.iloc[:,2:]
blotter.drop(['Unnamed: %s' % (i,) for i in range(19, 28)] +
['Comments', 'Acc Int $', 'Counterparty'], axis=1, inplace=True)
- blotter.rename(columns = {'Date': 'trade_date',
- 'Settle Date': 'settle_date',
- 'Strategy': 'folder',
- 'Custodian': 'custodian',
- 'Cash Account': 'cashaccount',
- 'CP Alias': 'cp_code',
- 'CUSIP': 'cusip',
- 'ISIN': 'isin',
- 'Description': 'description',
- 'Buy/Sell': 'buysell',
- 'Notional': 'faceamount',
- 'Price': 'price',
- 'Acc Int': 'accrued',
- 'Asset Class': 'asset_class',
- 'Deal ID': 'id'}, inplace=True)
+ blotter.rename(columns={'Date': 'trade_date',
+ 'Settle Date': 'settle_date',
+ 'Strategy': 'folder',
+ 'Custodian': 'custodian',
+ 'Cash Account': 'cashaccount',
+ 'CP Alias': 'cp_code',
+ 'CUSIP': 'cusip',
+ 'ISIN': 'isin',
+ 'Description': 'description',
+ 'Buy/Sell': 'buysell',
+ 'Notional': 'faceamount',
+ 'Price': 'price',
+ 'Acc Int': 'accrued',
+ 'Asset Class': 'asset_class',
+ 'Deal ID': 'id'}, inplace=True)
blotter.buysell = blotter.buysell.apply(lambda x: x=='Buy')
blotter['action'] = 'NEW'
blotter['cashaccount'] = 'V0NSCLMAMB'
@@ -166,4 +165,4 @@ if __name__ == "__main__":
create_trigger_function(db)
create_triggers(db)
db.create_all()
- load_wires(db.engine, app.config['SCHEMA'])
+ #load_wires(db.engine, app.config['SCHEMA'])