aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/citco_ops/remote.py23
-rw-r--r--python/isosel_accrued.py18
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()