diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/citco_ops/remote.py | 23 | ||||
| -rw-r--r-- | python/isosel_accrued.py | 18 |
2 files changed, 34 insertions, 7 deletions
diff --git a/python/citco_ops/remote.py b/python/citco_ops/remote.py index 31e81087..7a05f90e 100644 --- a/python/citco_ops/remote.py +++ b/python/citco_ops/remote.py @@ -5,12 +5,18 @@ import pandas as pd from serenitas.utils.db import dawn_engine, dbconn import datetime import re -from serenitas.analytics.dates import prev_business_day +from serenitas.analytics.dates import prev_business_day, next_business_day def citco_accrued(s): if m := re.search("100502500_INNOCAP_ISOSEL.([\d]+)\.", s): dt = datetime.datetime.strptime(m.group(1), "%Y%m%d%H%M%S") + return prev_business_day(dt) + + +def citco_all(s): + if m := re.search("SPOS4X_INNOCAP_ISOSEL_D_IM.([\d.]+)\.", s): + dt = datetime.datetime.strptime(m.group(1), "%Y%m%d.%H%M%S") return dt @@ -18,8 +24,8 @@ def load_citco_report(df, kd): df["row"] = df.index df.columns = df.columns.str.lower() df.columns = df.columns.str.replace(" ", "_") - df["period_end_date"] = prev_business_day(kd.date()) - df["knowledge_date"] = kd + df["period_end_date"] = kd.date() + df["knowledge_date"] = next_business_day(kd) for column in [ "init_date", "init_settle_date", @@ -32,7 +38,6 @@ def load_citco_report(df, kd): ]: if column in df.columns: df[column] = pd.to_datetime(df[column], infer_datetime_format=True).dt.date - df["tid"] = df["tid"].astype("str") return df @@ -56,6 +61,14 @@ class Report: SftpClient.from_creds("citco", folder="outgoing"), date, ) + elif (fund, report) == ("isosel", "all"): + return cls( + "citco_reports", + citco_all, + "SPOS4X_INNOCAP_ISOSEL_D_IM", + SftpClient.from_creds("citco", folder="outgoing"), + date, + ) @property def most_recent_report(self): @@ -76,7 +89,7 @@ class Report: with self._conn.cursor() as c: c.execute( f"DELETE FROM {self.table} WHERE period_end_date= %s", - (prev_business_day(self.date),), + (self.date,), ) self._conn.commit() df = self.to_df() diff --git a/python/isosel_accrued.py b/python/isosel_accrued.py index dff34653..bda34534 100644 --- a/python/isosel_accrued.py +++ b/python/isosel_accrued.py @@ -1,6 +1,20 @@ from citco_ops.remote import Report import datetime +from serenitas.analytics.dates import prev_business_day -report = Report.set_report("isosel_accrued", datetime.date.today()) -report.to_db() +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument( + "date", + nargs="?", + type=datetime.date.fromisoformat, + default=prev_business_day(datetime.date.today()), + help="report date", + ) + args = parser.parse_args() + for report in ("isosel_accrued", "isosel_all"): + report = Report.set_report(report, args.date) + report.to_db() |
