diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/citco_ops/__init__.py | 0 | ||||
| -rw-r--r-- | python/citco_ops/utils.py | 36 |
2 files changed, 36 insertions, 0 deletions
diff --git a/python/citco_ops/__init__.py b/python/citco_ops/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/python/citco_ops/__init__.py diff --git a/python/citco_ops/utils.py b/python/citco_ops/utils.py new file mode 100644 index 00000000..c60cc20f --- /dev/null +++ b/python/citco_ops/utils.py @@ -0,0 +1,36 @@ +###### Citco Submission DataClass + +from dataclasses import dataclass, field, fields, Field +from serenitas.ops.trade_dataclasses import Deal +from typing import Literal +import datetime +import csv + + +def get_file_status(s): + is_processed, fname_short = s.rsplit("_", 1) + is_processed = is_processed.rsplit("-")[1] == "PROCESSED" + fname_short = fname_short.removesuffix(".csv") + return is_processed, fname_short + + +@dataclass +class CitcoSubmission( + Deal, deal_type=None, table_name="citco_submission", insert_ignore=("submit_date",) +): + fname: str = Field() + identifier_type: Literal["trade", "instrument"] + identifier: str + serenitas_id: str + submit_date: datetime.datetime + + @classmethod + def from_citco_line(line, fname): + + return cls() + + @classmethod + def process(fh, fname): + for row in csv.DictReader(file_handle): + trade = cls.from_citco_line(line, fname) + trade.stage() |
