aboutsummaryrefslogtreecommitdiffstats
path: root/python/strat_cash_realloc.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/strat_cash_realloc.py')
-rw-r--r--python/strat_cash_realloc.py30
1 files changed, 11 insertions, 19 deletions
diff --git a/python/strat_cash_realloc.py b/python/strat_cash_realloc.py
index 748b8de2..29baf7dc 100644
--- a/python/strat_cash_realloc.py
+++ b/python/strat_cash_realloc.py
@@ -1,24 +1,21 @@
-from serenitas.utils.db import dbconn
+from dataclasses import replace
from serenitas.ops.funds import Bowdst
from serenitas.ops.trade_dataclasses import WireDeal
import datetime
from serenitas.analytics.dates import prev_business_day
from collateral.common import CASH_STRATEGY_MAPPING, STRATEGY_CASH_MAPPING
-from serenitas.utils.misc import rename_keys
-def generate_csv(date, conn, fund="BOWDST"):
- wire_deals = []
- with conn.cursor() as c:
+def generate_csv(date, fund="BOWDST"):
+ with WireDeal._conn.cursor() as c:
c.execute(
- "SELECT count(*) FROM wires WHERE trade_date=%s AND fund=%s AND author='auto';",
+ "SELECT 1 FROM wires WHERE trade_date=%s AND fund=%s AND author='auto'",
(
date,
fund,
),
)
- (count,) = c.fetchone()
- if count > 0:
+ if c.fetchone() is None:
return
c.execute(
"SELECT * FROM list_orphaned_cash(%s, %s) ",
@@ -28,17 +25,13 @@ def generate_csv(date, conn, fund="BOWDST"):
),
)
for row in c:
- if row.strat not in CASH_STRATEGY_MAPPING:
- obj = WireDeal(**row._asdict(), action="NEW")
- offset = obj.offset(STRATEGY_CASH_MAPPING[obj.folder])
+ if row.folder not in CASH_STRATEGY_MAPPING:
+ obj = WireDeal(**row._asdict())
+ offset = replace(obj, folder=STRATEGY_CASH_MAPPING[obj.folder])
obj.stage()
offset.stage()
- wire_deals.extend([obj, offset])
- if wire_deals:
- WireDeal.commit()
- for wire in wire_deals:
- wire.set_id()
- Bowdst.staging_queue.append(wire.to_globeop("NEW"))
+ for wire in WireDeal.commit(returning=True):
+ Bowdst.staging_queue.append(wire.to_globeop("NEW"))
buf, dest = Bowdst.build_buffer("wire")
Bowdst.upload(buf, dest.name)
Bowdst().clear()
@@ -57,5 +50,4 @@ if __name__ == "__main__":
)
args = parser.parse_args()
- conn = dbconn("dawndb")
- generate_csv(args.workdate, conn)
+ generate_csv(args.workdate)