diff options
Diffstat (limited to 'python/citco_ops/utils.py')
| -rw-r--r-- | python/citco_ops/utils.py | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/python/citco_ops/utils.py b/python/citco_ops/utils.py index bea90d95..4ec282f1 100644 --- a/python/citco_ops/utils.py +++ b/python/citco_ops/utils.py @@ -5,6 +5,7 @@ from serenitas.ops.trade_dataclasses import Deal from typing import Literal import datetime import csv +import datetime def get_file_status(s): @@ -41,22 +42,24 @@ def get_failed_data(line): @dataclass -class CitcoSubmission( - Deal, deal_type=None, table_name="citco_submission", insert_ignore=("submit_date",) -): - fname: str = Field() +class CitcoSubmission(Deal, deal_type=None, table_name="citco_submission"): + fname: str = field() identifier_type: Literal["trade", "instrument"] identifier: str serenitas_id: str - submit_date: datetime.datetime + submit_date: datetime.datetime = field(default=datetime.datetime.now()) @classmethod - def from_citco_line(line, fname): + def from_citco_line(cls, line, fname): is_processed, fname_short = get_file_status(fname) if is_processed: identifier_type, serenitas_id, identifier = get_data(line) else: - None + serenitas_id = "failed" + ( + identifier_type, + identifier, + ) = get_failed_data(line) return cls( fname=fname_short, identifier_type=identifier_type, @@ -65,7 +68,8 @@ class CitcoSubmission( ) @classmethod - def process(fh, fname): - for row in csv.reader(file_handle): - trade = cls.from_citco_line(line, fname) + def process(cls, fh, fname): + for row in csv.reader(fh): + trade = cls.from_citco_line(row, fname) trade.stage() + CitcoSubmission.commit() |
