aboutsummaryrefslogtreecommitdiffstats
path: root/python/process_queue.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/process_queue.py')
-rw-r--r--python/process_queue.py38
1 files changed, 20 insertions, 18 deletions
diff --git a/python/process_queue.py b/python/process_queue.py
index c3a09172..68724322 100644
--- a/python/process_queue.py
+++ b/python/process_queue.py
@@ -1,8 +1,15 @@
+import argparse
+import csv
import datetime
-import socket
+import logging
+import numpy as np
+import os
import pandas as pd
-import csv
+import psycopg2
+import re
+import socket
import sys
+import task_server.config as config
if sys.version_info.major == 3:
from io import StringIO
@@ -11,17 +18,11 @@ else:
from pickle import loads
from ftplib import FTP
-import task_server.config as config
-import os
from sqlalchemy import create_engine
from bbg_helpers import init_bbg_session, retrieve_data, BBG_IP
from common import get_redis_queue
-import re
from analytics.utils import previous_twentieth
from db import dbconn
-import logging
-import argparse
-import psycopg2
from send_email import EmailMessage
HEADERS = {'bond_trades':['Deal Type', 'Deal ID', 'Action', 'Client', 'Reserved', 'Reserved',
@@ -145,12 +146,7 @@ def build_line(obj, queue_name='bond_trades'):
'clearing_facility': 'Clearing Facility',
'isda_definition': 'ISDADefinition',
'expiration_date': 'ExpirationDate'}
-
- for k, v in rename_cols.items():
- try:
- obj[v] = obj.pop(k)
- except KeyError:
- continue
+ obj = obj.rename(index=rename_cols)
if queue_name == 'bond_trades':
obj['Deal Type'] = 'MortgageDeal'
@@ -166,9 +162,11 @@ def build_line(obj, queue_name='bond_trades'):
obj['Transaction Indicator'] = "Buy" if obj.buysell else "Sell"
obj['ExerciseType'] = 'European'
obj['SettlementMode'] = 'Delivery'
- obj['PremiumSettlementDate'] = obj.pop('Settlement Date')
- obj['PercentageOfPremium'] = obj.pop('Price')
- obj['Notional'] = obj.pop('notional')
+ obj = obj.rename(index={'Settlement Date': 'PremiumSettlementDate',
+ 'Price': 'PercentageOfPremium',
+ 'notional': 'Notional',
+ 'initial_margin_percentage': 'InitialMarginPercentage'})
+
obj['RegenerateCashFlow'] = 'N'
for direction in ['Pay', 'Receive']:
obj[direction + 'Daycount'] = 'ACT/360'
@@ -179,7 +177,6 @@ def build_line(obj, queue_name='bond_trades'):
obj[direction + 'Notional'] = obj['Notional']
obj[direction + 'EffectiveDate'] = get_effective_date(obj['Trade Date'])
obj['PremiumCurrency'] = obj['Currency']
- obj['InitialMarginPercentage'] = obj.pop('initial_margin_percentage')
if obj['InitialMarginPercentage']:
obj['InitialMarginCurrency'] = obj['Currency']
obj['SwapType'] = 'CD_INDEX_OPTION'
@@ -200,8 +197,13 @@ def build_line(obj, queue_name='bond_trades'):
obj['Deal Type'] = 'CreditDefaultSwapDeal'
obj['PaymentFrequency'] = freq[obj.frequency]
obj['InitialMarginPercentage'] = obj.pop('initial_margin_percentage')
+ if obj['InitialMarginPercentage'] is not None and np.isnan(obj['InitialMarginPercentage']):
+ obj['InitialMarginPercentage'] = None
if obj['InitialMarginPercentage']:
obj['InitialMarginCurrency'] = obj['Currency']
+ for k in ['AttachmentPoint', 'ExhaustionPoint']:
+ if obj[k] is not None and np.isnan(obj[k]):
+ obj[k] = None
return [obj.get(h, None) for h in HEADERS[queue_name]]