aboutsummaryrefslogtreecommitdiffstats
path: root/python/citco_ops/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/citco_ops/utils.py')
-rw-r--r--python/citco_ops/utils.py24
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()