diff options
Diffstat (limited to 'python/citco_ops')
| -rw-r--r-- | python/citco_ops/utils.py | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/python/citco_ops/utils.py b/python/citco_ops/utils.py index 1ac36aae..91738d5f 100644 --- a/python/citco_ops/utils.py +++ b/python/citco_ops/utils.py @@ -7,7 +7,6 @@ import csv from serenitas.ops.trade_dataclasses import Deal from serenitas.utils.exchange import ExchangeMessage from serenitas.utils.remote import SftpClient -from psycopg.errors import UniqueViolation from exchangelib import HTMLBody from tabulate import tabulate from functools import lru_cache @@ -108,11 +107,11 @@ class CitcoSubmission(Deal, deal_type=None, table_name="citco_submission2"): trade.stage() @classmethod - def update_citco_tables(cls): + def update_citco_tables(cls, newvals): d = defaultdict(list) - for file_type, _, serenitas_id, *_ in cls._insert_queue: - if file_type == "instrument": - d[instrument_table(serenitas_id)].append((serenitas_id,)) + for row in newvals: + if row.identifier_type == "instrument": + d[instrument_table(row.serenitas_id)].append((row.serenitas_id,)) for table, v in d.items(): sql_str = f"UPDATE {table} SET committed=True, status='Acknowledged' WHERE dealid=%s" with cls._conn.cursor() as c: @@ -132,12 +131,11 @@ class CitcoSubmission(Deal, deal_type=None, table_name="citco_submission2"): if not c.nextset(): break cls._conn.commit() - cls._insert_queue = newvals - cls.update_citco_tables() + cls.update_citco_tables(newvals) em = ExchangeMessage() em.send_email( "(CITCO) UPLOAD REPORT", - cls._format(), + cls._format(newvals), ( "fyu@lmcg.com", "ghorel@lmcg.com", @@ -146,9 +144,9 @@ class CitcoSubmission(Deal, deal_type=None, table_name="citco_submission2"): ) @classmethod - def _format(cls): + def _format(cls, vals): t = tabulate( - [upload for upload in cls._insert_queue], + vals, headers=[ "upload_type", "citco_id", |
