diff options
Diffstat (limited to 'python/task_server')
| -rw-r--r-- | python/task_server/__main__.py | 6 | ||||
| -rw-r--r-- | python/task_server/globeop.py | 36 |
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()) |
