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