aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/task_server/__main__.py6
-rw-r--r--python/task_server/globeop.py36
2 files changed, 21 insertions, 21 deletions
diff --git a/python/task_server/__main__.py b/python/task_server/__main__.py
index cdab9883..c7852dac 100644
--- a/python/task_server/__main__.py
+++ b/python/task_server/__main__.py
@@ -17,12 +17,12 @@ group.add_argument("-d", "--download", action="store_true",
help="download reports from GlobeOp")
group.add_argument("-u", "--upload", action="store_true",
help="upload marks to GlobeOp")
-parser.add_argument("date", nargs='?', type=lambda s: datetime.datetime.strptime(s, "%Y-%m-%d"),
- default=datetime.datetime.today())
+parser.add_argument("date", nargs='?', type=datetime.date.fromisoformat,
+ default=datetime.date.today())
args = parser.parse_args()
if args.download:
- download_data(args.date.date())
+ download_data(args.date)
elif args.upload:
engine = create_engine('postgresql://dawn_user@debian/dawndb')
upload_data(engine, args.date)
diff --git a/python/task_server/globeop.py b/python/task_server/globeop.py
index 1aca3fdb..15d8f33c 100644
--- a/python/task_server/globeop.py
+++ b/python/task_server/globeop.py
@@ -23,24 +23,24 @@ except ImportError:
def get_ped(s):
- regex = re.search("PED=([^.]+)", s)
- if regex:
- PED = pd.datetime.strptime(regex.group(1), "%Y-%m-%d").date()
- else:
- regex = re.search("([^.]+)", s)
- PED = pd.to_datetime(regex.group(1), format="%Y%m%d") - BDay(1)
+ if m := re.search("PED=([^.]+)", s):
+ PED = datetime.date.fromisoformat(m.group(1))
+ elif m := re.search("([^.]+)", s):
+ PED = pd.to_datetime(m.group(1), format="%Y%m%d") - BDay(1)
PED = PED.date()
+ else:
+ raise ValueError
return PED
def key_fun(s):
PED = get_ped(s)
- regex = re.search("KD=([^.]+)", s)
- if regex:
- KD = pd.datetime.strptime(regex.group(1), "%Y-%m-%d-%H-%M-%S")
+ if m := re.search("KD=([^.]+)", s):
+ KD = datetime.datetime.strptime(m.group(1), "%Y-%m-%d-%H-%M-%S")
+ elif m := re.search(r"([^.]+\.[^.]+)", s):
+ KD = datetime.datetime.strptime(m.group(1), "%Y%m%d.%H%M%S")
else:
- regex = re.search(r"([^.]+\.[^.]+)", s)
- KD = pd.datetime.strptime(regex.group(1), "%Y%m%d.%H%M%S")
+ raise ValueError
return (PED, KD)
@@ -173,17 +173,17 @@ def insert_todb(workdate: datetime.date):
df.to_sql(table, engine, if_exists="append", index=False)
-def upload_bond_marks(engine, workdate: datetime.datetime):
+def upload_bond_marks(engine, workdate: datetime.date):
df = pd.read_sql_query(
"SELECT identifier, price from list_marks(%s) "
"RIGHT JOIN list_positions(%s, NULL, False) "
"USING (identifier)",
engine,
- params=(workdate.date(), workdate.date()),
+ params=(workdate, workdate),
)
df.rename(columns={"identifier": "IDENTIFIER", "price": "Price"}, inplace=True)
fullpath = (
- DAILY_DIR / str(workdate.date()) / f"securitiesNpv{workdate:%Y%m%d_%H%M%S}.csv"
+ DAILY_DIR / str(workdate) / f"securitiesNpv{workdate:%Y%m%d_%H%M%S}.csv"
)
df.to_csv(fullpath, index=False)
ftp = get_ftp("incoming")
@@ -192,15 +192,15 @@ def upload_bond_marks(engine, workdate: datetime.datetime):
logger.info("upload bond marks done")
-def upload_cds_marks(engine, workdate: datetime.datetime):
+def upload_cds_marks(engine, workdate: datetime.date):
df = pd.read_sql_query(
"""SELECT cds.dealid AS "DealID", 'CREDIT_SWAP' AS "Instrument Type",
(a.clean_nav+a.accrued) AS "NPV" from list_abscds_marks(%s) a
JOIN cds USING (security_id)""",
engine,
- params=(workdate.date(),),
+ params=(workdate,),
)
- fullpath = DAILY_DIR / str(workdate.date()) / f"otcNpv{workdate:%Y%m%d}.csv"
+ fullpath = DAILY_DIR / str(workdate) / f"otcNpv{workdate:%Y%m%d}.csv"
df.to_csv(fullpath, index=False)
ftp = get_ftp("incoming")
with fullpath.open("rb") as fh:
@@ -213,7 +213,7 @@ def upload_data(engine, workdate: datetime.datetime):
upload_cds_marks(engine, workdate)
-def back_fill(start_date=pd.datetime(2017, 7, 20)):
+def back_fill(start_date="2017-07-20"):
date_rng = pd.date_range(start=start_date, end=pd.Timestamp.today(), freq="B")
for date in date_rng:
insert_todb(date.date())