aboutsummaryrefslogtreecommitdiffstats
path: root/python/report_ops
diff options
context:
space:
mode:
Diffstat (limited to 'python/report_ops')
-rw-r--r--python/report_ops/custodians.py31
1 files changed, 28 insertions, 3 deletions
diff --git a/python/report_ops/custodians.py b/python/report_ops/custodians.py
index 2c383706..102f53f3 100644
--- a/python/report_ops/custodians.py
+++ b/python/report_ops/custodians.py
@@ -4,9 +4,30 @@ import warnings
import datetime
from .misc import get_dir, dt_from_fname
import gpg
+import datetime
+from serenitas.ops.custodians import upload_to_bbh, upload_to_umb
+from typing import ClassVar
+from dataclasses import dataclass
+
+
+@dataclass
+class Custodian:
+ date: datetime.date
+ account: str
+ upload_fun: ClassVar
+
+ def __init_subclass__(cls, account, upload_fun=None):
+ cls.account = account
+ cls.upload_fun = staticmethod(upload_fun)
+ def __init__(self, date):
+ self.date = date
-class NT:
+ def upload_to_custodian(self, upload):
+ self.upload_fun(upload, account=self.account, trade_date=self.date)
+
+
+class NT(Custodian, account="NT"):
@classmethod
def download_reports(cls, date=datetime.date.today()):
em = ExchangeMessage()
@@ -31,7 +52,7 @@ class NT:
csvFile.write(text)
-class UMB:
+class UMB(Custodian, account="UMB", upload_fun=upload_to_umb):
@classmethod
def download_reports(cls, date=datetime.date.today()):
em = ExchangeMessage()
@@ -49,7 +70,7 @@ class UMB:
p.write_bytes(attach.content)
-class BNY:
+class BNY(Custodian, account="BONY2"):
@classmethod
def download_reports(cls, date=datetime.date.today()):
em = ExchangeMessage()
@@ -95,3 +116,7 @@ class BNY:
p.parent.mkdir(parents=True, exist_ok=True)
if not p.exists():
p.write_bytes(attach.content)
+
+
+class BBH(Custodian, account="BBH", upload_fun=upload_to_bbh):
+ pass