Compare commits

...

2 commits

Author SHA1 Message Date
d79a13b080
fix: cron date calculation
Signed-off-by: Ameya Shenoy <shenoy.ameya@gmail.com>
2021-02-15 00:40:56 +05:30
867933c2c6
fix: attribution docs
Signed-off-by: Ameya Shenoy <shenoy.ameya@gmail.com>
2021-02-15 00:40:25 +05:30
3 changed files with 13 additions and 10 deletions

View file

@ -158,5 +158,5 @@ The code in this repository has been released under the [GNU Affero General Publ
## Attributions ## Attributions
- [Bullish icon](./.assets/images/bullish.png) made by [Freepik](https://www.freepik.com) from [Flaticon](https://www.flaticon.com) - [Bullish icon](https://www.flaticon.com/free-icon/bull-side-view-black-animal-shape_30480) made by [Freepik](https://www.freepik.com) from [Flaticon](https://www.flaticon.com)

View file

@ -27,4 +27,3 @@ class AppConfig(AppConfig):
repeat=None, repeat=None,
) )

View file

@ -53,6 +53,8 @@ def fetch_bhav_copy_equity_data(date=None):
def populate_bhav_copy_data(date=None): def populate_bhav_copy_data(date=None):
"""Populate DB with Bhav Copy data.""" """Populate DB with Bhav Copy data."""
if date is None:
date = datetime.datetime.now().date()
try: try:
data = fetch_bhav_copy_equity_data(date=date) data = fetch_bhav_copy_equity_data(date=date)
except Exception as err: 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): 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: if data is None:
data = fetch_bhav_copy_equity_data(date=date) data = fetch_bhav_copy_equity_data(date=date)
del data[0] del data[0]
if date is None:
date = datetime.datetime.now().date()
logger.info('Populating data into redis') logger.info('Populating data into redis')
datestr = date.strftime("%d%m%y") datestr = date.strftime("%d%m%y")
pipe = cache.pipeline() 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): def populate_bhav_copy_data_into_redis_v2(data=None, date=None):
if date is None:
raise ValueError("Date required.")
if data is None: if data is None:
data = fetch_bhav_copy_equity_data(date=date) data = fetch_bhav_copy_equity_data(date=date)
del data[0] del data[0]
if date is None: logger.info('Populating data into redis v2')
date = datetime.datetime.now().date()
datestr = date.strftime("%d%m%y") datestr = date.strftime("%d%m%y")
data = stocks_csv_to_json(data) data = stocks_csv_to_json(data)
stocks_key = f"stocks:v2:{datestr}" stocks_key = f"stocks:v2:{datestr}"
@ -110,11 +113,11 @@ def populate_bhav_copy_data_into_redis_v2(data=None, date=None):
@transaction.atomic @transaction.atomic
def populate_bhav_copy_data_into_postgres(data=None, date=None): def populate_bhav_copy_data_into_postgres(data=None, date=None):
logger.info('Populating data into postgres for %s', date) logger.info('Populating data into postgres for %s', date)
if date is None:
raise ValueError("Date required")
if data is None: if data is None:
data = fetch_bhav_copy_equity_data(date=date) data = fetch_bhav_copy_equity_data(date=date)
del data[0] del data[0]
if date is None:
date = datetime.datetime.now().date()
data = stocks_csv_to_json(data) data = stocks_csv_to_json(data)
for stock in data: for stock in data:
stock['date'] = date stock['date'] = date
@ -143,7 +146,7 @@ def stocks_csv_to_json(data):
return stocks 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. """Verify current date.
Check current date and time and return the appropriate date. Also take care 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." ret_message = "Markets are closed on weekends. Returning data for Friday."
req_datetime -= datetime.timedelta(days=day_num-4) # change req to Friday req_datetime -= datetime.timedelta(days=day_num-4) # change req to Friday
# Check for day # 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." ret_message = "Today's data not yet published, returning yesterday's data."
req_datetime -= datetime.timedelta(days=1) req_datetime -= datetime.timedelta(days=1)
return req_datetime, ret_message return req_datetime, ret_message