diff options
| -rw-r--r-- | python/trade_dataclasses.py | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/python/trade_dataclasses.py b/python/trade_dataclasses.py index e3fff6db..d46cb846 100644 --- a/python/trade_dataclasses.py +++ b/python/trade_dataclasses.py @@ -197,27 +197,20 @@ class BbgDeal(Deal): def __init_subclass__(cls, table_name: str, insert_ignore=()): super().__init_subclass__(table_name, insert_ignore) - # cls._table_name = table_name - # insert_columns = [c for c in cls.__annotations__ if c not in insert_ignore] - # place_holders = ",".join(["%s"] * len(insert_columns) - # cls._sql_insert = f"INSERT INTO {cls._table_name}({','.join(insert_columns)}) VALUES({place_holders})" - # cls._sql_select = ( - # f"SELECT {','.join(cls.__annotations__)} FROM {cls._table_name} WHERE id=%s" - - def stage(self): - self._insert_queue.append( - [ - getattr(self, f.name) - for f in fields(self) - if f.metadata.get("insert", True) - ] - ) + if table_name == "bonds": + cls._bbg_sql_insert = ( + f"INSERT INTO bond_tickets VALUES({','.join(['%s'] * 20)})" + ) + elif table_name == "cds": + cls._bbg_sql_insert = ( + f"INSERT INTO bond_tickets VALUES({','.join(['%s'] * 20)})" + ) @classmethod def commit(cls): with cls._conn.cursor() as c: - c.executemany(cls._sql_insert, cls._insert_queue) c.executemany(cls._bbg_sql_insert, cls._bbg_insert_queue) + c.executemany(cls._sql_insert, cls._insert_queue) cls._conn.commit() cls._insert_queue.clear() @@ -324,11 +317,6 @@ class BondDeal(BbgDeal, table_name="bonds", insert_ignore=()): asset_class: AssetClass = field(default=None) bbg_ticket_id: str = None - def __post_init__(self): - BondDeal._bbg_sql_insert = ( - f"INSERT INTO bond_tickets VALUES({','.join(['%s'] * 20)})" - ) - @classmethod def from_bbg_line(cls, line: dict): values = list(line.values()) |
