From d79a13b080fef243097a956ba137aaaaea296c95 Mon Sep 17 00:00:00 2001 From: Ameya Shenoy Date: Mon, 15 Feb 2021 00:40:56 +0530 Subject: [PATCH] fix: cron date calculation Signed-off-by: Ameya Shenoy --- backend/app/apps.py | 1 - backend/app/utils.py | 20 ++++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/backend/app/apps.py b/backend/app/apps.py index f013ffb..8d66cca 100644 --- a/backend/app/apps.py +++ b/backend/app/apps.py @@ -27,4 +27,3 @@ class AppConfig(AppConfig): repeat=None, ) - diff --git a/backend/app/utils.py b/backend/app/utils.py index 4f36f18..1f2254c 100644 --- a/backend/app/utils.py +++ b/backend/app/utils.py @@ -53,6 +53,8 @@ def fetch_bhav_copy_equity_data(date=None): def populate_bhav_copy_data(date=None): """Populate DB with Bhav Copy data.""" + if date is None: + date = datetime.datetime.now().date() try: data = fetch_bhav_copy_equity_data(date=date) except Exception as err: @@ -72,11 +74,11 @@ def populate_bhav_copy_data(date=None): def populate_bhav_copy_data_into_redis_v1(data=None, date=None): + if date is None: + raise ValueError("Date is required") if data is None: data = fetch_bhav_copy_equity_data(date=date) del data[0] - if date is None: - date = datetime.datetime.now().date() logger.info('Populating data into redis') datestr = date.strftime("%d%m%y") pipe = cache.pipeline() @@ -95,11 +97,12 @@ def populate_bhav_copy_data_into_redis_v1(data=None, date=None): def populate_bhav_copy_data_into_redis_v2(data=None, date=None): + if date is None: + raise ValueError("Date required.") if data is None: data = fetch_bhav_copy_equity_data(date=date) del data[0] - if date is None: - date = datetime.datetime.now().date() + logger.info('Populating data into redis v2') datestr = date.strftime("%d%m%y") data = stocks_csv_to_json(data) stocks_key = f"stocks:v2:{datestr}" @@ -110,11 +113,11 @@ def populate_bhav_copy_data_into_redis_v2(data=None, date=None): @transaction.atomic def populate_bhav_copy_data_into_postgres(data=None, date=None): logger.info('Populating data into postgres for %s', date) + if date is None: + raise ValueError("Date required") if data is None: data = fetch_bhav_copy_equity_data(date=date) del data[0] - if date is None: - date = datetime.datetime.now().date() data = stocks_csv_to_json(data) for stock in data: stock['date'] = date @@ -143,7 +146,7 @@ def stocks_csv_to_json(data): return stocks -def verify_date(date, ret_message) -> Tuple[datetime.datetime, str]: +def verify_date(date: str, ret_message: str) -> Tuple[datetime.datetime, str]: """Verify current date. Check current date and time and return the appropriate date. Also take care @@ -171,7 +174,8 @@ def verify_date(date, ret_message) -> Tuple[datetime.datetime, str]: ret_message = "Markets are closed on weekends. Returning data for Friday." req_datetime -= datetime.timedelta(days=day_num-4) # change req to Friday # Check for day - if req_datetime.date() == curr_datetime.date() and curr_datetime < next_publish_time: + if (req_datetime.date() == curr_datetime.date() + and curr_datetime < next_publish_time): ret_message = "Today's data not yet published, returning yesterday's data." req_datetime -= datetime.timedelta(days=1) return req_datetime, ret_message