aboutsummaryrefslogtreecommitdiffstats
path: root/python/position_file_bowdst.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/position_file_bowdst.py')
-rw-r--r--python/position_file_bowdst.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/python/position_file_bowdst.py b/python/position_file_bowdst.py
index 100f9627..b440e59d 100644
--- a/python/position_file_bowdst.py
+++ b/python/position_file_bowdst.py
@@ -22,18 +22,20 @@ def build_line(obj, asset_type):
def process_upload(positions, upload):
attachments = []
+ if upload:
+ sftp = SftpClient.from_creds("hm_globeop", folder="incoming")
+
for asset_type, trades in positions.items():
buf = StringIO()
csvwriter = csv.writer(buf)
csvwriter.writerow(POSITION_HEADERS[asset_type])
csvwriter.writerows(build_line(trade, asset_type) for trade in trades)
buf = buf.getvalue().encode()
- fname = f"HEDGEMARK.POSITION.BOS_PAT_BOWDOIN.{datetime.datetime.now():%Y%m%d.%H%M%S}.{asset_type.capitalize()}Deal.PositionsAsOf{args.date}.csv"
+ timestamp = datetime.datetime.now()
+ fname = f"HEDGEMARK.POSITION.BOS_PAT_BOWDOIN.{timestamp:%Y%m%d.%H%M%S}.{asset_type.capitalize()}Deal.PositionsAsOf{args.date}.csv"
if upload:
- sftp = SftpClient.from_creds("hm_globeop")
- sftp.client.chdir("incoming")
sftp.put(buf, fname)
- base_dir = DAILY_DIR / str(datetime.date.today())
+ base_dir = DAILY_DIR / f"{timestamp:%Y-%m-%d}"
base_dir.mkdir(exist_ok=True, parents=True)
dest = base_dir / fname
dest.write_bytes(buf)
@@ -59,7 +61,6 @@ def process_upload(positions, upload):
def positions_bond(conn, date):
with conn.cursor() as c:
c.execute("SELECT * FROM risk_positions(%s, null, 'BOWDST') ", (date,))
- trades = []
for row in c:
obj = row._asdict()
rename_keys(
@@ -93,7 +94,6 @@ def positions_future(conn, date):
"SELECT bbg_ticker, notional, code AS cp_code, cash_account, security_desc, currency, maturity FROM tmp LEFT JOIN accounts USING (fund) WHERE tmp.notional != 0 AND account_type='Future';",
(date,),
)
- trades = []
for row in c:
obj = row._asdict()
rename_keys(
@@ -177,7 +177,8 @@ def positions_otc(conn, date):
with conn.cursor() as c:
for product_type, sql_query in _otc_queries.items():
c.execute(sql_query, (date,))
- yield from [_otc_serialize(row._asdict(), product_type, date) for row in c]
+ for row in c:
+ yield _otc_serialize(row._asdict(), product_type, date)
if __name__ == "__main__":