aboutsummaryrefslogtreecommitdiffstats
path: root/python/reallocate_iam.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/reallocate_iam.py')
-rw-r--r--python/reallocate_iam.py24
1 files changed, 15 insertions, 9 deletions
diff --git a/python/reallocate_iam.py b/python/reallocate_iam.py
index fd5a6c70..02db04a4 100644
--- a/python/reallocate_iam.py
+++ b/python/reallocate_iam.py
@@ -8,7 +8,7 @@ def gen_old_iam(fund, cob, conn):
"""'Finds and cancels old IAM uploads"""
with conn.cursor() as c:
c.execute(
- "DELETE FROM iam_tickets WHERE trade_date=%s AND fund=%s RETURNING *",
+ "DELETE FROM iams WHERE trade_date=%s AND fund=%s RETURNING *",
(
cob,
fund,
@@ -46,7 +46,7 @@ def gen_new_iam_offsets(fund, cob, conn):
),
)
for row in c:
- d = row._asdict() | {"offset": True, "folder": "M_CSH_CASH"}
+ d = row._asdict() | {"is_offset": True, "folder": "M_CSH_CASH"}
yield IAMDeal.from_dict(**d)
@@ -61,22 +61,25 @@ def gen_matured_iam(fund, cob, conn):
yield IAMDeal.from_dict(**d)
-def main(fund, cob, conn):
+def build_iam(fund, cob, conn, upload):
service = Service[fund]
for old_iam in gen_old_iam(fund, cob, conn):
service.push_trade(old_iam, "CANCEL")
- for new_iam in gen_iam(fund, cob, conn):
+ for new_iam in gen_new_iam(fund, cob, conn):
new_iam.stage()
if fund in ("BOWDST"):
- for new_iam_offset in gen_iam_offsets(fund, cob, conn):
+ for new_iam_offset in gen_new_iam_offsets(fund, cob, conn):
new_iam_offset.stage()
for iam in IAMDeal.commit(returning=True):
- service.push(iam, "NEW")
+ service.push_trade(iam, "NEW")
for update_iam in gen_matured_iam(fund, cob, conn):
- service.push(update_iam, "UPDATE")
+ service.push_trade(update_iam, "UPDATE")
conn.commit()
buf, dest = service.build_buffer()
- service.upload(buf, dest.name)
+ if upload:
+ pass
+ # service.upload(buf, dest.name)
+ service().clear()
if __name__ == "__main__":
@@ -91,6 +94,9 @@ if __name__ == "__main__":
type=datetime.date.fromisoformat,
default=prev_business_day(datetime.date.today()),
)
+ parser.add_argument(
+ "-n", "--no-upload", action="store_true", help="do not upload to CTM"
+ )
args = parser.parse_args()
for fund in ("BOWDST",):
- main(fund, args.cob, conn)
+ build_iam(fund, args.cob, conn, not args.no_upload)