Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions src/server/utils/dates.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,20 +91,19 @@ def time_values_to_ranges(values: Optional[TimeValues]) -> Optional[TimeValues]:
"""
logger = get_structured_logger('server_utils')
if not values or len(values) <= 1:
logger.info("List of dates looks like 0-1 elements, nothing to optimize", time_values=values)
logger.debug("List of dates looks like 0-1 elements, nothing to optimize", time_values=values)
return values

# determine whether the list is of days (YYYYMMDD) or weeks (YYYYWW) based on first element
first_element = values[0][0] if isinstance(values[0], tuple) else values[0]
if guess_time_value_is_day(first_element):
# TODO: reduce this and other date logging to DEBUG after prod metrics gathered
logger.info("Treating time value as day", time_value=first_element)
logger.debug("Treating time value as day", time_value=first_element)
return days_to_ranges(values)
elif guess_time_value_is_week(first_element):
logger.info("Treating time value as week", time_value=first_element)
logger.debug("Treating time value as week", time_value=first_element)
return weeks_to_ranges(values)
else:
logger.info("Time value unclear, not optimizing", time_value=first_element)
logger.debug("Time value unclear, not optimizing", time_value=first_element)
return values

def days_to_ranges(values: TimeValues) -> TimeValues:
Expand Down Expand Up @@ -147,9 +146,9 @@ def _to_ranges(values: TimeValues, value_to_date: Callable, date_to_value: Calla
else:
ranges.append((date_to_value(m[0]), date_to_value(m[1])))

get_structured_logger('server_utils').info("Optimized list of date values", original=values, optimized=ranges, original_length=len(values), optimized_length=len(ranges))
get_structured_logger('server_utils').debug("Optimized list of date values", original=values, optimized=ranges, original_length=len(values), optimized_length=len(ranges))

return ranges
except Exception as e:
get_structured_logger('server_utils').error('bad input to date ranges', time_values=values, exception=e)
get_structured_logger('server_utils').debug('bad input to date ranges', time_values=values, exception=e)
return values