diff options
Diffstat (limited to 'python/report_ops/custodians.py')
| -rw-r--r-- | python/report_ops/custodians.py | 31 |
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 |
