"""get_date_range task.""" import datetime from garcon import task from activity_detector.flows.trending_tracks import config from activity_detector.utils import dates @task.decorate(timeout=300) def get_date_range(activity): """Get the date range for which to run the trending tracks. Args: activity (ActivityWorker): garcon activity worker Returns: dict: top_ten_start_date (str): the top ten start date top_ten_end_date (str): the top ten end date all_track_start_date (str): the all tracks start date all_track_end_date (str): the all tracks end date """ return { 'top_ten_start_date': dates.get_friday_before_last().strftime( config.DATE_FORMAT), 'top_ten_end_date': dates.get_last_thursday().strftime( config.DATE_FORMAT), 'all_track_start_date': ( datetime.datetime.strptime( datetime.datetime.today().strftime(config.DATE_FORMAT), config.DATE_FORMAT) - datetime.timedelta(days=73)).strftime(config.DATE_FORMAT), 'all_track_end_date': ( datetime.datetime.strptime( datetime.datetime.today().strftime(config.DATE_FORMAT), config.DATE_FORMAT) - datetime.timedelta(days=3)).strftime(config.DATE_FORMAT) }